Monday, September 27, 2010

The curious case of Oracle, the JDK and plan B (aka the prune juice plan)

Mark Reinhold (Chief Architect of the Java Platform Group at Oracle), posted a Plan A and B approach (just like a classic A/B ecommerce conversion test eh?!) for the JDK roadmap in advance of the annual Java love fest that is JavaOne in San Francisco last week. For me, this was the biggest item I was looking for - the time gap between JDK 6 and 7 has been ridiculous.

From his "Re-thinking JDK 7" post, the options proposed are:


Plan A: JDK 7 (as currently defined) Mid 2012

Plan B: JDK 7 (minus Lambda, Jigsaw, and part of Coin) Mid 2011
JDK 8 (Lambda, Jigsaw, the rest of Coin, ++) Late 2012


I am firmly in favour of the option eventually selected - option B. It's clear that the JDK has a huge feature log jam. Selecting option B is like giving the JDK release schedule a big dose of prune juice - you know something's gonna start moving.

So to understand what Plan B means for you as a Java architect, I suggest that it can be broken down into these four steps.

1. Read the negative comment to a further post by Mark announcing the decision - this comment represents why you would be unhappy with Plan B. I reproduce it here for the lazy reader (not you, the other guy):

"Hi Mark,

To me, "JDK 7 minus Lambda, Jigsaw and part of Coin" doesn't sound much like "Getting Java moving again" :-(

This schedule is very disappointing.

Posted by Cedric on September 08, 2010 at 10:06 AM PDT"

2. Read the response to the negative comment to understand what Plan B entails. Again, reproduced here:

"JDK 7 - (Lambda + Jigsaw + part of Coin) = Most of Coin + NIO.2 (JSR 203) +
InvokeDynamic (JSR 292) + "JSR 166y" (fork/join, etc.) + most everything else
on the current feature list ( +
possibly a few additional features TBD.

Posted by Mark Reinhold on September 08, 2010 at 10:26 AM PDT"

The TBD bit is a tad ambiguous - let's ignore it by assuming nothing major is going to get in now, given the sheer volume of regression and platform testing needed before a JDK hits gold / GA status.

3. So now you know Project Coin is the biggie for JDK 7 - therefore you need to download presentation for same from this year's JavaOne 2010 session on Coin (119 slides, but a lot of these are just slides bitching about how hard it is to do, seminal slides are 10 and 23 - 66). Try-with-resources (Automatic Resource Management) looks great - equivalent to C#'s using keyword. Enhanced exception handling will enable better code as well.

4. [Optional, for the dedicated reader] Some more light bedtime reading - follow the links from the JDK 7 roadmap, especially for Project Lambda (closures) and Jigsaw (modular Java). This will then get JDK 8 on your forward-looking radar.

Now the **real** question is what will JEE 7 look like?!