Despite significant delays, Oracle is once again moving forward with Project Jigsaw, a major undertaking that aims to allow Java developers to break their programs down into independent, interoperable modules.
Jigsaw was first intended to be a major features of Java 8. By 2012 Big O decided that waiting for Jigsaw to be ready would delay the entire Java 8 release, so work on the module system was postponed until a later version.
Not much has been heard much about Jigsaw since. But in a blog post on Wednesday, Mark Reinhold, Oracle's chief Java architect, said the Java Community was ready to begin "Phase Two" of the Project Jigsaw effort.
"It's now time to switch gears and focus on creating a production-quality design and implementation suitable for JDK 9 and thence Java SE 9, as previously proposed," Reinhold wrote.
To that end, Reinhold has drafted a new document outlining the goals and requirements of Project Jigsaw. If the devs get it right, Reinhold figures Jigsaw will not only make it easier to scale the Java platform down to small devices, but it will also improve the security, performance, and maintainability of Java applications.
But it's not going to be easy. Back in 2011, when Jigsaw was still expected to be part of Java 8, Reinhold said it would be a "revolutionary" release, as compared to the more "evolutionary" Java 7.
In the end, the Java 8 we actually got was mostly evolutionary, too, with lambda expressions being the only truly significant new feature. And Java 8 arrived two years late, even after cutting loose the Project Jigsaw boat-anchor.
Now work is set to begin in earnest on making Jigsaw ready for inclusion in Java 9, and Reinhold is once again warning us of the difficult slog ahead. Still, he says it's important to press onward.
"Jigsaw as a whole will bring enormous changes to the JDK; it would be unwise to wait until it's completely finished before merging any of it," Reinhold wrote. "Our intent, therefore, is to proceed in large steps, each of which will have a corresponding JEP [JDK Enhancement Proposal]."
The first three steps will involve figuring out how to break the JDK down into modules, modularizing the source code, and then finally modularizing the binary images. The fourth and last step will be to introduce the module system itself, in the form that developers will use for other programs outside the JDK.
Just how long all of this will take, we dare not speculate. So far, Oracle is hoping for a 2016 release for Java 9, but given that there were three years between versions 7 and 8 (even after dropping Jigsaw), that may be a tall order. ®