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.1
Java 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.2
When 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.3
If 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.
Performance
One 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 features
To 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.
Conclusion
This 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.
|