I'm currently investigating if it makes sense to delay some minor planned refactoring work and combine it with the migration to Java 7
Well, there is still a lot of uncertainty about the Java 7 schedule, as recently explained by Mark Reinhold (Chief Architect of the Java Platform Group at Oracle) on his blog and on the OpenJDK mailing list:
It’s been clear for some time that the most recent JDK 7 development schedule is, to put it mildly, unrealistic.
(...)
Our present best estimate is that we could complete, test, and stabilize the planned work in time for a release around the middle of 2012.
(...)
Our current estimate for this “Plan B”
is that we could ship a reduced JDK 7
in mid-2011 and JDK 8 in the second
half of 2012.
To summarize:
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
So in the best case, Java 7 will be there in a bit less than one year and Java 8 (with the big changes) in a bit more than two years. And in the worst case, Java 7 will be there in a bit less than two years.
The benefit of the move would be the ability to clean up and improve many IO-related things in the application with NIO.2.
For the later part (NIO.2), you'll need Java 7. But for the former part (clean up), there is IMO no good reasons to wait if you get immediate benefits, especially given the uncertainty of the Java 7 schedule.
Considering that Java 7 has only some minor improvements - after most of the VM updates are already in Java 6 and the bigger changes like Closures or Chainsaw are cancelled - it should be sufficiently stable to use it after a few months, right?
Firstly, even if the community seems to favor Plan B, there is nothing written in stone so I wouldn't base a decision on it. Secondly, even if Sun has always tried to maximize ascendant compatibility between Java versions and to offer stable platforms, I can't predict the future :) And although I'm pretty confident, some conservative companies will probably wait a bit (regardless of the chosen scenario).
References
- Re-thinking JDK 7 by Mark Reinhold (Chief Architect of the Java Platform Group at Oracle)
- Re-thinking JDK 7 by Mark Reinhold (Chief Architect of the Java Platform Group at Oracle)