【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

Nashorn 获投票通过,成为 OpenJDK 项目中 Rhino 的后继

  • 2013-01-18
  • 本文字数:1163 字

    阅读完需:约 4 分钟

Oracle 的 Nashorn 项目是一种新的基于 JVM 的 JavaScript 实现,经过目前 OpenJDK成员的投票,该项目成为当前JVM JavaScript 实现Rhino 的后继。Nashorn 定于在2013 末与Java 8 一同发布。它既支持将JavaScript 嵌入到Java 应用程序中,也支持开发独立的JavaScript 应用。

InfoQ 曾于 2012 年 11 月报道过 John Coomes(OpenJDK HotSpot 开发组的领导者)的用 Nashorn 替换 Rhino 的提议。后来在去年12 月,据 Nashorn 官方博客介绍,这一由 Jim Laskey 领导的项目已经进入 OpenJDK 之中。官方博客上最新的一篇文章提到,开发者已经可以浏览该项目的源代码,还可以构建并把玩其代码库。Nashorn 项目团队计划进行更多的集成工作。

Nashorn 是 Oracle 在 2011 年夏季的 JVM Language Summit 上宣布的,其目标是提升 JVM 作为多语言平台的实用性。JSR-292 已经包含在 2011 年的 Java 7 中,主要关注的就是动态语言的需求。 InfoQ 早在 2011 年初就做过全面的报道,有的方法具有 Java 之外的语言所定义的链接和分派语义,JSR-292 添加了 invokedynamic 指令,以便 Java 字节码能够调用这样的方法。JVM 上很多现有的动态语言都使用 invokedynamic 升级了其实现。关于 Nashorn 和 JSR-292 的关系,Jim Laskey 在他的题为“Adventures in JSR-292 or How To Be a Duck Without Really Trying”的视频中有很好的介绍。

让JavaScript 运行在JVM 上,主要优点是可以访问大量既有的Java 库。在Nashorn 的博客上,Jim 通过一个例子演示了Nashorn 与Twitter4J 和JavaFX 等Java 库的无缝集成。互操作是通过 Dynalink 库处理的,该库提供了一组协议约定来指定一个程序执行环境中对象上的高层操作,还提供了一个针对纯 Java 对象的链接器。

通过 Twitter4J 和 JavaFX 的例子,Jim Laskey 提到:

也请注意,Nashorn 可以魔法般地处理一般的 FXCollections 类。最后,通过调用 observableArrayList(dates),Nashorn 会自动将 JavaScript 数组 dates 转换为一个 Java 集合。真的很难区分哪个对象是 JavaScript 的,哪个是 Java 的。

在 JavaOne 2012 大会上,大家向 Nashorn 项目团队提了很多问题,主要是关于 Nashorn 和 Node.jar 的。Node.jar 是一种服务端 JavaScript 框架,混合了事件模型、Node.js API、Nashorn 的特性以及 GlassFish 中的 Grizzly(用于支持异步网络 I/O),支持开发者通过 Java SE 和 Java EE 运行 Node 应用程序。根据与会人员的反应,Nashorn 团队的 Jim Laskey 等人认为目前 Nashorn + Node.jar 组合的方式引起了开发者社区浓厚的兴趣。

通过 JavaOne 兴趣小组(Birds-of-a-Feather)的 BOF 多媒体课程(该课程是由 JavaOne 2012 网站托管的),你可能实际上就等于见到 Oracle 的 Nashorn JavaScript 团队了。

查看英文原文 Nashorn Voted In as a Successor to Rhino in the OpenJDK Project

2013-01-18 04:251457
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 126.6 次阅读, 收获喜欢 33 次。

关注

评论

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

鲲鹏云开发者分论坛:发挥鲲鹏的潜力,加速云上创新

科技热闻

自己实现一个大文件切片上传+断点续传

转转技术团队

JavaScript 前端 文件上传

GCC 为龙芯 CPU的预定义宏

swordholder

c++ RocksDB GCC 龙芯

数据库每日一题---第15天:未消费的顾客

知心宝贝

数据库 程序员 前端 后端 6月月更

在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理

SphereEx

MySQL 数据库 rust

图搜的应用场景

Geek_e369a5

图像检测 图像搜索 图搜的应用场景

JMeter集成底座项目压测心得

agileai

压力测试 集成底座 企业服务总线 统一身份管理平台 主数据管理平台

HTTP接口性能测试中池化实践

FunTester

InfoQ 极客传媒 15 周年庆征文| 聊聊 Go 语言与云原生技术

宇宙之一粟

云原生 6月月更 InfoQ极客传媒15周年庆

挑战最全 Apache Doris 学习资料,你想要的都在这里了!

SelectDB

数据库 Doris apache doris 技术干货

力扣每日一练之二维数组下篇Day5

京与旧铺

6月月更

科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象

科创人

低代码如何“拯救”企业?

优秀

低代码 企业管理

一文带你认识CSS

未见花闻

6月月更

如何通过事件可视化分析?

清林情报分析师

数据分析 事件分析 可视化分析 时间分析

音视频处理三剑客之 ANS:噪声产生原因及噪声抑制原理解析

ZEGO即构

音视频课程 噪声抑制 ANS

从市场需求目标看数据分析演进方向

华为云开发者联盟

人工智能 华为云

GetxController 生命周期详解

岛上码农

flutter ios 前端 安卓 6月月更

一起认识下浏览器的5种观察器

转转技术团队

JavaScript 前端 浏览器

Vue3 响应性原理

转转技术团队

JavaScript Vue 前端

Open the World:第七届中国开源年会(COSCon'22)正式启动~

开源社

第七届中国开源年会 COSCon'22

智慧园区效果不满意?请收下ThingJS这份秘籍

ThingJS数字孪生引擎

智慧园区 数字孪生

级联层与层叠上下文了解下?

转转技术团队

CSS JavaScript 前端

AntDB数据库与强网科技完成产品互认证,积极探索办公自动化领域

亚信AntDB数据库

dp练习

秋名山码民

6月月更

如何编写一份简单易用的在线产品手册

小炮

产品宣传手册 产品说明手册

python程序设计思想

左手の明天

Python 面向对象

2022年中国Robotaxi行业发展洞察

易观分析

智能汽车

vue生命周期

小恺

6月月更

2022-06微软漏洞通告

火绒安全

微软 漏洞 安全漏洞

python逆序输出和进制转化(小白也能看懂)

写代码两年半

Python 6月月更

  • 扫码加入 InfoQ 开发者交流群
Nashorn获投票通过,成为OpenJDK项目中Rhino的后继_Java_Abhay Bakshi_InfoQ精选文章