写点什么

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

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

关注

评论

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

更快内存、更大缓存,第五代英特尔至强可扩展处理器为多元工作负载提供出色性能

E科讯

软件测试/测试开发/人工智能丨机器学习特征,离散特征和连续特征

测试人

人工智能 软件测试

展位火爆!TDengine 受邀参加EDT2023中国能源化工数字科技峰会

TDengine

tdengine 时序数据库

Amazon CodeWhisperer 在 vscode 的应用

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

本周六下午【 TiDB 社区交流活动 上海站】 数据库运维有话聊,谈谈你了解的灾备实践,参会即可获得社区周边 3 件套

TiDB 社区干货传送门

#数据库

集成开发环境(IDE)的用途?

小魏写代码

聊聊kube-scheduler如何完成调度和调整调度权重

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

社招邀请|阿里云热招岗位简历投递中!

阿里云CloudImagine

云计算

腾讯捐赠编译器基础软件,为中国开发者“添了双筷子”

腾讯云大数据

大数据

4种Python中基于字段的不使用元类的ORM实现方法

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟

交大安泰行研五周年,“第六届中国行业发展高峰论坛”成功举行

科技热闻

你的JoinHint为什么不生效

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

NFTScan | 12.11~12.17 NFT 市场热点汇总

NFT Research

NFT NFT\ NFTScan nft工具

外贸各个大洲客户的特点

九凌网络

前端框架如何帮助开发者构建应用程序?

互联网工科生

软件开发 前端框架 应用开发 JNPF

变革自然语言处理的新型大模型架构

百度开发者中心

nlp 大模型

软件测试/测试开发/人工智能丨GraphWalker自动化测试用例生成

测试人

人工智能 软件测试

突破!金淑杰成功研发中空纤维纳滤膜技术,助力全民健康饮水!

科技热闻

大型媒体网站霸占86.1% Google首位排名:普通网站如何突围?

九凌网络

基于Stable Diffusion的智能绘画大模型

百度开发者中心

人工智能 大模型

TDengine 签约中船九院,助力航运业智能化转型升级

TDengine

tdengine 时序数据库 国产时序数据库

用友出席操作系统大会,携手麒麟软件深度服务企业数智化

用友BIP

Curve 文件系统为 AI 业务降本增效

OpenCurve

云计算 大数据 AI 分布式 文件存储

多家公司荣获Autodesk Design & Make大中华区杰出贡献奖

E科讯

5个免费、跨平台的SQLite数据库可视化工具

不在线第一只蜗牛

sqlite sql 开源 数据可视化

文心大模型助力企业级NLP模型快速定制

百度开发者中心

人工智能 nlp 文心大模型

制造业进项税额转出全场景数智化管理

用友BIP

Google SEO服务的常见坑人套路

九凌网络

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