No Project Jigsaw in Java 8
Looks like we won't be seeing the Java-native module system known as Project Jigsaw in the upcoming Java 8 release. In a blog posted this week, the chief architect of Oracle's Java Platform Group, Mark Reinhold, proposed to defer the project to the Java 9 release. Java 8 is currently on track for a September 2013 ship date. Java 9 is currently expected in 2015.
Although "steady progress is being made" on Jigsaw, some "significant technical challenges remain," Reinhold wrote, adding, "There is, more importantly, not enough time left for the broad evaluation, review, and feedback which such a profound change to the Platform demands."
Not to be confused with the weird puppet-head guy in the Saw movies, Project Jigsaw is the OpenJDK project focused on implementing a standard module system for Java Standard Edition (SE). Sponsored by the Java programming language Compiler Group, and originally aimed at modularizing just the JDK, the project will ultimately apply to the Java SE, EE, and ME platforms and the JDK.
"The growing demand for a truly standard module system for the Java Platform motivated expanding the scope of the [Jigsaw] Project," the sponsors explain on the OpenJDK Web site. The goal of the project is to "produce a module system that can ultimately become a JCP-approved part of the Java SE Platform and also serve the needs of the ME and EE Platforms."
When it is implemented, a modular system for Java will "ease the construction, maintenance, and distribution of large applications, at last allowing developers to escape the ‘JAR hell' of the brittle and error-prone class-path mechanism," Reinhold wrote." Such a system will support customizable configurations that scale from large servers to embedded devices and "in the long term, enable the convergence of Java SE with the higher-end Java ME Platforms." Reinhold also pointed out that "Modular applications built on top of a modular platform can be downloaded more quickly, and the run-time performance of the code they contain can be optimized more effectively."
Reinhold expects Java 8 to include the much-anticipated Project Lambda (JSR 335), which adds closures and related features to the Java language to support programming in multicore environments. Java 8 will also include the new Date/Time API (JSR 310), Type Annotations (JSR 308), and "a selection of the smaller features already in progress," he said.
Work on Jigsaw will, in the meantime, proceed at full speed, he added.
In that same blog post, Reinhold also advocated for a regular two-year cycle for all future Java SE releases.
"In all the years I've worked on Java," Reinhold wrote, "I've heard repeatedly that developers, partners, and customers strongly prefer a regular and predictable release cycle. Developers want rapid innovation while enterprises want stability, and a cadence of about two years seems to strike the right balance. It's therefore saner for all involved -- those working on new features, and those who want to use the new features -- to structure the development process as a continuous pipeline of innovation that's only loosely coupled to the actual release process, which itself has a constant rhythm. If a major feature misses its intended release train then that's unfortunate but it's not the end of the world: It will be on the next train, which will also leave at a predictable time."
IDC analyst and long-time Java watcher Al Hilwa believes that the delayed release of Project Jigsaw is probably the right move.
"Java does not exist in a vacuum and delays in the Java modularity project of the JDK will no doubt hinder certain parts of the ecosystem," Hilwa told ADTmag. "However, under the circumstances, I think it is wise to prioritize schedule over features. The maturity of any development process is measured by the predictability of its schedule. Oracle has done a decent job of steering Java to be schedule driven, and kudos to the team for owning up at the right time, because the ecosystem needs to know as early as possible."
I would argue that the success of the annual Eclipse Release Train, now in its seventh year, offers an example of the value of predictable releases, both in terms of reassuring the commercial adopters and the community itself. Hilwa believes that the releases should come even faster.
"I would argue that, in the era of cloud services, social interaction, and mobile app stores, a faster cadence is needed," Hilwa added, "and the two-year cycle should give way to a more incremental and faster approach to development everywhere."
Posted by John K. Waters on 07/19/2012 at 1:36 PM