Posted by: craigbbaker | March 18, 2006

Java 6, no Rosetta Stone for the Desktop

Rosetta Stone

Java has lost the war to capture the desktop. Java 6, code named Mustang, adds some excellent improvements for building Java GUI
application. However, Java on the desktop, will continue only for the development of niche GUI applications.

Martin Wells, states on his blog, “If Sun can solve the JVM startup and memory hog problems (not an easy thing to do) then Java will be a real option for multi-platform client apps”. Reduced memory footprint and speedier boot times would be nice, but it’s just not that big of an issue. Today’s entry level desktop PC contains 512Mb of RAM, more than enough to handle the 50 Mb Java Runtime Environment memory footprint.

Eric Bruno has high hopes for Java 6 on the desktop, in his review. Eric goes on to say that, “Java SE 6 has the potential to be as revolutionary to the desktop as Java 2 was to the server. It’s best to be prepared for this storm now, and position yourself to cash in on the potential rewards available to the early adopters.” As much as I would love for this to be true, it just not going to happen! Let us be serious, are we to expect that Java6’s splash screen functionality and desktop task tray integration is going to trigger a revolution on the desktop.

I argue that Java’s failure on the desktop is rooted in the fact that Java isn’t on the desktop, let me explain.

You don’t need Java 6 to build great Java desktop applications. Java versions 1.4 and 1.5 provide an excellent, fully featured GUI toolkit and has been available for almost 5 years. The Java desktop has proven itself to be very successful in delivering high caliber GUI application for many large corporations, who require custom in house software solutions. These corporations are able to successfully leverage the power of the Java desktop because they have complete control over the client applications desktop running environment. Corporate ‘Standard Operating Environments’, are the key ingredients to this success. It is relatively easy to develop a Java client for a specific JRE. Attempting to create a Java client application, with no guarantee of the installed JRE version, and you will be heading for trouble. It is for this reason, you will not find any successful mainstream client applications written for Java.

I think this exception, sums up Java of the desktop;
java.lang.UnsupportedClassVersionError: (Unsupported major.minor version 49.0)

What does it mean, you might ask? It simply means your java desktop application won’t be running any time soon. The JRE won’t support the compiled byte code, it’s a mess. What if your targeted desktop doesn’t have the JRE installed, the user must download and install, it is just one step to difficult. This is where Java on the desktop, falls over.

So developers waiting for the Rosetta Stone of cross platform GUI development, please don’t hold your breath.


Leave a comment

Categories