Modularisation to be pulled from Java 8
It looks like Project Jigsaw, which was intended to be a key feature of Java 8, may not make it into the next version of the programming language after all. The aim is to create a new Java module system and the news is particularly frustrating for many in the Java community as Jigsaw was originally scheduled for inclusion in last year's Java 7. When it decided to put off modularisation in order to prevent delays to that release, Oracle promised the community that it would be included in the next version.
The proposal to defer adoption of Project Jigsaw to Java SE 9 (Java Standard Edition) comes from Mark Reinhold, Oracle's chief architect for Java development. In his opinion, development is currently not sufficiently advanced to be able to implement the technical requirements in time for Java 8's scheduled release next summer. He also believes that time is too short to be able to develop alternative ideas, as the major features for Java 8 have to be completed by May 2013. For Reinhold, delaying the release of the next version until the module system is properly implemented is not an acceptable option. Java 9 is currently scheduled for release in 2015.
Few issues have been subject to such lengthy discussion within the Java community as that of modularisation. Java Specification Requests (JSRs) 277, 291 and 294, which were introduced into the Java Community Process (JCP) – the central body for Java standardisation – have not been resoundingly successful and have prompted many irate blog postings and verbal attacks.
Arrayed on one side are representatives of Oracle/Sun, who have approached modularisation through Project Jigsaw, developed within the OpenJDK framework. It takes into account changes in the language, classes, and other elements of Java to make language components easier to delimit, replace, and link together within applications. Lined up against them are representatives of the OSGi (Open Services Gateway initiative) standard, which has been enabling Java programs and services to be modularised and managed using a component model for more than ten years. The former's general criticism of the latter is that Java needs something much more lightweight than OSGi. In the meantime, however, a requirement for support for OSGi has also been added to Project Jigsaw. This is being implemented within OpenJDK's Penrose project.
Efforts to unify Java's Standard and Mobile editions (Java ME) will also be affected by the delay. This is something that Oracle promised for Java 8 at the last JavaOne event. Implementation of this would also see a two year delay. Reinhold is therefore recommending that the JSR 337 Expert Group currently being assembled should address this. The group is tasked with specifying the technologies to be included in Java 8, and Reinhold recommends that it should define a few profiles which will allow compact Java SE configurations for devices with limited resources.