Now blogging at diego's weblog. See you over there!

A client-friendly Java

While Java seems to have established itself well in the server side, it doesn't appear to have made much of a dent on the client side. People say this is because Java is too slow, because Windows doesn't include Java, because Java programs don't integrate well with the local desktop...

All of those reasons are good, but there's one that rarely gets press and that should be the starting point for any "attack on the desktop:" Installation.

The only solution we have today to create an easy-to-install Java app is to bundle the JRE with the application and set everything up in our own installation.

Consider what would happen if you didn't: You have JAR files, optional packages, JREs. If you have multiple JREs, they step on each other, and there's no clear way of specifying one over another programatically (from inside the Java program). If you install both JRE 1.3 and then JRE 1.3.1, they reside in different directories. Installing JRE 1.4 creates another one. And so on.

You could use Java Web Start. But then people have to go to a Sun Micro page with a 5,000 word disclaimer, instructions and more instructions only to install something that has no relation to your application: it's the runtime, but why should the user know there is a runtime?

The Java Runtime should be an invisible component. A user should never see a program group that says "Java Runtime Environment 1.3.1". Why would they be interested in that? They aren't, of course.

So how to fix it? Well, Java Webstart is already close to a good solution, it just needs a few changes. Make it so that if it finds an older version (e.g., 1.4.1 installing over 1.4) the older version will be removed. Make it so the installation is a one-click deal, just like the Java-Plugin for IE.

Then allow the JNLP (Java Network Launching Protocol) to bypass the "Java Webstart mini window" completely. It only adds confusion and groups Java programs together, another thing that an end-user won't understand: people don't care about programming languages.

If this was in place, the cycle to install a Java program would be like this:

A user goes to a webpage and clicks on a link to download the program they want. A script checks on the local machine for the necessary Java Webstart/JRE version. If it doesn't find it, a dialog appears informing the user that a runtime component will be downloaded and installed. One click: Yes or no? If yes, the JRE/JWS downloads and installs automatically, then passing control back to the script. The script then downloads the JAR, creates an icon and a group for the newly installed program, and presto: It's ready to run.

Some day...

Categories: technology
Posted by diego on August 12 2002 at 12:04 PM

Copyright © Diego Doval 2002-2011.
Powered by
Movable Type 4.37