RingoJS翻译官网之RingoJS简介

输入图片说明

多线程的运行在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的一个大用户。

转载于:https://my.oschina.net/charmingBoy/blog/1362845

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值