PHD Computer Consultants Ltd
... Java's Growing Pains
Last modified: 4 November 1996.

Article complete: approximately 700 words.

A semi-technical article on Java development.

Java's Growing Pains


A Great Leap Forward?

Many people were surprised at the hype when Java was announced, and disappointed that Java web programs (called applets) often were little more than pretty animations. Does Java now live up to those early expectations?

Security is the reason that pretty animations were the first applets to appear. Quite rightly, applets could not be trusted to read or write your local disk, and on the network an applet can only access the computer it came from. So what else could a simple applet do but draw pretty pictures?

Others felt that the buttons, etc. on applets look pretty naff, and the overall look and feel is poor. This aspect of Java is based on the core Java Development Toolkit (JDK) supplied for free by SunSoft to all Java developers. In particular, its windowing classes - responsible for the buttons, and look and feel - are not good enough.

The windowing toolkit did have one good idea. You do not specify how a form is laid out on a user's screen in absolute terms as they tend to have different size screens and fonts. Instead you give layout hints and the form is arranged as best it can.

Part of the success of Apple Macintoshes, all those years ago, was that Apple had not only designed a nice user interface, but they forced developers to use it. In the same way now, Microsoft obliges developers to use its myriad of programmer interfaces. It is a shame that Java could not have a good window interface defined at birth. Unlike the previous two cases, Java does not have one monopoly supplier to dictate (benevolently) what we should do.

So, many computer companies have been trying belatedly to improve the facilities available to Java developers.

Trusted applets may be able access other servers. "servlets" may be uploaded to a server and allowed to work from there; perhaps a servlet could be an agent process, carrying out tasks on your behalf while you are not logged on.

Sun should soon have an improved version of the core JDK, perhaps ready in time for Navigator 4. The new JDK does improve the windowing classes slightly. Among other more technical improvements, Sun have provided a standard way to access databases and a way to internationalise programs.

Unfortunately several other major players have developed their own way of accessing databases and their own improvements to the windowing system.

Sun themselves have another set of windowing classes supplied with their Java Work Station development tool. Netscape's Internet Foundation Classes (IFC) do the same job in a different way. Others have their own pet solutions.

There are two problems with all these different improvements. The first is for the Java developer: which enhancement toolkit do I use? The second affects developers and users. Each of these extension toolkits is quite a large body of code. Unless you have IFC, for example, built into your browser, then you will have to download 500kB of code to run my IFC program. Users simply are not going to do this.

IFC will be bundled in Navigator 4 and Netscape probably has enough clout still to ensure that IFC becomes the de facto standard. But if Microsoft does not license IFC (for free) and incorporate it into its Internet Explorer then all these users will not be able to run new Java programs. Microsoft was forced to adopt Java in the first place, but will it bend again? And how many people will bother to upgrade to Navigator 4 anyway?

If you are running corporate intranets then this is not a problem, as you should be able to ensure that your chosen toolkit is available to all users easily.

Java and its tools have walked down the road to maturity, gradually accumulating the familiar attributes that Windows developers and users take for granted. But its facilities have not caught up yet. IFC, for example, is better than the core Java window system, but it is not a great leap forward. With database access and other technologies, Java can now actually do useful tasks.

As a Java developer, I am unsure which road to take. Perhaps the safest option is to stick with the core Java tools, as I did for my last project.


© 1996 Chris Cant, PHD Computer Consultants Ltd

Chris Cant runs PHD Computer Consultants Ltd at where various Java applets are on show.

Several other technical articles on Java are available:

PHD Home page.