Oracle提议将Java长期支持周期缩短至两年

223 阅读4分钟

Oracle Proposes Shorter Java LTS Cycle of Two Years

在发布 Java17, 的同时,Oracle Java平台组的首席 Java 架构师 马克·罗纳德 提出要缩短 JavaLTS(Life time support,长期支持)周期:从三年缩短到两年。Java17的发型刚结束Java11三年支持期。这个提议很可能被接受:OpenJDK的下游发行商中,微软、亚马逊都表示支持,只有红帽表达了“紧张,但是......”。

莱因霍尔德也在 OpenJDK 邮件列表里提议两年的LTS周期,并提到了他的博文,其中提到了对于非LTS的Java发布的失望是主要动机:

很多流行的集成开发环境、工具、框架和库都只支持半年的特性发布 [...] 然而,程序员们 [...] 感到很沮丧的是他们不能马上就用,因为他们的老板只愿意每三年在有长期支持的版本上部署应用程序 [...] 。

他认为缩短周期有两个好处。首先是在LTS版本中更快地提供新的Java功能,周期是每两年而不是每三年。第二是会增加每六个月发布一次的非LTS版本的吸引力。

Oracle在过去预计会有大量的非LTS Java版本回收。在2019年QCon伦敦会议的Java 小组讨论 中,Oracle 的 JavaSE 产品经理唐纳德·史密斯在发布Java12后很快就发布了这个声明:

我们相信人们会随着 Java12 和 Java13 的发布适应新的发布周期。[...]我认为给点时间就会发现半年的周期实际上是非常容易做到的,非常简单。

这个提议将会给 JDK更新项目 带来更多工作。Oracle还需要决定它们倾向于在新的周期下支持多久的 LTS版本。

似乎还没有要接受或拒绝这项提议的正式期限。

亚马逊网络服务(AWS)的首席软件工程师沃尔克·西蒙尼斯支持这项提议,他说:

我代表亚马逊Corretto团队表达对新JDK LTS发布周期提议的支持。我们认为这是让OpenJDK项目保持活力并且让开发者们和企业同时受益的正确一步。如果得到OpenJDK社区的认可,我们Corretto团队将很乐意在OpenJDK更新项目中去帮助并承担新的责任。

担任微软的首席工程经理(Java)马蒂恩·维尔伯格也表示同意:

我们也愿意支持为OpenJDK的构建提供两年LTS的提议。由于大多数终端用户生态系统更喜欢LTS的额外稳定性,这是鼓励他们进行现代化努力的一个好方法!微软愿意帮助维护各种LTS更新项目,因为这些项目都是在其自然生命周期中进行的。

Azul的CTO吉尔·提内也拥抱了新变化,写道:

我代表Azul公司表达我们对OpenJDK转向更频繁的LTS周期的建议的强烈支持。根据我们的经验,大多数生产环境[......]需要一定程度的预期寿命和稳定性[......],并且[......]不断进行错误修复和安全更新,但没有其他(或绝对最小)的变化或增强。指定的LTS版本很好地满足了这一目的,既提供了稳定性,又有一个可预测的、实用的时间表。[...] Azul [...] 很乐意帮助满足更频繁的LTS发布可能带来的额外负担。

安德鲁·海莉红帽公司的开源Java技术负责人发表了唯一的反对意见:

这场对话里很明显少了独立软件开发商们和终端用户。 [...] 在做出一个影响所有人的决定之前,我们应该向广大的Java社区征求意见。从我作为一个工程师的角度出发,转向两年周期的LTS是非常积极的。[...] 确认库可以在新的Java版本执行需要付出几个月的努力,并且没有人愿意欢迎这么频繁的做这种事。[...] 我不希望我们发布很少人用的“LTS”版本。这很可能导致Java社区的分裂,而这又是我们想避免的。 [...] 所以对我来说,这个是一个相当紧张的事情。

未来更多关于这项提议的进一步讨论在暗中进行:OpenJDK邮件列表的最新回复是9月21号,而对莱茵·霍尔德推特的最新回复是9月15号。

Oracle 一直在开发几个长期的 Java 项目,这些项目具有重要的功能,而这可能是在为 2023 年的 Java LTS 版本做好准备: Project Loom, Project ValhallaProject PanamaProject Amber。不知道这些想法是否影响了这个提议。