21.5 让Java发展得更快

过去的22年里Java发布了10个大版本——版本发布的平均间隔时间是两年多。有些情况下,两个大版本之间的等待周期甚至长达五年。Java架构师们已经意识到这种状况将无以为继,因为这种模式无法适应语言快速发展的需要,这也是为什么JVM支持的新型语言,比如Scala和Kotlin,与Java在语言特性支持上差距日益拉大的原因。对Lambda或者Java模块系统这种革命性的,或者工作量大的特性,这么漫长的发布周期是恰如其分的。然而,这也意味着一些小型的改动不得不等待这些巨型变更完成,才能跟随其一起整合到发布语言中,这听起来没什么道理。譬如第8章中介绍的集合工厂方法,其在Java 9的模块系统完成之前很久就已经达到发布标准了,却不能及时地发布给用户。

基于这些原因,从现在开始,Java的开发周期进行了调整,变成了六个月。这意味着,每隔六个月Java和JVM就会发布一个新版本。2018年3月Java 10发布,Java 11预计于2018年9月发布2。Java架构师们也意识到,虽然这种更快速的开发周期对语言演化有利,遵循敏捷实践的开发者和公司也习惯了频繁试用新的技术,但是大多数保守型的组织更新软件的速度通常都比较慢,这种新的发布节奏会给他们带来困扰。出于这个原因,Java架构师们决定每隔三年发布一个长期支持版本(long-term support, LST),对这种发布版本的支持会持续三年。Java 9不属于LST版本,一旦Java 10发布,对Java 9的官方支持就停止了。对Java 10的支持也是如此。而Java 11与此相反,它是一个长期支持版本,计划于2018年9月发布,对它的支持会持续到2021年9月。图21-2显示了接下来几年Java版本的生命周期。

2Java 11发布于2018年9月25日。——译者注

21.5 让Java发展得更快 - 图1

图 21-2 未来Java版本的生命周期

当今这个年代,几乎所有的软件系统和语言都在竭尽所能地迅速演进,做出缩短Java开发周期这一决定也是必然的。更短的开发周期可以帮助Java持续演进,在接下来的这些年里保持不断更新的活力。