Java, the 14-year-old language and application platform founded by Sun Microsystems, is set to take on a more modular approach with the planned Java SE Development Kit 7 upgrade to the platform, Sun officials said Tuesday afternoon.
JDK 7 would enable developers to access capabilities planned for Java Standard Edition 7. During a presentation at the JavaOne conference in San Francisco, Sun officials talked up plans for the upcoming Java release. Modularity is part of a set of improvements planned for JDK7.
[ Find out what Oracle CEO Larry Ellison had to say about the Oracle-Sun merger at JavaOne." ]
"We're working to define a modular form of the Java platform and its implementation; we're working to evolve the Java Virtual Machine into a true, multilingual universal runtime for high-level languages; and finally, we're doing things to make developers more productive," said Mark Reinhold, principal engineer for Java SE and OpenJDK.
Modularity is intended to address a situation for which Java has gotten too big, Reinhold said. Sun is tackling modularity through Project Jigsaw and Java Specification Request 294. Jigsaw features a low-level module system for developers to use in their own code, according to Reinhold.
With a modular format, modules could be added to the base platform such as a sound module or one for Swing development. Also, modules would alleviate developers from needing to use a class path, said Reinhold. A class path is the path that the Java runtime environment uses to search for classes and other resource files.
"Class path is dead," Reinhold said.
"If we have a modular platform, then we instantly almost address the problems of download size and file system footprint," because all that needs to be downloaded is just what an application actually needs, said Reinhold.
Optimizations can be done at install time, he said.
Modularization of Java could lead toward a single Java implementation, said Robert Brewin, Sun application platform CTO. Currently, Java is offered in Enterprise, Standard, and Micro editions, with the Micro version geared to devices.
"The modularity aspect gives us a taste of how perhaps we're getting to a point where we can start to think about how we might end up with one Java," offering one consistent set of bits, Brewin said.
Modularizing down to the smallest device could end up reducing fragmentation in Java by, for example, enabling a Bluetooth module built for an ME system to run on an SE system. But there currently is no such plan to modularize down to only one Java, Brewin said after the presentation. Fragmentation has been an issue on ME, with vendors offering their own specific implementations.
To boost the JVM capabilities to handle languages other than Java, Sun is working on its Da Vinci Machine project, Reinhold noted. In the developer productivity space, JDK leverages Project Coin, which is intended to work on small changes to the Java language to make programming easier, Reinhold said. One change would be use of a "diamond operator," which would be used to instruct a compiler to duplicate tasks on the left and right side of a statement.
Also eyed for JDK 7 are ways to revise the language specification to increase use of annotations. "The point of this is to provide better information to static checker tools," Reinhold said.
Some JDK 7 features already are available, said Reinhold. Milestone 3 of JDK 7 was made available last month while the feature-complete Milestone 6 release is due in October. A release candidate, which would be the final version of JDK 7, is anticipated for release in February 2010.
Also on tap from Sun are improvements to the enterprise edition of Java via Java Enterprise Edition 6. Featured will be profiles and pruning to make the release fit the needs of users, said Roberto Chinnici, senior staff engineer in the Sun Java Enterprise Platforms Group. Profiles enable a bundling of technologies from the platform.
RESTful Web services capabilities also are eyed for Java EE 6. A final release of Java EE 6 is planned for September.
Sun on Tuesday also announced that continuous integration as a feature of Project Kenai for version control and source code management. The continuous integration capability is based on the Hudson project on java.net