我目前正在调查是否有必要推迟一些计划中的小重构工作并将其与向 Java 7 的迁移结合起来
好吧,正如 Mark Reinhold(Oracle Java 平台组首席架构师)最近在他的博客和OpenJDK 邮件列表中解释的那样,Java 7 的时间表仍然存在很多不确定性:
很明显,最近的 JDK 7 开发计划,委婉地说,是不切实际的。
(...)
我们目前的最佳估计是,我们可以及时完成、测试和稳定计划的工作,以便在 2012 年年中左右发布。
(...)
我们目前对该“B 计划”的估计是,我们可以在 2011 年年中发布缩减版的 JDK 7,在 2012 年下半年发布 JDK 8。
总结一下:
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
所以在最好的情况下,Java 7 将在不到一年的时间内出现,而 Java 8(有很大的变化)将在两年多的时间内出现。在最坏的情况下,Java 7 将在不到两年的时间内出现。
此举的好处是能够使用 NIO.2 清理和改进应用程序中许多与 IO 相关的内容。
对于后面的部分(NIO.2),您将需要 Java 7。但对于前面的部分(清理),如果您立即受益,IMO 没有充分的理由等待,特别是考虑到 Java 7 时间表的不确定性.
考虑到 Java 7 只有一些小的改进——在大多数 VM 更新已经在 Java 6 中并且像 Closures 或 Chainsaw 等较大的变化被取消之后——它应该足够稳定,可以在几个月后使用它,对吧?
首先,即使社区似乎支持B 计划,也没有什么是一成不变的,所以我不会以此为基础做出决定。其次,即使 Sun 一直试图最大限度地提高 Java 版本之间的兼容性并提供稳定的平台,我也无法预测未来 :) 虽然我很有信心,但一些保守的公司可能会等待一段时间(不管选择的场景)。
参考