BT

Jigsaw Deferred until Java SE 9

by Alex Blewitt on Jul 17, 2012 |

Mark Reinhold, chief architect of the Java Platform Group, announced on his blog that proposal of adding a module system, and modularizing the JDK, is deferred to Java SE 9.

Despite being a difficult decision to make, doing so allows more focus to be given on the module system in order to get it right, without having to delay the release of Java SE 8, scheduled for just over a year's time in August 2013.

The decision is reminiscent of the well executed plan laid in 2010 for Plan B, which deferred the addition of Lambdas (aka JSR 335) until after JDK7 was released. This allowed JDK7 to be released around a year ago (July 2011), some four and a half years after the prior JDK6 released.

To gain stability and a future roadmap, the JDK will be released every two years in what is being referred to as the biannual release train, similar to Eclipse's annual release train – though, as Reinhold notes, at the end of the Summer rather than before, and at half the tempo.

This allows large organisations to plan when to upgrade to a newer version of the JDK, and using agile planning techniques, releasing on a regular schedule with contents that are ready rather than trying to rush or delay releases.

Unfortunately this means that JDK8 will not have a module system based on Jigsaw when it is released next year. The delay in introducing modularity does not affect general developers; but as the code-base of software grows, modularity becomes a necessary tool in software architecture. Module systems such as OSGi and PojoSR already provide a runtime support for modules; modularity forms a key part in many build and runtime systems, as well as enterprise application servers.

Although adding modularity can be done after the fact, with code bases that have a long history (and typically haven't been designed with modularity in place) retro-fitting modules can be a challenging task. Few would expect that the JavaBeans API would need a dependency on a GUI; yet the java.beans.Beans#instantiate() method contains a reference to java.applet.AppletInitializer which directly depends on the java.awt packages. As a result, retro-fitting modularity to the JDK remains a significant challenge; and as the number of packages increase, the accidental dependencies between them can increase. The java.lang, java.io and java.net packages all have circular references with each other which makes splitting them into different modules difficult.

Finally, the delay to the introduction of Jigsaw will give more time for Oracle and other modularity experts to refine the proposals in place and to apply the thoughts and development plans already created. As Mark identifies on his blog, the delay to Jigsaw is not through lack of work, effort or implementation achieved so far; but rather as a means to avoid delaying the planned JDK8 release and to ensure that the modularity implementation for the JDK platform is the best it can be.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

I do wonder... by Augusto Rodriguez

I wonder if the addition of lambdas will be postponed too and we have another feature rich release, similar to java 7.

What about byte code? by M Vleth

Java is being overtaken, in terms of possibilities, by tons of other languages that compile directly to byte code. While I don't think java is done for any time soon, it's life expectancy is not forever. The thing Microsoft is trying to do with IL as a platform for all kind of languages, but ironically isn't the platform of choice for language designers. Wouldn't it be a good move for Oracle to focus on enhancing the byte code and runtime instead of the Java language?

Jigsaw was part of plan B by serge ----

Infoq,

You say "The decision is reminiscent of the well executed plan laid in 2010 for Plan B, which deferred the addition of Lambdas (aka JSR 335) until after JDK7 was released" but Plan B deferred both Lambda and Jigsaw. Jigsaw was also in the original release of Java 7.

•Plan A: JDK 7 (as currently defined) Mid 2012
•Plan B: JDK 7 (minus Lambda, Jigsaw, and part of Coin) Mid 2011

Re: I do wonder... by Cameron Purdy

Augusto -

I wonder if the addition of lambdas will be postponed too


The last I heard, the Lambda project was still on schedule for inclusion in Java SE 8.

There were also some extraordinary reasons why Jigsaw was delayed, that hopefully will not repeat.

Wouldn't it be a good move for Oracle to focus on enhancing the byte code and runtime instead of the Java language?


There is significant (and growing) investment in that area within Oracle (including work relating to JavaScript, Scala, languages like "R", etc.), and since the OpenJDK project is open, there's also quite a lot of work being done outside of Oracle!

Peace,

Cameron Purdy | Oracle

Re: I do wonder... by Mark N

I am glad they are doing both. While I see the value of alternative JVM languages, Java (the language) is very important to certain kinds of apps/systems solutions and will continue to be - from a "technical" standpoint. It needs enhancements so that people can use the right tool for the job, not the lessor of two evils.

why not cutting Jigsaw in half ? by Dominique De Vito

Major part of users will gain quite nothing with Java platform modularization. But still, there are (IMHO) valid and important Jigsaw goals: replace the broken JAR model/hell and the broken Maven tool (which comes with an awful and improductive integration with current IDE). So, from my naive point of view, I thought Jigsaw could be cut in 2 parts: a) the add of modules on top of the Java platform and b) putting in pieces the Java platform itself.

b) could be late, it’s not that much awaited.
but a) is very important, because there are out there true use cases (see OSGi and Maven)

If Oracle truly listens, it should be delivered ASAP: why not a 8.5 release ?

Is there nothing inside Jigsaw that is ready and could be included inside JDK 8 ?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

6 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT