The upcoming modularization of Java will be transformative for the platform, but developers can take solace in that they still have a year before it officially arrives, an Oracle official reasoned this week.
Based on Project Jigsaw, Java modularization will happen in Java SE Development Kit 9, which is due in March 2017. "If the watchword for JDK 8 was 'functional,' then the watchword for JDK 9 is 'transitive,'" said Alex Buckley, with the Java platform group at Oracle, during a presentation at a Silicon Valley Java User Group meeting.
The new watchword refers to the promise that the forthcoming JDK will understand dependencies across modules, and will attempt to resolve these "transitive" dependencies at compile or launch time.
"Modules are about shapes of programs in the large. We deal with classes and packages and get bigger from there," Buckley said. "Modules affect all phases of development. Compiling, testing, packaging, deploying, running. So they're much more connected to the tools ecosystem than a feature like lambdas." Lambdas and functional programming were featured in JDK 8, which was released in March 2014.
"The module system is conceptually simple, believe it or not," Buckley said. "But in JDK 9 there are changes that probably won't break your code but might break code that you depend on." For example, the sun.misc package has been slimmed down, he said.
Project Jigsaw is intended to improve scalability and maintainability, as well as boost performance. In a recent post about the state of the Java module system, Oracle's Mark Reinhold, chief architect of the company's Java platform group, listed specific goals of the project, including offering reliable configuration to replace the "brittle, error-prone" class-path mechanism, and providing strong encapsulation so that a component can declare which of its public types are accessible to other components.
Modularization of Java already has been subjected to multiple delays. It had been planned for inclusion in Java 8 but was bumped from that release. Then, Java 9 itself was delayed by six months, until March 2017, although early-access binaries have been available for JDK 9.