|  
  16 August 2000
 
 
  Simon Gronlund is earning his
         Master of Science in Computer Science at the Royal Institute of Technology, Sweden,
         as an adult student. He also teaches Java and computer-related courses on a senior
         high school level. When he isn't tampering with his Warp 4 PC, he spends his spare
         time with his two boys and his wife. 
 If you have a comment about the content
         of this article, please feel free to vent in the OS/2 eZine discussion
         forums
 
 |  
 | 
 
 
 
            Java 1.1, 1.2 and 1.3--what's the difference?OS/2 now supports Java 1.1.8, but other
         platforms have taken the advantage of Java 2 for quite a while. But IBM will take
         the leap to Java 2 version 1.3 in one step. What's the difference? And is the upgrade
         worth it?
 Any time new versions arrive some
         will eagerly jump the boat, some patiently wait a few months and some say, "Never
         will I upgrade! Any new version will only get more bloated and sluggish, I am content
         with the version I am used to." Personally I am one of the well balanced and
         wise wait-until-the-children's-diseases-are-gone group of computer users. Hence
         I still do not use Windows since I think it still has some teething problems. But
         I now am happy using the Java 2 version1.3 Preview that IBM has provided to OS/2.
 The Java 1.3 Preview Java Virtual
         Machine (JVM) still seems to suffer from some problems, but so far I am pleased
         to see that the compiler (in the JDK) does a good work, and I enjoy the advantages
         and features added to this version that Java 1.1.8 do not has. What are these differences
         in short?
 | 
   
      | 
            Java 1.1Java 1.1 was a step in the right direction
         over Java 1.02, but that was all it was. Most convenience classes were missing,
         the AWT had more kind of toys than the GUI users of today are spoiled with. And
         any application or applet took its time to launch. No, Java 1.1 was almost outdated
         upon arrival, sorry to say that. Still I loved it since it was rather easy to learn
         and it promised system independence, and as an alternative solution it really worked.
 Admittedly Java 1.1 was able to most
         of the stuff developers of those days were asking for and both SUN and third party
         players added dozens of packages to it. On the backside was that you really had
         to implement a lot of things on your own or buy those add-ons. But a lot of IBM
         tools from the past years are written in Java 1.1 and some of them are most powerful,
         with yet not so well polished GUIs.
 
            Java 1.2When Java 1.2 arrived SUN only gave
         it a point upgrade, from 1.1 to 1.2. But almost in unison Java developers all over
         the world named it Java 2 because of its giant step forward, so it got two names,
         both Java 2 and Java 1.2. The bureaucratic name still is Java 1.2, that soon became
         Java 1.2.2.
 There are some more notable features
         added to the JDK of Java 1.2 and I will point your eye to a few of my personal favorites.
         First of all, Swing got built in. Swing was an add-on prior to Java 1.2.
         It did not depend on the new technology of Java 1.2 and hence it was a peace of
         cake to add it to a Java 1.1 installation as many
         OS/2 users realized. Normally only an extra path was added to the system CLASSPATH
         variable and Swing was at your service. To get Netscape/2 to work, a little fiddling
         with the "Preferences" was necessary.
 Swing added to the original Java
         AWT much of the missed polished items and the forgotten double buffering. Swing
         further made it possible to develop more intuitively with high level components
         as any modern GUI application use, along with a good event handling support.
 Drag and drop was added to
         Java 1.2 and was thought to work with non-Java application as well as with any Java
         application. Ahem!, mostly it worked just fine but of course, this feature cannot
         think for you and hence some operations do not work that nice. Keyboard navigation
         and an improved repaint mechanism added value to Java 2. Especially the latter
         was not fun to play with in Java 1.1, causing many head aches I think.
 Tools for security was added
         (and OS/2 developers must have longed for them, myself secretly rebooting to Windows
         95--sorry folks--to use them when needed). Tools like keytool, an improved
         jar, jarsigner, and policytool really became a touchstone or
         a watershed between OS/2 and a "neutral platform" that IBM nowadays call
         it.
 Security certificate handling
         was added and security controls were rebuilt and added. All at once Java climbed
         towards the more secure platforms and did it well. There are few systems around
         that with such easy to learn twists can give you that much security, but be aware,
         only a handful of systems are very close to perfection, and none is perfect.
 Another big leap was the much improved
         Collections Framework that now gave you a lot of top notch data structures
         built in. Yes, Collections is a framework but quite a few data structures was added,
         such as LinkedList, TreeSet or HashMap, that took Java a giant jump from the humble
         Vector and HashTable to new levels. Not that these were bad, but now you can pick
         your choice more sensible and they all work together under a few interfaces. Developers
         enjoy such stuff.
 The class Collections is worth a
         paragraph for itself, since it came full of tools like binarySearch, max/min,
         reverse, shuffle or sort, only to mention a few.
 Some multi media features were improved,
         replaced or added. Most notably is the Java Sound Engine that was replaced
         with a much better one. Further there were many improvements on performance and
         other invisible changes. Or visible ones, such as a much better Javadoc tool
         that was one of the most visible, and well done, upgrades over the old one.
 
            Java 2 version 1.3If the former fuss with version numbering
         annoyed you, be seated before you continue. This spring SUN launched a new version
         number over Java 2. But how to name it, Java 3 or simply Java 1.3? It was not such
         a big improvement over Java 2 that Java 3 was justified, thus it seems like Java
         1.3 should do. But no! The full name became "Java 2 SDK, Standard Edition,
         version 1.3". I will name it Java 1.3.
 
            PerformanceOne of the more talked about improvements
         is the performance boost. To deliver that acceleration SUN has included the Java
         HotSpot Client Virtual Machine, a virtual machine (VM) that is tuned to shorten
         startup time and minimize memory footprint. But running performance shall be optimized
         as well. SUN delivers Java 1.3 to Solaris, Linux and Win32, but IBM will see to
         OS/2. How they will solve this improvement remains to be seen, though the IBM Java
         VMs have always left quite a few competitors behind.
 
            New featuresTo Java 2 a lot of extra features has
         been added, many of them have been available for a while as extra packages but also
         new features are added. Noted are the Remote Method Invocation (RMI) that is much
         improved, together with the CORBA support. Security got many smaller enhancements.
         Even networking is taken a few inches upwards, both on performance and security.
 Many smaller features and enhancements
         are included in this upgrade, some you can live without, but maybe your fellow really
         loves them. So, the result is that all of them are needed.
 
            ConclusionThis short review of the new Java features
         included in Java 2 and Java 1.3 gives that the upgrades are really worth the time
         and effort. Developers will benefit from the many built in classes that makes the
         now home built monstrosities obsolete. Users will notice performance and many GUI
         items, if they have not added Swing already, then they will notice a more smoothly
         running application. Anyone will enjoy the improved security necessary within a
         connected community.
 Since Swing is available today, go
         for it. If you like to, get the king-sized Java
         1.3 Preview file from IBM and install it. The installation works perfect if
         there is no muddle with your system prerequisites, and remember to avoid
         installing it as your primary Java VM. It was delivered at the promised day and
         if that will hold the finished product will hit the web at September 30th. In a
         future review I will look into this OS/2 version of Java 1.3.
 If you are running any of the operating
         systems mentioned above, namely Linux, Solaris or Win32, get the executable today
         and install it, it really is worth the download cost. Since I do not use any of
         these two former systems at home yet, I cannot tell how the installation works,
         but on Windows 95 you have to manually see to it the PATH variable in the AUTOEXEC.BAT
         is set correctly, shame on the installation program.
 
    |