NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

小白也能看懂的Java内存模型

程序猿阿星

JMM Java内存模型 原子性 有序性 可见性;

WorkPlus房地产行业数字化解决方案—富力地产

WorkPlus

开源 远程办公 即时通讯 IM

如何利用云原生技术构建现代化应用

阿里巴巴中间件

云计算 阿里云 云原生 中间件

10年阿里开发架构师经验分享:掌握这个提升路径

欢喜学安卓

android 程序员 面试 移动开发

通过Linux实现更好的即时通讯传递

WorkPlus

阅读

Hive 原理实践

云祁

大数据 hive 7月日更

面向编程式多云管理服务时代的华为云MCP多云跨云的容器治理与实践

华为云开发者联盟

容器 云原生 华为云 多云 跨云

对象存储手把手教二 | Bucket 跨区域容灾和用户数据复制

QingStor分布式存储

云原生 对象存储 分布式存储 云存储

一个完整的项目管理流程包括什么?

万事ONES

项目管理 ONES

永续合约交易所搭建,合约平台开发

用户体验

Ryan Zheng

Go 学习笔记之 Slice

架构精进之路

7月日更

Hive窗口函数保姆级教程

五分钟学大数据

hive 7月日更

多项目同时进行如何做好项目管理?

万事ONES

WorkPlus高端制造行业数字化解决方案—华晨宝马

WorkPlus

开源 即时通讯 IM 案例分享 汽车

图像直方图反向投影,Python OpenCV 取经之旅第 28 天

梦想橡皮擦

7月日更

bzz分币挖矿系统开发需求

获客I3O6O643Z97

区块链+ BZZ节点矿池 BZZ节点挖矿

WICC 2021召开在即 清华大学教授将分享AI+网络音视频服务研究

融云 RongCloud

2021Android面经:算法题+JVM+自定义View

欢喜学安卓

android 程序员 面试 移动开发

GIS可视化框架:更便捷的地图数据可视化工具

鲸品堂

GIS 可视化 应用场景

FIL矿机多少钱一台 ?FIL挖矿成本是多少?

用中国话学this指向(旧知识新讲)

加百利

JavaScript 大前端 this 7月日更

CODING 带你看腾讯新闻 7 日 DevOps 实践

CODING DevOps

DevOps CODING 腾讯新闻

2021 - iOS开发面试 【字节·百度】 上海区面经与侧重点分享

iOSer

ios 百度 面试 字节 iOS 知识体系

2021世界人工智能大会开幕 百度飞桨荣获“SAIL之星”奖项

百度大脑

人工智能 飞桨

手写链表之LinkedList源码分析

Ayue、

数据结构

互斥锁Mutex:鸿蒙轻内核中处理临界资源独占的“法官”

华为云开发者联盟

鸿蒙 OpenHarmony 鸿蒙轻内核 互斥锁Mutex 临界资源

2021 WAIC | EMQ 映云科技:面向云原生的云边协同物联网解决方案

EMQ映云科技

云原生 云端 端边云协同架构 边云协同

一名老党员,申请入驻~

正儿八经的仙儿

Camtasia实用技巧之时间轴

淋雨

视频剪辑 录屏软件 Camtaisa

2021年度“CCF-百度松果基金” 百度携手CCF为AI科研提供资金支持

百度大脑

人工智能 百度 松果基金

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