The emergence of a new version of standard Java has opened a rift among
application users who are reluctant to immediately upgrade for fear of
Attendees of a Seattle Java User
Group meeting this week highlighted the division between the current and previous versions of the Java 2
Platform Standard Edition (J2SE).
The cross-platform programming language,
known as version 1.5.0, code named “Tiger” or just 5 — is now in another round of
beta testing after an alpha release last December and two other beta
releases prior to last month’s JavaOne show. Sun Microsystems
said the related Java Developer Kit (JDK) is on tap for release
later this fall.
The new version
includes four language changes: enhanced for loop, enumerated
types, static import and autoboxing. The update supports C-style-formatted
input/output, variable arguments, concurrency utilities and a simpler RMI
(Remote Method Invocation) interface generation, new JVM (Java Virtual
Machine) monitoring, management and a new (but compatible) default Java
The caution by some of the members centers on APIs
the new java.util.concurrent, which use annotations and generics and
is similar to templates in the C++ programming language. The thinking
is that if you want to use those API’s, you must migrate to Java 5. If
you don’t care about those APIs, then you can use one of the earlier
versions. This begs the question: Do you stay on Java 1.3.0, 1.4.0 and know what
you are dealing with or risk it in the short term for Java 5.0?
“There was some feeling that Java 5 was going to create two languages …
pre-Java 5 and Java 5,” said Ted Leung, blogger and member of SeaJUG. “The
fact that many of the new JSRs are already incorporating generics and
attributes will only strengthen that separation. A few people felt that it
would be even worse. That due to the timing of the releases, Java developers
would actually have to deal with three dialects of Java. Takes a bit of wind
out of the write once run anywhere sails.”
Leung said quick surveys of his group showed many firms that deal with
enterprise Java are still running on the Java 1.3.0 platform. “People are
very conservative about it,” he said. “It is one thing for the developers to
play around with it and it is another when it runs under your business.”
On average, Leung said it takes about a year before some software
application integrators will trust a release enough that they could depend
on certain features. The majority will wait for the incremental bug-fix
release before even considering an upgrade. Overall, Leung said Java
programmers are going to have a lot to swallow over the coming years.
“The good news for them is that C#
annotations (attributes) and is about to add generics. So the two languages
are remaining essentially equivalent,” he said.
Jean Elliot, Sun group manager for Java software products J2SE told
internetnews.com that the company is well aware of the disparities
and is trying to make the transition as smooth as possible.
“With any software product, there are early adopters and people who come
to the platform later,” Elliot said. “What we are providing in Java 5.0 is a
version that is high in quality and ease of development. The compatibility
issues have been well documented and we will continue to work with
developers and enterprises to bring them on board.”
Elliott also said that Sun has also seen a great response to J2SE 5.0 in
the realm of compatibility with Microsoft’s Java Virtual Machine (MSJVM).
“We’re seeing 98 percent success rates in applets that support programs
written in MSJVM 1.1.4 code,” she said. “What has really helped are the
contracts that Sun has made with PC OEMs [read HP and Dell]. They obviously
want to provide enough support to their users, so if some lady in
Poughkeepsie, N.Y., wants to play Pinochle with her friends, she can.”