Its been a while since I have been thinking about it and finally I get to write about it. If I had to start any project today I would choose Java over .net because it just makes sense today. If I had to think an year back I would think native and then .net but never Java, over the past few years things have certainly changed a lot for Java. Though we still don't see a lot of mainstream Java applications on the desktop but its just a matter of time and about that one killer application that makes that difference. The only applications that I would even see on the desktop are azureus and eclipse beyond that I don't see any other application that is in Java. If I had to think of a Java application the biggest problem was getting the JRE on the system, today things have changed dramatically for Java. It comes preinstalled on a mac most Linux distros and most windows based machines from the top five computer vendors have Java preinstalled on the systems.
So the one of the biggest problems with Java seems to have been solved. You no longer have to worry about bundling JRE with your program. The write once run anywhere concept really seems to be working now. If I develop an application in Java today I can be sure that I would be able to cater to atleast 99% of all desktop platforms, and about atleast 90% of those computers would have some version of JRE preinstalled on the computer. If I stick with the 1.3 or maybe 1.4 API's I can be sure that it will run on most of these computers. Not everyone needs the latest API's released with 1.6 or even 1.5. As long as you stick with API's in 1.3 you can be sure that you application will work on most platforms without too much trouble.
The other reason why I really hated Java applications or for that matter GTK based applications is 'cause they never seem to look native. If an application does not look native it will just look out of place. Not every application needs to have its own skinning engine. Normally I like my applications to blend in with the OS. As a user I don't want to learn to use the latest buttons or tabs you've implemented with the ultra cool effects on the tabs or those buttons. All this was happening with SWING earlier it just looked out of place. Sun might have wonderful designers who implemented the metal or whatever the latest swing theme is called, but it just does not look native. It just looked out of place on every platform I used. So I could never ever be used to a Java application. If I as a programmer could not be satisfied with the look and feel of the application, I could not even think that a user of my application would like the look and feel of the application. I guess enough with the Swing bashing so whats changed now that I don't mind Java applications. The biggest change is that swing has really matured over the past few years. It looks and for a change feels native on Vista, Linux, XP, Mac etc. and that is one very big change. Today it is possible to develop a Java application which looks and feel like a mac application on a mac and a windows application on windows.
On a side not this is my 100th post on this blog.