Java technology is poised to take a big leap forward. The new version of Java will see language changes with the introduction of metadata, generics, typesafe enum and autoboxing of primitive types. The technology will also see a new JVM (Java virtual machine) and new Monitoring and Management APIs (application programming interfaces).
This announcement was made by James Gosling, also known as the father of Java, who was in town for the Java Developers' Conference held in Singapore last week.
And, in the fourth quarter of this year, Sun Microsystems Inc. will launch its Java Development Kit (JDK) version 1.5.
Gosling promised that this would be another huge leap for Java technology with major language changes. According to Gosling, the design team has spent a lot of effort on improving the new version.
"The metadata feature will accept annotation on code fragments, which will allow the usage of code that is self-describing," said Gosling. What this means, according to the feature summary on Sun's Web site, is that metadata is a language feature that will allow developers to avoid writing boilerplate code enabling tools to generate it from annotations in the source code.
This leads to a "declarative" programming style where the programmer says what should be done and tools emit the code to do it. It also eliminates the need for maintaining "side files" that must be kept up to date with changes in source files. Instead the information can be maintained in the source file.
Another exciting improvement is generics, which is an enhancement to the type system that allows a type or method to operate on objects of various types while providing compile-time type safety. It adds compile-time type safety to the Collections Framework and eliminates the necessity for casting.
Typesafe enum is a flexible object-oriented enumerated type facility which allows programmers to create enumerated types with arbitrary methods and fields. Another new facility is autoboxing that aims to eliminate the drudgery of manual conversion between primitive types and wrapper types.
Converting between primitive types, like int, boolean, and their equivalent object-based counterparts like Integer and Boolean, can require unnecessary amounts of extra coding, especially if the conversion is only needed for a method call to the Collections API, for example. The 1.5 version leaves the conversion required to transition to an Integer and back to the compiler.
To maximize Java, Gosling suggested the usage of IDE (integrated development environment) tools that can assist in the whole development process. "There are tools for just about everybody," said Gosling. Come highly recommended is the NetBeans IDE which, said Gosling, is a core development tool which is also a platform for other tools being as extensible as NetBeans is.
NetBeans 3.6 was recently released with the look and feel of the UI clean up quite a bit, said Gosling. In fact, he said that he uses this version of NetBeans for his own development as well.
"Compare this with Eclipse and you will find this a lot better," he said. Another version, Netbeans 4.0, is expected to be out in the fourth quarter of 2004. NetBeans 4.0 has added in Apache Ant as its project management system.
Another development that caught Gosling attention is the development of both the JavaOpenGL and YAJOGLB (Yet Another Java OpenGL Binding).
"These are basically clones of Java 3D APIs but tuned to gaming needs," said Gosling. "It is less clean than Java 3D, but is as fast as possible."