Oracle发布Project Detroit加速Java与JavaScript和Python互操作

Oracle发布Java 26短期版本并推出Project Detroit项目,承诺显著提升Java、JavaScript和Python之间的互操作性能。该项目将V8和CPython运行时直接嵌入JVM进程中,相比传统方案可获得更好的性能和安全模型。Oracle还将Project Helidon贡献给OpenJDK,推出Java验证组合服务包,重新引入JavaFX商业支持。

Oracle在JavaOne大会上发布了Java 26短期版本,并推出了Project Detroit项目,该项目承诺在Java、JavaScript和Python之间实现更快速的互操作性。

Java 26仅提供六个月的支持,直到今年晚些时候发布Java 27。下一个长期支持(LTS)Java版本预计将是2027年9月的Java 29。

Oracle软件开发副总裁Bernard Traversat在简报中表示,Java开发者长期以来一直有兴趣从Java调用JavaScript,随着AI的发展,还希望调用Python代码。虽然已有相关解决方案,但Java 22中引入的FFM(外部函数和内存)API作为比旧的JNI(Java原生接口)更集成、更易用的互操作方式,允许"非常薄的层来实现调用JavaScript,或从JavaScript回调Java"。

Oracle表示,Project Detroit将很快作为OpenJDK项目提出,并将在今天在加利福尼亚州红木城开幕的JavaOne活动上展示。初始支持的语言将是JavaScript和Python,其他语言将随后跟进。

对于Project Detroit如何改进现有解决方案(如通过WebAssembly提供与其他语言(包括JavaScript)互操作的GraalWasm),Traversat解释说:"我们采用的新颖方法是直接在JVM进程内嵌入V8和CPython运行时。过去我们有Project Nashorn项目,试图在JVM之上完整实现JavaScript,但挑战在于你总是在逆流而游,因为JavaScript的整个生态系统基本上都构建在V8或运行在V8上的Node.js之上。"

他补充说,JavaScript和Python语言"没有Java语言那样良好的规范",导致"许多边缘情况难以支持"。使用最流行的运行时可以消除这个问题。

Traversat表示:"我们获得了非常好的性能和更好的安全模型。我们可以清楚地隔离Java堆与V8堆或CPython堆上运行的内容。"

在JavaOne前夕,Oracle还有更多消息。开源微服务框架Project Helidon将贡献给OpenJDK,并将其版本与JDK版本对齐,使新JDK(Java开发工具包)功能能够立即使用,并与LTS版本保持一致。

该公司还推出了Java验证组合(JVP),描述为一套"经过支持和验证供企业使用的服务、库、框架、模块和工具"。JVP包括Project Helidon、JavaFX以及Visual Studio Code的Java平台扩展。据了解,由于对AI和分析应用中交互式可视化的兴趣,JavaFX这个富媒体和图形框架的商业支持已经重新推出。

另一个针对Java学习者的新功能是在VS Code Jupyter notebooks中支持Java。Java Playground在线学习平台也新增了与学生分享代码片段的功能。

AI无处不在,Oracle热衷于将Java定位为能够跟上时代步伐,引用了Helidon AI、用于将Java与大语言模型集成的Langchain4j、Spring AI以及用于编程AI智能体的Embabel框架等项目。

关于Oracle是否有关于AI生成代码贡献的政策,Traversat表示还没有。"我们正在努力希望能够制定明确的政策,规定什么是允许的,什么是不允许的...当然,我们希望能够利用AI。"

Java 26本身的新功能主要是增量更新或现有增强功能的预览版本,如模式和switch语句中的原始类型、Vector API和结构化并发。HTTP客户端API现在支持HTTP/3。

不过有一个值得注意的变化:Java applet API已被移除。"由于最新的JDK版本和当前的网络浏览器都不支持applets,所以它已经过时了,"JEP(Java增强提案)504指出。1995年Netscape创建命名混乱的JavaScript的原始理由之一就是为Java applets编写脚本。Java applets早已消失,但Project Detroit表明这两种语言之间的互操作需求依然存在。

Q&A

Q1:Project Detroit是什么?它有什么特点?

A:Project Detroit是Oracle推出的一个项目,旨在实现Java与JavaScript、Python之间更快速的互操作性。它的特点是直接在JVM进程内嵌入V8和CPython运行时,获得更好的性能和安全模型,能够清楚隔离不同语言的堆内存。

Q2:Java 26的支持时间有多长?下一个长期支持版本是什么时候?

A:Java 26是短期版本,仅提供六个月的支持,直到今年晚些时候Java 27发布。下一个长期支持(LTS)Java版本预计是2027年9月的Java 29。

Q3:Oracle在AI相关的Java项目方面有哪些布局?

A:Oracle引用了多个AI相关项目来展示Java的能力,包括Helidon AI、用于将Java与大语言模型集成的Langchain4j、Spring AI,以及用于编程AI智能体的Embabel框架。同时JavaFX的商业支持也因AI和分析应用中的交互式可视化需求而重新推出。

来源:The Register

0赞

好文章,需要你的鼓励

2026

03/18

11:44

分享

点赞

邮件订阅