Oracle已经宣布了Java 9的时间表,其目标是在2016年9年正式发布该版本。该时间表遵循Oracle每两年发布一个新的主版本的计划,虽然与先前的版本相比,目前提出的最后期限可能存在一定的延期风险。
截至目前,所有必要的JSR都还没有提交;相比之下,与定义Java 8内容的“总括JSR(Umbrella JSR)”相关的工作在2010年底就已经开始,距离最初计划的正式发布时间大约有三年。Java 9中一些最有代表性的项目也是如此:Kulla项目(创建Java REPL)、Valhalla项目(改进Java类型)和Jigswa项目(增加模块化功能);同样,相比之下,Java 8中一些最有代表性的项目(Lambdas及新的Data/Time API)也是在距离计划日期还有几年时就提交了。
以前,在面对此类情况时,为了严格按照计划进行,Oracle会缩小范围。Mark Reinhold是Oracle Java平台组的首席架构师,他先前曾说:
最好是将Java开发过程构造成一个持续创新的管道。该管道与定期的、有节奏的发布过程只是松耦合的关系。如果一个主要特性错过了预期的“发布列车(release train)”,那虽然遗憾,但却也并不是世界末日:它将搭上下一趟列车,这一趟也会在一个可预见的时间发出。
对于长期使用Java的开发者而言,这样两年一个周期并不令人意外。如表1所示,Java的早期版本也是按这种节奏发布的。时间表管理的主要不同在于不同Java版本的发布间隔缩短:Oracle的目标是每个Java版本有三年的公共使用寿命,这大约只有Java早期版本的一半。这项计划意味着,用户只有一年的时间从一个主要版本迁移到下一个版本,除非他购买了商业支持。
版本 | 正式发布日期 | 停用日期 | 使用寿命 | 距离上个版本 | 与上个版本共存 |
3(1.3) | 2000.5 | 2006 | 6 | 2 | -- |
4(1.4) | 2002.2 | 2008.10 | 6 | 2 | 4 |
5 | 2004.5 | 2009.12 | 5 | 2 | 4 |
6 | 2006.12 | 2013.2 | 6 | 2 | 3 |
7 | 2011.7 | 2015.4 | 4 | 5 | 1.5 |
8 | 2014.3 | 2017.5* | 3 | 3 | 1 |
9 | 2016.9* | 待定 | 待定 | 2 | 1 |
表1.不同Java版本的正式发布及停用日期,“*”表示计划日期。(数据来源)
由于只有一年的时间从一个Java版本升级到下一个版本,所以建议Java社区中的开发者尽早使用新版本测试他们的工具和库。Mani Sarkar是Adopt OpenJDK项目的负责人,他说:
为了将测试流程带给社区,实现早测试早反馈,由@LJCJug和OpenJDK(也就是Oracle)支持的“Java测试”项目已经启动。借助该项目,开发者可以修复任何问题,或者改变他们的工具在Java 9上的工作方式,或者相反,找出并修复JDK本身的问题。