写点什么

Jim Laskey 提议将 Nashorn 作为 OpenJDK 的 JavaScript 引擎

  • 2013-01-09
  • 本文字数:1042 字

    阅读完需:约 3 分钟

近日,Oracle 的多语言领导 Jim Laskey 提议将一个新的基于 JVM 的 JavaScript 实现 Nashorn 作为 OpenJDK 项目。Nashorn 是 Rhino 的后继,而 Rhino 则是目前的 JVM JavaScript 实现,它起始于 1997 年的 Netscape,并且经过一些细微的修改后随 2006 年 12 月的 Java SE 6 一同发布。Nashorn 则计划随 Java 8 一同发布并作为其一部分而存在。

Laskey 在其 OpenJDK 的项目提案中说到“Nashorn 的目标是在原生 JVM 上提供一个轻量级、高性能的 JavaScript”:

该项目的范围包括但不限于一个解析器 API(扫描 JavaScript 源代码)、一个编译器(将解析器中的抽象语法树 AST 转换为 JVM 字节码)及一个运行时(支持上述生成的字节码的执行)。该环境中 JavaScript 的执行将与 ECMA-262 5.1 一致,并且会随着标准的不断演进而适应于新的指南。

虽然使用了与 Rhino 相关的名字,但 Nashorn(德语的 rhinoceros)却是个全新的代码基,充分利用了 Java 7 的 InvokeDynamic 字节码指令。其实现要比 Rhino 小且快,这使得它更加适合于运行在嵌入式 / 移动设备上;比如说,它既能运行在 Beagle Board 上,也能运行在 Raspberry Pi 上。

Laskey 在去年 9 月的 JavaOne 上说到,团队正在研究其他 JavaScript 实现的性能,因此其性能应该能与现代浏览器一较高下。此外,Twitter 的 Sam Pullara 还介绍了他是如何使用 Nashorn 来渲染 Mustache.js 模板的。

一切都正常,我根本没有遇到过 Nashorn 的正确性问题。在性能方面,对于大多数颇具挑战的测试,Nashorn 要比 Rhino 快 20 多倍。

此外,NetBeans 团队已经在 Nashorn 基础之上完全重写了其 JavaScript 实现。对于有大量 JavaScript 文件需要扫描的项目来说,变化的结果就是 IDE 启动时间的大幅降低。

除了与 Rhino 相比性能上的提升外,Nashorn 相对于其他 JavaScript 实现来说的一个优势在于它可以访问众多的 Java 库,包括客户端的 JavaFX 及服务端的 JSP。为了支持这种交互,Nashorn 使用了 Dynalink ——基于 Apache 许可的开源元对象协议,构建在 InvokeDynamic 之上,由 Attila Szegedi 开发,他从 Twitter 加入了 Oracle。Dynalink 提供了一套约定以在程序执行环境中指定更高层次的对象操作,对于普通的 Java 对象它提供了一个链接器。

现在 Nashorn 提案已经有了一个专门的博客。当Nashorn 能够100% 兼容于ECMA-262 时,OpenJDK 项目的工作将会专注在性能以及通用性上。潜在的OpenJDK 合作者包括Twitter、IBM 与Red Hat。

查看英文原文: Nashorn Proposed as Replacement JavaScript Engine for OpenJDK

2013-01-09 02:181789
用户头像

发布了 88 篇内容, 共 273.5 次阅读, 收获喜欢 9 次。

关注

评论

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

零信任身份安全的基本原则

芯盾时代

iam 零信任

AI代码审查工具全景解析:2025年测试开发工程师必掌握的七大神器

测试人

人工智能 软件测试

MES系统:制造业智能化管理与流程优化的关键

万界星空科技

制造业 生产管理系统 mes 万界星空科技 智能智造

培训计划丨Altair 三月培训及网络研讨会计划

Altair RapidMiner

汽车 仿真 hyperworks 结构仿真 FEKO

实用内容看这里-投资银行使用堡垒机的情形分析

行云管家

网络安全 金融 等保 堡垒机

基于three.js的虚拟人阴影渲染优化方案

vivo互联网技术

前端 three.js 虚拟人 web3 web3d

鸿蒙原生绘图API:从基础到高阶的绘制之旅(基础版)

莓创技术

创新实践分享:基于边缘智能+扣子的智能取物机器人解决方案

火山引擎开发者社区

在原生鸿蒙上开发一款绘画动画软件,然后制作动画短视频,发到 B 站会火?

莓创技术

观测云产品更新 | 异常追踪、AI错误分析、云账号管理等优化

观测云

产品迭代

埋点系统效果不佳?ClkLog带你看关键细节

ClkLog

开源 数据分析 埋点 用户行为分析 画像

如何通过字符串实现大数字的求和

伤感汤姆布利柏

鸿蒙原生绘图API:从基础到高阶的绘制之旅(进阶版)

莓创技术

三维/3D模型如何快速查看、旋转、剖切、爆炸等?

在路上

cad cad看图 CAD看图王

合合信息启信慧眼发布《国央企风控合规案例白皮书》,揭秘国央企风控升级路径

合合技术团队

人工智能 算法 #大数据

CrossOver 25 重磅更新!全面升级,畅玩Mac热门游戏!

阿拉灯神丁

Mac软件 CrossOver Mac下载 Mac游戏推荐 CrossOver 24

从 DeepSeek 看出25年前端趋势

秃头小帅oi

黑龙江互联网企业进行二级等保测评流程:

黑龙江陆陆信息测评部

CAD图纸如何转换格式或版本?dwg和dxf图纸如何互转?

在路上

cad cad看图 CAD看图软件 CAD看图王

生产管理系统(源码+讲解+演示)

深圳亥时科技

WebGL的3D展示软件的开发流程

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

用扣子快速复刻 Genspark 聚合搜索功能

火山引擎开发者社区

太香了!Spring 官宣接入 DeepSeek

秃头小帅oi

WebGL开发3D软件的成本

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

LLM增强语义嵌入的模型算法综述

百度Geek说

自然语言处理 结构型模式 合成数据 #大语言模型

NocoBase 本周更新汇总:双因素身份认证(2FA)

NocoBase

开源 低代码 身份认证 无代码 版本更新

字节跳动员工玩转 AI 的 100 种办法

火山引擎开发者社区

巡检任务管理系统(源码+文档+讲解+演示)

深圳亥时科技

Jim Laskey提议将Nashorn作为OpenJDK的JavaScript引擎_Java_Charles Humble_InfoQ精选文章