Oracle 近日宣布,他们将 Java 的发布频率改为每六个月一次。
JCP 执行委员会在八月份的会议上提到了这一说法,随后,Oracle 发言人Donald Smith 在他的博客中确认了这一消息。该决定将在Java 9 正式发布之后开始实行,也就是说,Java 的下一个发布日期是2018 年初。
除了发布周期,Oracle 还宣布了在Java 的构建和发布方式方面所发生的主要变化。Oracle 将把OpenJDK 的二进制包作为面向开发者的主要版本,取代之前的Oracle JDK。
OpenJDK 将采用 GPLv2 许可(包括“类路径例外”)免费发行,移除了之前在 Oracle JDK 上存在的一些限制。Oracle JDK 仍然会继续存在,但需要与 Oracle 签订协议才能获得 Oracle 提供的长期支持。
Java 首席架构师 Mark Reinhold 说,为了避免出现像Java 8 和Java 9 那样的延期情况,所有决定实行新的发布周期。
Java 当前的发布周期为两年一次,Java 9 因为模块化系统(Jigsaw)问题一再延期,已经比预期晚了 18 个月。之前,Java 8 也因为安全问题延期了 8 个月左右。Java 9 的 GA 版本将在 9 月 21 号发布。
新的发布周期严格遵循时间点,将在每年的 3 月份和 9 月份发布,相应的版本号为 18.3、18.9、19.3 等。与现在的发布周期不同,新的发布计划不会为了等待某个主要特性完成而延期。如果一个特性还没有完成,它就不会被合并到发布用的代码仓库里。如果错过了一个版本,就要等待下一次发布。
新的发布周期旨在避免未完成的里程碑特性(比如 Java 8 的 Lambda 或 Java 9 的模块化系统)造成发布延期,让其他一些有用的特性也无法与开发者见面。
除了新的发布周期,Oracle 将会继续每个季度发布更新版本,时间分别为 1 月份、4 月份、7 月份和 10 月份。也就是说,在下一个大版本发布之前,当前版本都会有两个更新版本。更新版本只包含安全问题修复或回归错误的修复。
Reinhold 说:
开发者希望加快速度,这样他们就能够尽快地在生产环境中使用新的特性。
对于没有必要快速升级 Java 版本的企业和组织来说,Oracle 建议他们签订每三年一次的长期支持(Long Term Support,LTS)协议。他们因此可以获得由 Oracle 提供的至少三年的支持,还有可能更长时间,这要取决于市场的反应。
Oracle 建议第一个 LTS 版本为“18.9”,不过这需要与其他的 OpenJDK 贡献者讨论过后才能最终确定。Java 8 被作为一个特别的 LTS 版本,支持日期截止到 2025 年。
Smith 说:
OpenJDK 是开发者了解和使用 Java SE 平台最主要的渠道,而 Oracle JDK 继续作为 Oracle 收费用户的 LTS 版本。
伦敦 Java 社区的负责人 Martijn Verburg 也发表了他对新发布周期的看法:
新的 Java 发布周期对于 Java 生态系统来说是一件好事情。Java 9 的 Jigsaw 和孵化模块问题促成了这一局面的发生。
Oracle 确实面临着发布方面的巨大挑战,不过 OpenJDK 社区拥有足够的知识来帮助一起解决挑战。
我希望看到中间会有所突破,不过对常规的发布周期仍然很期待。其他实现者可以更早地访问到规范的草案,这样他们就可以更早、更经常地发布版本。
Oracle 的 Java 发布速度经常受到诟病,Java 被广大的企业组织所采用,并已成为大量开源平台和语言的基础,而这样的发布速度让 Java 处于很尴尬的境地。新的 Java 发布周期恰好满足了广大用户的期望,不过这仍然需要等待 Java 开发者和 Oracle 用户的反馈。
评论