BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Abhay Bakshi 关注 0 他的粉丝 ,译者 臧秀涛 关注 4 他的粉丝 发布于 2013年1月19日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT