[Click Here for Emerald Mail for Java]
Java Special Report - Introduction- by Chris Wenham
OS/2 e-Zine!

Chris Wenham is the Editor-In-Chief of OS/2 e-Zine! -- a promotion from Senior Editor which means he now takes all the blame.

Lash Back! - Join in the ongoing public discussion with our interactive forum. Be frank, be vicious, you can even be anonymous.

- or -

Blast Back! Send a private message directly to Chris Wenham with your thoughts:

Contact OS/2 e-Zine!

Go to a Printer Friendly version of this page

Summary: Just how practical is it to put Java applications into your daily work life? Can we really honestly believe that Java is the way to go for OS/2? In this Special Report we've tested a number of "Pure Java" applications and attempted to make them part of our normal everyday toolset, to get a practical idea on whether or not Java is truly ready for "prime time."

Java is considered to be one or both of two key things; a programming language, and a platform just like Windows, OS/2 and the Macintosh is. As a platform it purposefully acts like a Cuckoo Bird, laying its eggs in another bird's nest for that other bird to hatch, feed and raise. These eggs are called Java Virtual Machines and they act just like an operating system within an operating system. It's as if someone proposed that the world unite under a common language, then invented that language from scratch and gave each English, French, Spanish and Japanese speaking person a little headset mounted translator, then expected everything to be just groovy. Furthermore, the company that invented the language and the translator expects communities that speak other languages to buy the plans for the translator and build their own. It seems far fetched.

But, considering all the innumerable benefits that come, maybe a headset wouldn't be so bad after all. Java's plusses aren't limited entirely to cross-platform programs; its creators and coconspirators are using its popularity to carry a lot of other cool technologies that might have been worthy but never made it to the big time in their last incarnations. From the broken dreams of OpenDoc's component utopia come JavaBeans, the distributed computing ideas of DSOM can be found in Java's Remote Method Invocation (RMI), and IBM's old ideas of workplace "personalities" are revived again in Swing's pluggable look and feel. By all respects, Java is like what you get when you take Wile E. Coyote's philosophy and throw it in the trash - if it blew up, collapsed, or flopped the first time, that's no reason not to tweak it and try again. Even the idea of cross-platform programs itself is years older than Java.

So What's It Going To Cost?

Understand that Java adds several more hoops for one to jump through. Traditional compiled programs, or "binaries", are assembled to run on only one hardware platform. Windows programs are usually compiled to run on Intel's x86 family of chips (386 and upwards through the Pentiums), and use the Windows API only as a means of talking to Windows. Macintosh programs are compiled to run on the Motorola PowerPC, or 68000 family of chips from an earlier era. And in reality, Java programs are no different - they're just compiled to run on an imaginary chip. The Java Virtual Machine (JVM) emulates this imaginary chip. Also supplied with a typical JVM are a set of libraries that are also written in Java, but which make it easy to write Graphical User Interfaces (GUIs) - these take the place that OS/2's Presentation Manager, Windows, X-Windows and the MacOS usually supply, even though they still work through those systems.

All this support and emulation comes at some considerable expense. Your real processor, probably an Intel, AMD or Cyrix chip if you're running OS/2, is being made to pretend that it's an imaginary Java chip. And your operating system is being made to pretend that it's actually another too. It takes time to translate instructions for the imaginary CPU into ones that your real processor can understand, and it takes time for the API calls of an imaginary operating system to be translated into ones your real OS can handle. Two sets of time consuming translation means slower programs. And there's the expense; for it'll either cost you in performance if you don't want to upgrade your hardware, or money if you do.

How Much Useful Stuff Is Out There?

This was one of our objectives for our Special Report: To get an idea of how many usable and practical Java applications are actually available at this time. Could you realistically switch from native OS/2 applications to "Pure Java" ones? We didn't expect to find replacements for all of our daily programs, but we were looking to find a good mix, letting us plausibly make about 20% or more of our daily software Java based.

The real picture we found is that nearly all categories of software, from word processors to spreadsheets, are still very poorly represented by "Pure Java" applications. E-mail is the exception, here we found two excellent and very full featured clients that, feature-wise, would compete easily with even the best native programs.

What we've got to choose from so far isn't enough to run your business on, but it's a good start. Enough to reinforce the dream of Java taking the desktop.

How Easy Is It?

The other major objective of our report was to see how easy it would be to get running with Java. You might think that due to Java being bundled with every copy of Warp 4, it'd be easy to get started. Wrong. The Java support included in Warp 4 out-of-the-box is nearly useless. What comes on the CD is Java 1.0.2, which today is only good for running animation applets in a web browser. You'll need to download Java 1.1.6 from IBM if you want to run anything serious. That's sometimes an adventure in itself, because with Warp 4 out-of-the-box, you actually need to download and install 3 multi-megabyte items: Netscape Navigator 2.02 or above, Feature Install 1.2 or above, and then Java 1.1.6 or above too. A full guide to installing Java 1.1.6 can be found in this issue.

Next comes the installation of the Java programs themselves. Sometimes this is easy, sometimes this is hard. The easy ones usually install through InstallShield for Java. The makers of InstallShield for Windows have ported their installation utility to Java, and like on the Windows platform, the Java version is very cleanly self-contained, self-extracting and user friendly. You download a .class file instead of a .ZIP or .EXE file, and either run it in any directory from the command line (eg: "java install.class"), or by drag-n-dropping it onto the "Run Java PM Program" in the Programs->Java folder found on your desktop. Up pops an install program just like InstallShield for Windows - one that lets you step forwards or backwards through installation and choose the drive and directory to install to. It also detects what platform you're running and does a good, but not perfect job, of creating desktop icons and startup-scripts to launch the application from. In practice we found that often we had to create the desktop icons ourselves and tweak the generated .CMD file before the application would start. We did not find one that didn't need any "tweaking" or icon creation at all, although Emerald Mail from Maccasoft came very close.

The difficult ones, of course, force you to either edit a sample .CMD file to start the application with, or create your own from scratch. In either case, it's a good chance that you'll end up tweaking CLASSPATH statements before getting any Java application to run.

Adopting Java In The Workplace Today

The true test will come as thousands or millions of people start adopting Java programs here and there as part of their routine slog. Chances are that Java programs will live in a mixed environment for a very long time, and for that reason must compete with native programs both feature-wise and performance-wise. It's going to be a few more years until such things as Java embedded telephones and other appliances show us that a program doesn't have to be loaded with a 1001 features to be compelling and desirable. Your next e-mail client might not need extensive filtering, MIME and "persona" features to make it your most important application, but the fact that it runs on your wristwatch could.

In our Special Report we found and tested several Java applications that attempt to compete against other "traditional" applications and which we think are mature enough for you to introduce into your work day. I've personally made at least one of these part of my daily routine, with others enjoying occasional use from time to time -- a foot in the door for more to come.

* * *

If you've had experiences with Java too, or want to share your opinion of some of your favorite (or not so favorite) Java programs, then join our interactive forum and talk about it there.

Copyright © 1998 - Falcon Networking ISSN 1203-5696
October 16, 1998