BT

Your opinion matters! Please fill in the InfoQ Survey!

Jigsaw Deferred until Java SE 9

| by Alex Blewitt Follow 2 Followers on Jul 17, 2012. Estimated reading time: 2 minutes |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

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.

Rate this Article

Adoption Stage
Style

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

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT