打开网易新闻 查看精彩图片

曾经旨在成为Java和JavaScript之间桥梁的Detroit项目未能成功落地。现在,该项目正在重新启动,并计划添加Python引擎支持。

Detroit项目原本设计用于让JavaScript作为Java应用程序的扩展语言,但在2018年左右失去赞助团队后就停滞了。然而,根据2月25日发布的一份新提案,业界对于连接Java和JavaScript仍有浓厚兴趣。本周,这项提案在OpenJDK邮件列表中获得了广泛关注。

邮件列表参与者Sundararajan Athijegannathan表示愿意领导该项目,他写道:"现在也有兴趣从Java应用程序访问用Python编写的人工智能功能。"根据Athijegannathan的描述,除了将JavaScript扩展到Java应用程序外,还将实现从JavaScript应用程序访问Java库的功能。

Athijegannathan表示,已经重启了Detroit项目的原型开发,该原型涉及基于Chrome V8 JavaScript引擎开发javax.script包的本地实现。参与者们还基于CPython开发了Python脚本引擎的原型。Athijegannathan写道,使用广泛采用的JavaScript和Python实现,而非从头重新实现这些语言,确保了较低的长期维护成本以及与现有JavaScript和Python代码的兼容性。

他表示:"我们希望将这些原型转移到正式的OpenJDK项目中,以加速开发。我们预计将利用并推动外部函数和内存(FFM) API的边界,因此这项工作可能会影响Panama项目。"Panama项目致力于改善JVM与非Java API之间的连接。随着时间推移,该项目可能会考虑为其他编程语言实现脚本引擎。目前仅限OpenJDK成员进行投票,截止日期为3月11日。

Q&A

Q1:Detroit项目是什么?它的主要目标是什么?

A:Detroit项目是一个旨在连接Java和JavaScript的跨语言互操作项目,主要目标是让JavaScript作为Java应用程序的扩展语言,同时实现从JavaScript应用程序访问Java库的功能。

Q2:Detroit项目为什么会重新启动?

A:尽管Detroit项目在2018年左右因失去赞助团队而停滞,但业界对Java和JavaScript连接仍有兴趣,特别是现在还有从Java应用程序访问Python编写的人工智能功能的需求。

Q3:新的Detroit项目采用了什么技术方案?

A:项目采用基于Chrome V8 JavaScript引擎的javax.script包本地实现,以及基于CPython的Python脚本引擎原型。这种方案使用广泛采用的实现而非重新开发,确保了低维护成本和兼容性。