Java 9 Will Finally Understand Dependencies
Java Developers will officially have a year to prepare their code before modularity arrives in the new version of Java SE Development Kit 9.
With the modularization of Java, it will be a major transformation for the platform overall. The developers can take comfort in that they have a year before it officially arrives, an Oracle Employee reasoned this week.
Based on the old Project Jigsaw, Java's modularization will happen in the next major version, 9, which is due to release March 2017.
Alex Buckley, with the Java platform group at Oracle said:
If the watchword for JDK 8 was functional, then the watchword for JDK 9 is transitive.
I'm looking forward to the promise that the coming JDK will actually understand dependencies across different modules. They will also try to attempt to resolve these transitive dependencies at compiling or launch time.
Alex also said:
Modules are about shapes of programs in the large. We deal with classes and packages and get bigger from there. 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 also major features in JDK 8, which was released back in March of 2014.
The module system is conceptually simple, believe it or not. 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.
Project Jigsaw was intended to help improve the scalability, maintainability, and overall performance of Java. In a recent post about the state of the Java module system, one of the developers listed goals of the project. Some of these goals include offering reliable configuration to replace the class-path mechanism. Another was to provide string encapsulation so a component can declare which types are accessible to other components.
The overall modularization of Java has been delayed several times in the past. Inclusion was already been planned for in Java 8, but was bumped from that release. Then, Java 9 was delayed by six more months, bumping the release to March of 2017. There has been early-access binaries released for JDK 9.