17611538698
info@21cto.com

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

作者 场长 分类 编程语言 09月27日

图片

上周是 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)

评论