RingoJS翻译官网之RingoJS简介
RingoJS翻译官网之RingoJS简介
山林之野 发表于2个月前
RingoJS翻译官网之RingoJS简介
  • 发表于 2个月前
  • 阅读 350
  • 收藏 2
  • 点赞 1
  • 评论 0

输入图片说明

多线程的运行在Java虚拟机(JVM)上的JavaScript

Ringo 是一个构建在Java虚拟机上的Javascript平台,设计用于服务端应用的编写。它允许多样化的编程风格,比如I/O部分。RingoJS具有大量的内置模块,并且遵循CommonJS标准。

可以直接把Java类引用到RingoJS中

它可以直接的使用任何Java的标准类(JDK里面的所有类),或者是你自己写的类,放在它的类路径中(后面的翻译将会介绍),就可以直接使用。给人感觉,与Java的无缝连接。这使得RingoJS可以很容易的把现有的Java环境,或者是现有的Java代码拿过来用。而不需要繁琐的研究各种转化方法。

RingoJS 是一个JavaScript平台

JavaScript的ECMA规范这样描述JavaScript:“an object-oriented programming language for performing computations and manipulating computational objects within a host environment”。每个用JavaScript编写的引用都需要一个宿主环境来运行,这个宿主环境中,提供必要的类的Api。RingoJS呢,就提供了这样的环境,而且还内置了大量的模块,让程序编写变得更加容易。作为“通用编程语言”的体系,JavaScript可用于解决广泛的问题,而RingoJS强化了这种解决问题的能力。使用RingoJS,可以很方便的写出命令行工具,以及复杂的Web应用,甚至是使用JavaUI技术的图形化界面的应用。

与Javascript不同的是,RingoJS没有自己的引擎。它用的是完全以Java实现的JavaScript——Mozilla Rhino。Mozilla Rhino最初在NetScape的时期就出现了,一直保留到现在。其基本思想是,把Javascript项目编译成为Java字节码,然后在Java虚拟机上面运行。Mozilla Rhino,也提供了使用Java标准类库和任何自定义Java类的方法。这使得Mozilla Rhino很方便的把现有的Java类库放到JavaScript应用中使用。例如:RingoJS打包好Java的I/O类,直接放在Javascript中使用。

RingoJS在服务器或者一个专门的机器上执行Javascript,不是在WEB浏览器环境中。这是与Html上的Javascript的主要不同之处。它是基于CommonJS模块的。如果你懂得Node.js的模块,那么你也就懂得如何用RingoJS写一个模块。模块,就是封装了Javascript方法和变量,使得能独立于其他模块一种技术。

多线程的JavaScript

典型的命令行应用或者是Web应用不需要用到多线程。 那种一般的Javascript用的是事件循环,实现多线程的效果。而RingoJS直接借助JVM让Javascript并行运行。为了使各个线程独立,每个运行的模块或者项目都被打包在一个Worker中。Worker是项目执行的上下文环境,而且拥有自己的模块和数据。这样使得各个Worker能相互独立,并且还支持典型多线程的协作修改数据功能。RingoJS的Worker有借鉴W3C的Web Worker APIs,使用异步消息来相互进行通讯。也包括,每个Ringo Worker 都保证运行在一个单线程中,也就意味着线程只在代码执行的过程中存在。每个Worker通过构造器以及原型来实现数据的共享。实际上,这个全局对象扮演着一个只读的角色。

谁在支持RingoJS

Ringo是被很多人一起编写的,是在大约2010由Hannes Wallnöfer发起的。目前,还可以在队伍成员列表(https://github.com/orgs/ringo/people)中看到那些程序员。澳大利亚广播公司ORF是RingoJS的一个大用户。

标签: RingoJS
共有 人打赏支持
粉丝 3
博文 6
码字总数 4027
×
山林之野
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: