写点什么

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:247929
用户头像

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

关注

评论

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

WorkPlus开启高效沟通新时代,领先的IM工具之选

BeeWorks

解密三维CAD选择难题,谁是企业研发设计的「最佳拍档」?

ToB行业头条

【第七在线】智能商品计划:重塑服装行业的供应链管理

第七在线

山寨币发展的崛起:随着比特币 ETF 重新定义市场动态,山寨币激增

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

ClickHouse分析效率翻倍提升,揭秘奇点云对归因分析场景的优化实践

奇点云

奇点云 clickhosue DataKun

Atlassian为Jira、Confluence引入AI新功能,进一步释放团队潜能

龙智—DevSecOps解决方案

AI Atlassian

演讲回顾 | 清晖资深讲师分析敏捷实践的最新趋势,帮助大型企业落地敏捷开发

龙智—DevSecOps解决方案

敏捷 Atlassian

如何降低微服务复杂度丨云栖大会微服务主题分享实录

阿里巴巴云原生

阿里云 微服务 云原生

构建端到端可观测全景丨云栖大会可观测分享实录

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生

测试开发高薪私教线下班手把手带你提升职业技能

霍格沃兹测试开发学社

中国信通院筹备启动“边缘算力网络推进计划”,招募首批成员单位

信通院IOMM数字化转型团队

边缘计算 边缘算力网络

低代码开发视角下的大模型时代:探索“新思维”技术管理

不在线第一只蜗牛

人工智能 低代码 大模型 AI模型

独立站的客户支持体系:提高客户满意度的秘密武器

技术冰糖葫芦

API

WorkPlus打造高效协作的即时通讯工具,提升工作效率

BeeWorks

C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析

小万哥

C# 程序人生 编程语言 软件工程 后端开发

如何快速上手Visio?从入门到精通 | Visio替代软件,建议收藏!

彭宏豪95

效率工具 在线白板 架构图 绘图软件 Visio

链路传播(Propagate)机制及使用场景

观测云

APM 链路

一起畅玩!幻兽帕鲁服务器华为云搭建教程(Windows平台)

YG科技

🛠 Open Source Instant Messaging (IM) Project OpenIM Source Code

Geek_1ef48b

一站式解决对接问题,让企业管理更轻松!

聚道云软件连接器

案例分享

追求成长还是追求“高薪”?

老张

个人成长 能力提升

媒体声音|PolarDB再升级:欢迎来到云数据库 x AI新时代

阿里云瑶池数据库

人工智能 数据库 云计算 阿里云 云原生

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