JavaRush /Java 博客 /Random-ZH /JDK新版本频繁发布会带来什么影响?

JDK新版本频繁发布会带来什么影响?

已在 Random-ZH 群组中发布
这是 Java 变革的时代。JDK 版本现在将按计划发布,而不是在新功能可用时发布。这种方法有其优点和缺点,但这些变化将如何影响 JDK 8?Simon Ritter 是著名的 Java 布道者、Java Champion 和 Azul Systems 的副首席技术官,他解释了为什么“新 Java 按计划推出”是稳定性、安全性和成本之间的权衡。
JDK新版本频繁发布会导致什么 - 1
2018 年,Java 世界将发生重大变化。正如去年宣布的那样,我们将按计划发布 JDK 版本,而不是在新功能可用时发布版本。这是个好消息,因为现在新功能将包含在准备就绪的版本中,并且开发人员可以更快地访问它们。JDK 10 计划于 3 月份发布,我们已经进入错误修复的第二阶段,所以一切都按计划进行。Java 规范请求 (JSR) 已在积极开发中并可供公众评议。甚至还有针对JDK 11 的JDK 增强提案 (JEP) 。看起来 Java 做得很好。

时代变迁

然而,与此发布计划相关的许多其他变化将在今年显现出来,并且可能不那么令人愉快。在超过 22 年半的时间里,我们已经习惯了这样一个事实:Java 作为一个平台,具有三个与其支持方式直接相关的基本属性。
  1. 稳定。以前,新版本的 JDK 添加的功能虽然经过了全面测试,但仍需要在生产中进行测试。这有助于发现需要纠正的缺陷。为了确保用户可以在测试新版本的同时继续使用稳定的版本,更新总是在时间上部分重叠。

    如果我们查看从 JDK 6 开始的最后几个版本,我们会发现 JDK 5 的更新又持续发布了近 3 年(准确地说是 2 年零 11 个月)。随着 JDK 7 的推出,JDK 6 的公开更新发布了一年零 9 个月。JDK 7 的更新是在 JDK 8 发布后 13 个月内发布的。


  2. 安全。OpenJDK 开发和支持团队、Oracle 以及之前的 Sun Microsystems(创建 Java 的公司,编者注)始终将平台安全性放在首位。您还记得,Java 最初是为移动设备(特别是 Star7 PDA)设计的。



    关键的开发目标之一是确保代码可以通过网络传输并安全执行。JDK 会定期发布更新,其中包括针对已发现的安全问题的补丁。如果您在这些更新发布后立即安装它们,那么您将是完全安全的。


  3. 零成本。Java 的一大优点是它一直是一个免费平台,甚至在 2006 年作为开源软件发布之前也是如此。对于可以免版税使用 Java 的地方存在某些限制,但这始终适用于移动和嵌入式应用程序;对于桌面客户端和企业服务器,当前版本的 Java 始终免费。JDK 已经发生的变化之一是在 GPLv2 许可证下发布 OpenJDK 可执行文件,但“类路径”例外。该许可证不会对如何部署 Java 运行时环境施加任何限制。

然而,JDK 开发和发布方式的变化需要仔细考虑将应用程序迁移到新版本 Java 的计划。根据这个新的发布计划,确保多个先前版本的更新可用的努力可能不可行。为了满足两个不同的用户群体(快速需要新功能的用户和重视长期稳定性的用户)的需求,Oracle 决定转向长期支持 (LTS) 模型。JDK 的特定版本将被视为 LTS 版本,这意味着它们将收到三年更新。所有其他中间版本都称为功能版本,并且仅接收 6 个月的更新。为了与这个新系统保持同步,JDK 8 被归类为 LTS 版本。下一个版本将是 JDK 11,计划于 2018 年 9 月发布。这个新模型带来的最大变化是版本之间的更新将不再在时间上重叠。我特意用粗斜体字表示,因为这是绝对清楚的。下图显示了 JDK 19 之前版本的更新的可用性。
JDK-2新版本的频繁发布会带来什么影响?
图中: Java SE 生命周期 – 5 年以上时间表 公开更新零重叠(“支持悬崖”) Oracle 商业支持 Oracle 扩展商业支持
Java SE 生命周期 - 5 年以上计划公开更新 Oracle 的零时间重叠公共可执行文件(无支持) Oracle 商业支持 Oracle 扩展商业支持
这些变化的直接后果是,Java 平台仍然稳定、安全且免费,但现在您必须在这三个功能中选择两个。在未来的 Java 部署中,这三个属性将不会同时可用。

让我再解释一下

假设您担心安全(这是您应该关心的),但您不想花钱。在这种情况下,您需要在新的 JDK 版本发布后立即迁移到它们。如果支持时间不重叠(功能和 LTS 版本),您将必须这样做才能收到新的安全修复程序。不幸的是,如果没有时间重叠,您将不得不立即转移到尚未在生产中测试的 JDK 版本,因此您将失去以前的稳定性。另一种选择是选择零成本的稳定性。同样,这是可能的:您所要做的就是在新版本发布后继续使用以前的 LTS 版本。您可以获得相同的稳定性,无需支付任何费用,但您不会获得任何安全补丁,因为此版本不再提供这些补丁。最后,如果你想要稳定和安全,你就必须付费。您可以继续使用以前的 LTS 版本,但只能通过商业支持合同才能获得安全性和错误修复。

还有作者的一个小广告块:)

Azul(我的公司)在 Zulu Enterprise 品牌下创建了一组 OpenJDK 可执行文件,从源代码构建,使用 TCK/JCK 基准进行测试,甚至使用我们开发的实用程序进行分析,以确保不会因错误的头文件而导致开源代码损坏。我们提供免费下载当前版本的机会,并为感兴趣的人提供商业支持。我们最近开始为 Zulu 提供一套新的支持选项,旨在为客户提供最大的灵活性。我们希望为用户提供迁移到适合其业务和客户需求的新版本 JDK 的能力。为此,我们提供三种支持选项:
  1. 短期支持(STS)。STS 使用户能够以最快的速度访问新的 Java 功能,并为平滑过渡到新的 JDK 版本提供足够的支持。Zulu Enterprise 为 STS 版本提供为期 12 个月的错误修复、安全更新和其他所需修复(“生产支持”),以及 6 个月的额外支持,重点是咨询支持和帮助用户迁移到较新版本的 JDK (“扩展支持”)。这相当于 18 个月的生命周期。

  2. 中期支持(MTS)。MTS 版本允许您在生产中使用功能版本中提供的新功能,而无需等待新的 LTS 版本。Azul 计划在 LTS 版本之间每年发布一个 MTS 版本,并在下一个正式发布 LTS 发布日期后的 18 个月内提供生产支持。这确保了生产部署期间的时间重叠和“平滑”过渡。生产支持结束后,将提供额外 12 个月的扩展支持。

  3. 长期支持(LTS)。它是为 OpenJDK 社区视为 LTS 的版本提供的,并提供 8 年的生产支持以及额外的两年扩展支持。
这是另一张图,让它更清楚。
JDK-3新版本的频繁发布会带来什么影响?
图中: Java SE 生命周期 – 5 年以上时间表 Oracle 公开可用的二进制文件(不受支持) Oracle 商业支持 Oracle 扩展商业支持 Azul Zulu 生产商业支持 Azul Zulu 扩展(被动)商业支持
Java SE 生命周期 - 5 年以上计划 Oracle 的公共可执行文件(无支持) Oracle 商业支持 Oracle 扩展商业支持 Azul Zulu 的商业生产支持 Azul Zulu 的扩展(被动)商业支持
如果您当前在没有商业支持合同的情况下使用 JDK 8,并通过公共更新保持系统稳定和安全,您可能需要考虑从 9 月份开始要做什么。Azul 致力于为您提供帮助,因此如果您需要支持,请随时与我们联系。

结论

今年,Java 平台的多个方面都发生了变化,其中大部分都变得更好了。更快地访问新功能,开放发布飞行记录器和任务控制等实用程序,在 GPLv2 许可证下发布 OpenJDK 可执行文件(“类路径”例外)。然而,令人悲伤的事实是,通常对 Java 平台慷慨的免费支持正在成为过去。Java 仍然稳定、安全且免费。这三个品质中哪两个对您和您的用户最重要?
JDK-4新版本的频繁发布会带来什么影响?

关于作者

Simon Ritter 是 Azul Systems 的副技术总监。Simon 自 1984 年以来一直从事 IT 行业,拥有英国布鲁内尔大学物理学学士学位。

Simon 于 1996 年加入 Sun Microsystems,从事 Java 开发和咨询工作。自 1999 年以来,他一直向开发人员演示 Java 技术,重点关注核心 Java 平台以及客户端和嵌入式应用程序。现在,他在 Azul Systems 继续帮助人们更好地了解 Java 和 Azul 的 JVM 产品。您可以在 Twitter 上关注他:@speakjava

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION