Java all the way
As was reported last week, modular is almost definitely a-go for next big platform update. To the disappointment of many, Project Jigsaw didn’t make it to an otherwise warmly received Java 8 – but with JSR 376 pushed for review today, we’re getting ever closer to the realisation of this long-awaited step for Oracle’s platform, and importantly, what it’s actually going to look like.
JSR 376 defines an “approachable yet scalable modular system for the Java Platform”. The emphasis is on making any modular version of Java easy to learn and use, and making it simple for devs to build and maintain libraries and large apps for the Java SE and Java EE platforms. The system itself also needs to be scalable enough to modularize the Java SE platform and its various implementations. Additionally, it’s hoped that this granular evolution will bring about better platform integrity and improved performance.
Whilst the target for this particular JSR is Java SE 9, Java EE requirements are also being taken into account, with the expectation that the modular system will be fully harnessed by the ninth major EE release. With JSR 376, the emphasis is very much on a definition for modularity with this JSR – not a final nod for the modularization of any Java platform. The impetus for this will on future JSRs, which will be defined in the Java SE 9 Platform Umbrella JSR.
The next steps for JSR 376 will be the formation of an expert group in December, followed by an early draft review in June 2015 and public review in October 2015, leading to final release in March 2016.
There have already been some relevant JEPs (Java Enhancement Proposals, which are processes that allow for smaller, targeted development and testing of features for Java and the JVM proceeding a JSR) towards this. These include a modular structure proposed in JDK 9 (JEP 200) and the modularization of the JDK source code (JEP 201).
There’s also the update of JDK binary image forms to accommodate modules with JEP 220 – which was initially perceived by some as the ‘death’ of JAR files following Mark Reinhold’s statement that “The JAR format has run its course. It’s time to move on.” He’s since clarified that this was merely directed at the JDK and JRE. Any existing libraries and apps grounded in JAR will continue to work just fine, and whilst you may not longer find Java packed in JARs, Reinhold assures that, for better or worse, the JAR format will be here “until the end of time.”