是否有任何port.js平台的端口或替代实现与V8以外的JavaScript引擎?

时间:2013-01-07 00:34:55

标签: javascript node.js platform serverside-javascript javascript-engine

node.js 是基于Google V8 JavaScript引擎的开源服务器端JavaScript 平台。它已经在几年内迅速普及和重要。

现在node.js只是一个平台。实质上,使用的JavaScript引擎只是一个实现细节,任何JS引擎都可以使用,甚至可以使用抽象来处理各种JS引擎。

Joyent可能选择了V8,因为它是开源的,拥有有利的许可条款,并且通常是最快的JS引擎(但我相信它有时会被其他引擎取代)。

鉴于拥有许多可能被称为“开放标准”的不同但兼容的实现,例如JS引擎,Web浏览器,编程语言编译器等,这是一件好事;当然,拥有像node.js

这样的服务器端平台的多个实现也是一件好事

例如,有几乎所有操作系统和硬件都可以运行的JavaScript引擎,但V8仅适用于其中几个。事实证明,微软正在推广用于Windows Azure的node.js,即使它依赖于主要竞争对手的工作,即使他们拥有自己的JS引擎,可以与V8竞争速度。

如果任何此类端口已经开始,我将非常有兴趣跟踪他们的进度,以监控node.js是否可能成为开放标准。


•我意识到节点并不像JS和浏览器那样标准化,并且它的发展非常迅速,但这从未阻止任何人搔痒。 •如果有多个端口,我不会询问您认为哪个更好或哪个更受欢迎的意见,这不是一个民意调查问题。 •我也没有购买node.js实现,我对node.js或类似的东西是否可以作为一个平台普遍采用感兴趣,或者它是否会留在一家公司手中。

5 个答案:

答案 0 :(得分:3)

是的,node.jar在JVM上的Nashorn引擎上运行:

https://groups.google.com/forum/?fromgroups#!topic/nodejs/750fF6ruAdY

如果能够解决问题会非常好。

答案 1 :(得分:2)

Mozilla的SpiderMonkey +节点核心库:https://github.com/mozilla/spidernode

答案 2 :(得分:1)

我刚学会了另一种实现方式。

io.js logo

这个实际上是原始node.js的一个分支,称为io.js。该分支似乎发生在2014年底,其主要目标是增加对ES6 (JavaScript ECMA-262)的支持。

答案 3 :(得分:1)

node-chakracore,它使用其Edge浏览器中使用的Microsoft的开源JavaScript引擎: https://github.com/Microsoft/ChakraCore/

他们通过改进服务器端工作负载的JIT / GC和eliminating v8-specific "CrankShaftScript" from Node.js core,积极致力于改进常见的Node.js基准测试(如AcmeAir)。

如前一个答案所述,还有spidernode基于Mozilla Firefox浏览器中的SpiderMonkey JavaScript运行时。

通过查看最新的node.js CI builds,您可以了解他们如何提高绩效。

答案 4 :(得分:0)

是的!显然,仅JVM上就有多个node.js实现:

SprintStack:Rhino的并发+偶数I / O

  

SprintStack为开发人员提供了一个节点兼容的环境,它具有JVM的所有优点,例如对并发的惯用支持,可靠的垃圾收集以及大量现有库。

     

如果您希望node.js应用程序利用快速,成熟的虚拟机和容错的最先进的应用程序。分布式编程然后尝试SprintStack!

(在7zark7's anwser链接到的主题中找到了这个。)