Oracle 即将发布 Java 21,但 JavaOne 呢?
翻译自 Java 21 Is Nigh, Whither JavaOne?
甲骨文即将在其 CloudWorld 大会上发布 Java 21(JDK 21),时间定在下个月。这项技术最近已达到发布候选状态,准备就绪。
Java 21 是技术上的长期支持(LTS)版本,这意味着它提供了更长期的稳定性,因为甲骨文将向用户提供高级支持,直到 2028 年 9 月,并提供扩展支持,直到 2031 年 9 月。
然而,甲骨文通常会通过 JavaOne 大会来突出显示新技术,今年却没有举办。
这很有趣,因为甲骨文去年宣布要重新启动 JavaOne 大会,当时它引起了很大轰动。早在 2018 年 4 月,甲骨文宣布 JavaOne 大会将停止举办,改为举办一个更通用的编程大会,称为 Oracle Code One 。因此,去年重新启动 JavaOne 大会是一件大事。现在,Java 21 将在 9 月 19 日的 Oracle CloudWorld 上发布。
“我们正在重新构想 JavaOne 的格式,我将在有更多详细信息时分享给大家,”甲骨文的一位发言人告诉 The New Stack。“今年在 CloudWorld 举办 JavaOne 的替代活动,我们将有 10 个专门的 Java 会话,并会有几位 Java 高管出席(除了在 9 月 19 日星期二宣布 Java 21 之外)。”
简而言之,JavaOne 曾经是“一流”的大会。在大会的早期,你可以轻松地遇到核心 Java 创建团队的成员在 Moscone 中心漫游,享受着摇滚巨星的待遇,其中包括 Bill Joy、Arthur van Hoff、Kim Polese、Guy Steele 以及Java的“创始人” James Gosling。
Sun Microsystems 于 1996 年开始举办年度 JavaOne 大会。我参加了第一次大会以及大多数年度活动,直到甲骨文停办为止。
现在,人们对甲骨文的决定有不同的看法。
一个 Java Development Kit(JDK)的供应商 Azul Systems 的副 CTO Simon Ritter 说:“甲骨文决定再次不举办 JavaOne 大会出乎意料。我不能参加,但听说出席人数没有达到甲骨文预期的那么高。对于 Java 开发人员的好消息是,有几个优秀的替代活动,提供了来自公认的 Java 专家的高质量演讲以及社交机会。在美国,有 DevNexus 大会,在欧洲,有几个 Devoxx 活动,以及 Jfokus、JavaZone 和 JavaLand。对于更多本地活动,有许多 Java 用户组(JUGs),因此 Java 社区完全有能力填补 JavaOne 留下的空白。”
与此同时,Constellation Research 的分析师 Holger Mueller 也似乎对这一举措感到震惊。“这表明,即使有着最好的意图,企业也正在更快地重新考虑提供的产品。我感到惊讶。”
Omdia 的分析师 Brad Shimmin 认为,关于 JavaOne 的甲骨文决定并不出乎意料。
他说:“这并不是完全出乎意料的,因为我们经常看到较大的技术供应商会自然而然地扩大和缩小。例如,IBM 也曾经这样做,将许多大会合并成一个(IBM Pulse),然后如果市场表现出足够的兴趣或重要性,就会重新选择一些展会。”“换句话说,未来看到独立的 JavaOne 大会也不会让我感到惊讶。话虽如此,在审查他们的展示材料时,今年公司似乎正在将 Java 融入其众多面向开发者的技术中,包括 db/app 工具如 Apex,其数据科学工具系列,当然还有其数据库。鉴于许多使用 Python 和 R 等语言编写的数据科学项目最终会为了性能、安全性等方面的原因在 Java 中进行重构,这是明智的做法。”
但对于 xqiz.it 的创始人兼 CEO、前甲骨文开发副总裁 Cameron Purdy 来说,这一决定没有意义。
他告诉 The New Stack:“砍掉全球最知名、最有影响力的开发者大会之一是短视的行为,对于一家软件公司来说,忽视开发者是一种失败的战略。我真的不明白这个决定。”“当然,一个面向开发者的大会可能会与甲骨文年度 OpenWorld 大会大不相同,但出于同样的原因,它也应该更简单、更经济,运营成本也更低——这也可以使其对开发者更加可接近。在某个时候,某个甲骨文高管将会问:‘我们现在要建立一个开发者社区需要花多少钱?’答案将是:‘比我们培养出色的开发者社区所需的成本要高出一千倍。’”
Omdia 的 Shimmin 对甲骨文的决定有类似但略微更为圆滑的看法。
他说:“然而,更广泛地说,我认为这一展会缩减与最近的 Java 许可证变更有关,这些变更并未受到 Java 社区的热烈欢迎,将使甲骨文更难以不仅建立而且维持对这门极其重要的语言和开源项目(OpenJDK)的广泛兴趣。”
与此同时,Java 21 的发布即将来临,带来了数项新功能,减少了一项。这个版本包含了 15 个新功能,但其中一个拟议的功能,Shenandoah 垃圾收集器,被从这个版本中删除。
Mueller 表示:“这是一个坚实的发布版本,很高兴看到宣布的 16 项功能中有 15 项得以实现。遗憾的是,新的垃圾收集器 Shenandoah 没有包括在其中。”“尽管如此,对企业来说,这是一个关键版本,因为它将获得为期五年的高级支持和为期三年的扩展支持,这对企业来说是一个合适的时间框架,以将其下一代应用程序投入使用。在这 15 项功能中,没有一项真正脱颖而出,其中许多功能都处于预览状态...这对企业来说是好事,因为它们可以为未来的 Java 版本准备其 Java 应用程序。‘无聊’的版本有益,因为它们为平台带来了稳定性。这又是另一个证明甲骨文比社区最初期望和担忧的更好地监管 Java 的 Java 版本。”
Purdy 解释说,Java 21 备受期待,因为它是一个 LTS 版本。这意味着企业可以期望得到多年的支持。而且,它具有许多功能,大多数公司尚未使用,因为它们是在之前的几个 Java 版本中引入的,这些版本尚未由 LTS 版本覆盖。
Purdy 指出:“因此,许多开发人员一直积极地使用和开发这些功能,但通常会等待 LTS 版本才会正式发布。”“因此,我确实预计会看到对 Java 21 的采用激增。而且,Java 团队似乎也没有放慢脚步——他们的开发管道中还有很多内容,以及稳定的每六个月发布一个版本的节奏,一个接一个。”
根据 Azul 的 Ritter 所说,LTS 是关键所在。他说:“许多用户更青睐稳定性而不是不断的演进,这就是为什么 LTS 版本是企业部署的最常见选择。”“作为一个 LTS 版本,JDK 21 的采用率将会很高,特别是考虑到包括虚拟线程在内。然而,大多数用户可能会等待 6-12 个月才会在生产环境中部署,以允许新功能在至少两个更新周期内得到充分稳定。”
Ritter 指出,作为 LTS 版本仅适用于 OpenJDK 的二进制分发;那些部署到企业关键任务环境中的人通常会选择 LTS 版本,因为他们知道他们可以持续获得长时间的维护和支持。
然而,“就新功能而言,虚拟线程可以为开发人员提供显著的可扩展性改进,这些开发人员正在开发使用非常常见的每请求线程编程模型的应用程序,这涵盖了许多服务器样式的应用程序。” Ritter 告诉 The New Stack 。“其他值得注意的增强功能包括用于开关的模式匹配和记录模式都成为了完整功能,而不再是预览功能。再加上包括字符串模板,这表明 Java 平台在保持卓越的向后兼容性的同时,不断提高开发人员的生产力。”
虚拟线程是轻量级线程,极大地减少了编写、维护和观察高吞吐量并发应用程序的工作量。字符串模板补充了 Java 现有的字符串文字和文本块,通过将字面文本与嵌入的表达式和模板处理器耦合在一起,以生成专门的结果。该功能的一个目标是通过简化在运行时计算的值来表达字符串,从而简化 Java 程序的编写。
用于开关的模式匹配功能旨在增强 Java 编程语言,为开关表达式和语句提供模式匹配。将模式匹配扩展到开关允许对表达式进行多个模式测试,每个模式都有一个特定的动作,从而可以简洁而安全地表达复杂的数据导向查询。
记录模式用于分解记录值。记录模式和类型模式可以嵌套,以实现强大、声明性和可组合的数据导航和处理形式。一个目标是扩展模式匹配,以表达更复杂、可组合的数据查询。
当 Java 21 可用时,Azul 将发布一个完全兼容的分发版本 Azul Zulu,供所有人免费使用。
Ritter 说:“我们还有许多其他功能,可以最大程度地提高所有 Java 用户的性能,即使那些仍然期待 Java 21 的用户也是如此。”