17611538698
webmaster@21cto.com

JDK 19 发布后是 Jakarta EE 10,但它是下一个COBOL 吗?

编程语言 0 1009 2022-09-27 09:07:14

图片

上周是 Java 的重要一周。

9月22日,Eclipse 基金会最新发布了Jakarta EE 10。这个平台的前身曾被鼓吹多年,当初被称为 Java EE(Java 企业版)。

要知道,前几天 JDK 19 才刚刚发布,尽管这两者没有直接联系。Jakarta EE 10 仅需要 Java SE 11 以上版本,它还继续支持着 Java SE 17,后者是一款被长期支持的主版本。

2020 年 12 月,Jakarta EE 9 正式接替了JavaEE。至此它几乎完全专注于将 javax.* 包的命名空间更改为 Jakarta.* ,这是一件繁琐并且具有破坏性的任务。但这些又是必要的,因为当Oracle在 2019 年向 Eclipse 基金会捐赠 Java EE时,这家软件巨头保留了对 Java 品牌名称和商标的控制权。

2021 年 5 月发布 Jakarta EE 9.1,它首次支持 Java SE 11。但是从正实的名义来说,Jakarta EE 10 是自 Oracle 捐赠以来的第一个主版本。

Eclipse 的负责人 Mike Milinkovich 这样说道:与其说是技术上的增益,不如说这是基金会与社区合作的第一个主要版本。他认为,这将重振“2017 年奄奄一息的JavaEE生态系统”。

Jakarta EE 工作组的成员数量增加了,包括上个月加入的微软公司,还有一些被认证为 Jakarta EE 兼容的应用程序数量也在持续增加中。

“我们改变了命名空间造成了根本性的改变,这使整个生态系统改变其产品代码,”他说。“这是一个很大的赌注。” 尽管说这是赌注,不如说是强加给Java社区的事。“我们已经看到 Jetty、Tomcat 和 Spring 都在致力迁移到 Jakarta 的命名空间” 。

Jakarta EE 10 的增强包括 Java 安全性,它带来了 OpenID Connect,并且对 CDI [上下文和依赖注入] 进行现代化改造,并拥有一个专注于构建时扩展的 CDI Lite,此为启用新核心配置文件的关键部分。此外Core Profile 是 Jakarta EE 的一个子集,针对为微服务设计的小型轻量级运行时。

在一项针对 1400 多名Jakarta 开发人员的在线调查中,如何更好地支持微服务是第二大优先事项,而第一个是与 Kubernetes 的原生集成。

前几天发布的 JDK 19,它并不是 LTS 版本,仅支持到 2023 年 3 月份。

JDK 现在每年 3 月和 9 月发布,每两年发布一次新的 LTS 版本,下一个 LTS 计划在 2023 年 9 月称为JDK 21,该发行说明中有很多新功能,包括记录模式、用于本地代码的新 API,称为 Foreign Function and Memory(也称为 Project Panama)、虚拟线程和结构化并发(也称为 Project Loom)、性能- 优化的 Vector API,以及 Switch 语句中的模式匹配。然而,所有这些功能都处于某种程度的预览或孵化状态,似乎对企业使用没有吸引力。

“从技术上讲,它没有新功能,”Azul 副首席技术官 Simon Ritter 在接受国外技术媒体DevClass 采访时说。“我们有预览功能和孵化器模块的想法,我们将东西添加到 Java 平台,希望有机会试用它们,但不想让它很快就定型。”

Project Loom 功能已经四年多了,为什么要花这么长时间才能实施?“这是引入 JVM 的一大功能,”Ritter 说。“调度程序和扩展,开发者们都需要花时间适应。”

图片

Agile Developer, Inc 的创始人 Venkat Subramaniam 博士说:“这个版本几乎涉及库中每个函数的变化,一个对任何涉及线程的函数都有影响和变化......我认为这对他们来说要谨慎对待这个预览版。如果它没经过两次以上的预览,我真的感到惊讶。”

类似的还有 Project Panama,它是 JDK 19 的另一个重要特性,它替代了承诺更易于使用的 JNI(Java 本地接口)。

虽然这些新的特性很受欢迎,但缓慢的变化是否意味着 Java 正变得越来越可靠,而不再是尖端语言?

“Java 是新的 COBOL 吗?不,我并不这么认为,”Ritter说。Subramaniam 博士回应道:“Java 不仅仅是语言。我无法想象 Java 没有 JVM 会一样蓬勃发展。”

Ritter 又说,“当James Gosling (Java之父)谈到这个编程语言时,他总是说 Java 是一种蓝领语言,就是关于完成工作。” 

尽管 Java 在尖端功能方面落后于其它编程语言,但企业级开发人员不会对这种“稳定”特征感到不满。

编辑:校长 (参考:2z8.cn/FYnR2)

评论