HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Oracle 弃用 Nashorn JavaScript 引擎

  • 2018-06-17
  • 本文字数:1094 字

    阅读完需:约 4 分钟

Oracle 通过 JDK 增强提案(JEP)355 宣布弃用 Nashorn JavaScript 引擎,最终将从未来所有的 JDK 中删除。ECMAScript 的语言结构变化太快,Oracle 发现,维护 Nashorn JavaScript 引擎变得非常困难。

Nashorn 最初是在 JDK 8 中引入的,用于取代 Rhino 脚本引擎。当其发布时,Nashorn 是 ECMAScript-262 5.1 的完整实现,增强了 Java 和 JavaScript 的兼容性。最近还增加了新的 ECMAScript 6(ES6)特性。借助 Nashorn,开发人员可以从 JavaScript 调用 Java 代码,也可以从 Java 代码调用 JavaScript 函数。Nashorn 可以作为 Java 应用程序的嵌入式解释器,提供使用 Nashorn 命令行工具 jjs 从命令行运行 JavaScript 的能力。当在 Java 中对 JavaScript 代码求值时,Nashorn 实现了javax.script API。Oracle 表示,弃用 Nashorn 不会影响javax.script API。

移除 Nashorn 后,有些应用程序可能会因为需要 JavaScript 而无法运行。

具体要弃用的模块如下:

  • jdk.scripting.nashorn——包含jdk.nashorn.api.scriptingjdk.nashorn.api.tree包;
  • jdk.scripting.nashorn.shell——包含jjs工具;
  • jdk.dynalink——包含 Dynalink 支持库。

Oracle 实验室高级研究总监 Thomas Wuerthinger 表示, GraalVM 是一个不错的替代方案,与 Nashorn 相比,它的性能更好,与 ECMAScript 的兼容性也更好。虽然 GraalVM 现在还没有生产就绪,但 Wuerthinger 向开发者社区保证,在 Nashorn 真正弃用之前,基于 GraalVM 的 JavaScript 实现将在所有相关平台上实现生产就绪。

在 Nashorn 真正弃用之前,基于#GraalVM 的 JavaScript 实现将在所有相关平台上实现生产就绪。它将提供更好的性能,并且完全兼容 ECMAScript 的最新标准。

— Thomas Wuerthinger (@thomaswue) 2018 年 6 月 7 日

真正要在将来的 JDK 版本中删除相关的类型和模块,Oracle 会提交一份单独的 JEP。

开发社区的总体反应是担忧,尤其是那些在业务逻辑中大量使用了 Nashorn 的。Oracle 听上去愿意撤回 JEP 335,如果有足够的开发人员反馈的话。

还有一种选择是有一组可信赖的开发人员清楚表达今后维护 Nashorn 的愿望。如果那种情况在这份 JEP 完善之前出现,那么它还是可以撤回的。如果那是在这份 JEP 完善之后,但是在 Nashorn 被移除之前,则可以再提交一份 JEP 来逆转这次弃用。

按照 Oracle 的说法,Nashorn 的使用情况很难跟踪,因此,有任何回退都会及时发布通知,而不管 JEP 335 是否通过。使用 Nashorn 的开发人员应该向 Oracle 提供反馈,以便他们可以更好地了解 Nashorn 的使用情况。

感兴趣的读者可以通过 InfoQ Java 首页时刻关注所有 Java 相关的新闻。

查看英文原文: Oracle Deprecates the Nashorn JavaScript Engine

2018-06-17 11:247360
用户头像

发布了 1008 篇内容, 共 389.8 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

第四周作业

腾志文(清样)

说说JS中的new操作到底做了些什么?

Geek_qw7y4m

Java 大前端

典型的大型互联网应用系统使用了哪些技术方案和手段之个人见解和总结

潜默闻雨

第四周总结

大雄

大型互联网应用系统使用了哪些技术方案和手段

刘志刚

架构师训练营第四周学习总结

whiter

极客大学架构师训练营

第四周总结

腾志文(清样)

作业

redis设计与实现(1)redis数据结构

程序员老王

redis

架构师训练营第四周总结

架构师 极客大学架构师训练营

猿灯塔:Java程序员月薪三万,需要技术达到什么水平?

猿灯塔

Java

架构师训练营Week4学习总结

Frank Zeng

架构师训练营 第四周 系统架构作业

且听且吟

极客大学架构师训练营

未来已至,唯有拥抱变化才能生存

董一凡

生活,随想

架构师训练营第四周总结

王鑫龙

极客大学架构师训练营

第四周作业

陈迪豪:推荐系统大规模特征工程与Spark基于LLVM优化

天枢数智运营

人工智能 第四范式 天枢

浅谈大型网站技术应用及适用场景

Jerry Tse

架构 网站架构 极客大学架构师训练营 作业

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

任小龙

第四周作业

大雄

架构师训练营第四周总结

王铭铭

发力数字化“新基建”,株洲市商务和粮食局携手慧策举办企业专场培训会

InfoQ_21c8aba5317f

游戏夜读 | 在游戏中打败人类

game1night

架构师训练营Week4

Frank Zeng

第四周学习总结

架构师 极客大学架构师训练营

互联网运用那些技术手段解决什么问题?

师哥

聊聊架构演化

Jerry Tse

架构 极客大学架构师训练营 作业

架构师训练营第四周作业

王铭铭

week4作业一

任鑫

架构

架构师训练营第四周命题作业

whiter

极客大学架构师训练营

架构师训练营第四周命题作业

hifly

分层架构 极客大学架构师训练营 技术方案

不会用这个远控工具 怎么好意思说你会远程运维?

InfoQ_21c8aba5317f

远控工具

Oracle弃用Nashorn JavaScript引擎_Java_Kesha Williams_InfoQ精选文章