Fog Creek Software
Discussion Board

Knowledge Base
Terry's Tips
Darren's Tips

non - platform specific

I have a feeling that I know the answer to this question, but what the hell.

After reading Joels articles, I was left with a few major impressions which are:

1. make it work
2. document in human
3. break it down.
4. do it right
5. don't take too long
6. if it ain't broke don't fix it.
7. no pain, no pain. :D

Ok, well why didn't you use Java?  A lot of the work is already done, you aren't going to end up with all night bug searches like the (ch(x) ) thing.  It's cross platform.  It's OO and frankly, just a great language in and of itself.  Eckel of claims that a number of developers first develop the code in java, then actually port over to c++ (for speed).  Because, among other reasons, it's great for developing something fast and stable.

I haven't used your software, but it doesn't seem to me that speed is going to be a killer.  Also something like 30% of the server market is using linux which means that a lot of developers are probably using the same (I wouldn't know tho, it's just a guess!).  More likely, the developer will be using a Mac.  So why screw around with the issues such as gui, different api's etc.?  I'd understand if you were making a game, or if we were talking about java from 3-4 years ago.  But the language is really powerful (but @$#@# slow!!!!!) and it seems like you need power more than processor speed.

I'm asking this question not as a java fanatic, but as a reader who is interested in what you have to say.

Wednesday, December 05, 2001

Cross-platform doesn't help anyone but the developer.

As a user, it's preferable to have everything developed natively for your platform. If CityDesk was done in Java, it would run slow and use goofy non-Windows widgets.

I don't care if it runs on other platforms. I want it to look like and work like all the other software I have running on my Windows desktop.

Luke Duff
Wednesday, December 05, 2001

I wrote an article about this at

Joel Spolsky
Wednesday, December 05, 2001

in response to Luke Duff


as far as looks go, you can use skins to theme swing apps-
personally, I like the skins better than both the default swing & win look

Time as in speed of that app only really becomes a factor depending on the app in question.  Not all apps are created equal!  The startup time I don't think is an issue, only the speed at which the app performs.  For a word-like app, yes speed would be the kiss of death to a java app, for a small account program like moneydance, no it wouldn't be.

in response to joel -

I don't agree that swing isn't good enough for real development, I think it's a lot easier to use than MFC, and it covers (as far as I remember) pretty much the same stuff that MFC covers. 

On the other hand, it never occured to me that VB could be an option in any real project.  But I can see it now based on what you wrote re: development time as well as what was needed.  That is, it's quicker/easier to write stuff in it, and the stuff wasn't so complicated that you'd need to use a C++ type language.  And it gave you access to other stuff that you had available.  Wherease if you had used java, you'd have had to go thru some weird slow-as-hell interface to call the c++ or whatever function.  At least, I think that's what you meant!

there are other advantages that I could see in using java instead of vb/c++, but the purpose of the post was to ask why ( or in this case 'why not" ) and I pretty much got a worthwhile answer.

thanks for the reply,

Monday, December 17, 2001

Just a comment on skinning.

The skinning of UIs is a very vogue and popular thing right now. I even invested some time developing classes to make writing skinnable applications easier to write and easier to accomodate for skin authors.

Then I realized what a disservice I was doing to the world. Skinned apps are, almost without fail, used by geeks. They are really inappropriate for typical commercial software, especially software designed to be used by people who use the computer for specific tasks. As was discussed on another thread here (regarding shopping carts), consistency of UI is incredibly important.

Whether you think the Swing or Windows UI isn't sexy really doesn't matter... what matters is that the user can use your UI without needing significant re-training.

Brad Wilson
Tuesday, December 18, 2001

*  Recent Topics

*  Fog Creek Home