RealTime IT News

Java 'Tiger' Divides the Enterprise

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 incompatibility.

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 look.

The caution by some of the members centers on APIs , such as 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# isn't any better. C# already has 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."