Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Node.js API联盟成立 #59

Open
calidion opened this issue Dec 5, 2016 · 0 comments
Open

Node.js API联盟成立 #59

calidion opened this issue Dec 5, 2016 · 0 comments

Comments

@calidion
Copy link
Owner

calidion commented Dec 5, 2016

IBM, Intel, Microsoft, Mozilla 和 NodeSource 合力促成Node.js API规范; Node.js将开始每天推送基于node-chakracore的编译成果。

Node.js 基金会的任务之一就是让Node.js可以在各个领域都能发展起来。目前Node.js平台已经可以在多个VM上运行了,比如三星的JerryScript,一个用于物联网(Internet of Things)的轻量级的JavaScript引擎。但是要想让Node.js运行于V8之外的VM环境,仍然需要做出不少的努力。Node.js API工作组和ChakraCore正在做的工作是很重要的几个努力,他们将会提供了更好的选择方案。

今天我们很高兴宣布这方面的几个初步的里程碑。第一个是关于Node.js API(ABI 稳定模块的API或者简称NAPI),它关注定义稳定的模块API,并且是与V8的变化是无关的。今天,这个方面概念的第一个努力的成果将在Node.js 北美交流大会上展示. 微软ChakraCore项目的高级程序经理Arunesh Chandra会在美国中部时间下午4:10分的第6个沙龙上演示NAPI。所有的演讲将会在大会结束后放在Youtube视频上。(中国的网友如果能翻墙,请到原文里找)

第二个里程碑,不是Node.js API的工作,是ChakraCore的。Node.js的编译系统将开始生产node-chakracore的版本。让Node.js可以在基于ChakraCore的JavaScript引擎上使用。Arunesh Chandra将会在他的PPT上同时介绍这方面工作的进展。

这些初始化的工作是让Node.js能力VM中立的基础性工作。它们让Node.js可以有更多的参与IoT和移动相关的案例开发,以及应用到各种不同的系统的机会。

NAPI:给Node.js的模块生态系统一个稳定的API

Node.js模块的社区是非常巨大的,一个星期的包下载量已经超过了1亿次。Node.js的初始化的工作目前主要集中在让模块的维护者可以更加的轻松一些。通过定义一个稳定的模块API从而让API与V8的变化可以更加的独立,从而允许模块在新的Node.js版本下可以正常的运行,而不必重新编译。(译者:这个主要是针对原生的模块来说的,纯JS的模块不存在这类问题。)

这些工作同样可以帮助那些使用Node.js的人得到更好的体验。他们可以在选择模块时有更多的选择并且模块将会更加的稳定,并且不必要跟着升级(译者:译者曾经对greenkeeper与npm强制升级的现象提出过批评)。这也自然会导致更多的选择与更加有活力的生态系统,从而让Node.js的未来变的更加的富有创新功能。

“Node API相关的工作让社区为之激动,它将会让模块生态更加的稳定,相互独立,与Node.js的版本变化无关。让开发者更加灵活的应对Node.js的版本更新。”IBM运行时开发说,“最重要的是,这个改进是进入终于目标VM中立的重要步骤。两者相互促进可以向企业提供更大的价值,也给它们更多的选择机会,让它们可以更轻松的从这个模块系统中获得更加强大的能力。”
“很大部分的基金会工作目前主要集中在提升Node.js的多样性与可信度”,Node.js基金会的社区经理Mikeal Rogers说,“Node.js API的工作将会很好的支持我们推广Node.js到更多环境的使命。这是一个大的社区Web项目的开始,它将会让各种VM与浏览器一样进行竞争与创新。”
一个更加详细的Node.js API的线路图已经可以从这里得到。
链接地址:nodejs/abi-stable-node#18
我们鼓励你通过体验这些新的API,在你的环境里进行测试,并报告一些你所需要的修补和改进,并成为这个项目的一部分。

Node.js和ChakraCore

Node.js的构建系统将会生产出来node-chakracore的版本,让Node.js可以执行ChakraCore引擎驱动的JavaScript代码。
"允许Node.js工作在多个引擎之上,将会让Node.js可以充分的优化地运行在多个不同的系统之上,包括一些IoT系统,”微软ChakraCore项目的高级程序经理Arunesh Chandra说道,“我们跟开源社区与不同公司的贡献者紧密的工作,并且认为这样的协作可以得到更多的创新,并创造更多的机会给Node.js的开发者,因为这样可以在未来可以生产新的用例。”
“关于Node.js与JavaScript VM之间如何交互与管理的相关尝试已经有很多了。”,NodeSource的CTO与联合创始人Dan Shaw说道,“ChakraCore完全开源的性质让测试新的属性变的相当的容易。我们希望这些尝试还可以继续推进下去。”
Node-chakraCore也会通过Time-Travel来不断的提升Node.js的调试能力。让开发者可以轻松的获得错误信息,不管程序退出,还是回退都可以得到很好的调试。所有这些技术与主题都会在Arunesh的演说中被讨论到。更多的信息也可以在微软的博客中找到。

什么是VM中立?VM中立有什么好处?

VM中立是对Node.js的状态的一个描述,它表示Node Core和与之相应的JS引擎之间是一个中立关系,而这种中立关系是通过开放的标准与开放的API接口实现的。核心思想就是创建一个正式的位于Node.js和它的VM之间的接口。在VM中立的情况下,对于Node.js的生态特别是原生的模块来说,可以无缝的在不同的JS VM,以及各种设备与场景下正常工作。
由于VM中立,Node.js可以从新的设备与场景中得到各种优势,让开发者获得在更多的Node.js生态扩展的能力,让他们可以在更多的设备和环境上重用代码,并让已经进行的多VM的工作更加的标准化。

促进在Iot平台上Node.js的繁荣

IoT是一个快速增强的市场,市场规模将从2014年的591.7亿美元增长到了2019的1300亿美元。根据Verizon公司最近的关于Iot的报告,基于Iot的终端的安装量预计在2019年可以超过25.6亿,并在2020年达到30亿美元。在Rogers看来,Node.js正越来越成为这个平台的选择,用以创建IoT的应用以及嵌入到设备中,而VM中立将会促成Node.js在这个领域的增涨。
随着更多的VM厂家为不同的硬件环境进行优化,Node.js将可以扩展到各种不同的VM平台,从而给Javascript和Node.js的用户以在各个地方使用这个语言或者平台的灵活性。开发者也可以使用更小,更专注的Node.js运行时,而不必使用全部的VM;这样可以让Node.js在IoT环境中大副的提升性能。

VM中立可以让移动开发者从中受益

一旦Node.js从一个固定的VM脱离出来,开发者就可以为了移动应用开发的特殊的需要去匹配不同的虚拟机,让更我的移动开发者可以收获Node.js的优势(使用容易,代码精简,性能)

我如何能参与进来?

如果你想参与到Node.js API的工作上来,请:
1、使用ABI稳定的API转化一个原生的模块并报告转化和性能的问题
2、迁移ABI的稳定API到你的Node副本里,并让我们知道是不是有困难。
3、重新看一下图线路,确定你可以怎样加速这个项目的进行。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant