node.js和io.js有什么区别?

io.js和node.js有什么区别? 最近的io.js是从node.js派生出来的,而且是由一些和node.js相同的人做的。

导致这个分支的关键差异是什么?对于整个node.js社区意味着什么?

io.js是Joyent的Node.js的一个分支

有什么区别?

io.js:

  • 节点转发基本上被合并到io.js中
  • 在社区驱动的发展和主动释放周期的基础上分化
  • 包括许多原始的Node.js开发者
  • 有未来的目标“与Node.js合并”

这个存储库开始作为joyent / node的GitHub分支,贡献,发布和贡献都在开放治理模式下。

我们打算随着日益增加的规律着陆,发行与迄今为止为node.jsbuild成的npm生态系统兼容的版本。

Node.js的:

  • 原来的软件
  • 近来发展缓慢
  • 由Joyent赞助
  • Joyent拥有商标Node.js

他们为什么分裂?

主要有三个原因:更快,更主动的发布和向1.0.0发行版的发展,更多的社区驱动型开发,而不是咨询委员会 ,以及使用semver发布。

什么是咨询委员会 ?

咨询委员会是Joyent计划使Node.js更加集中,更快速的方式来规划开发,并规划未来的function沿着1.0.0发布的道路。 这是计划通过组build使用Node.js的大型公司的董事会来完成的

引用Joyent的博客:

随着社区变得越来越复杂,重要的是我们想方设法平衡所有三方成员的需求,并为这些组织提供一个平台,并为这个项目提供投入。

咨询委员会为什么讨厌?

以前,Node.js是通过邮件列表,GitHub问题运行的,任何人都可以贡献自己的想法。 这个想法开始变得有些讨厌,因为它将控制权从平均每天的贡献者手中夺走,并将权力转移到了沃尔玛雅虎IBM微软JoyentNetflixPayPal等公司

外部来源就此

事实上, Node.js和io.js 实际的区别。 有些事实被其他答案遗忘:

  • 目前,io.js在多个方面比Node.js快一点。 性能基准可以在这里find。
  • io.js的ECMAScript 6支持比Node.js更广泛 比较可以在这里find 。

为什么? 因为io.js 1.6.2附带Google V8 4.1.0.25,而Node.js 0.12.1附带V8 3.28.73。 另外,ECMAScript 6的标志在Node.js和io.js之间是不同的。 io.js的ECMAScript 6标志指南可以在这里find。

TL; DR io.js是node.js的未来版本。

io.js网站上说 :“io.js是一个节点&npm兼容的javascript平台。” 它是一套与当前存在节点相兼容的工具(运行时/虚拟机,软件包pipe理器等)。 任何差异都可能在底层的实现中,以及io.js在node.js特性集之外添加的任何扩展。

(为什么现有的东西会与社区分离?为什么这是一件坏事?)

请注意,io.js还没有发布! 然而,io.js路线图说明了节点和io之间的一些特别相关的区别。

  • “Node已经非常稳定了”,但Node 没有达到1.0; 目前在0.10.33。
  • “整个生态系统使用semver,而节点使用混乱的偶数/奇数版本结构”。 通过为一个新(ish)项目引入一个新名称,他们将能够解决这个问题。

所以据我了解,io.js是1.0-alpha1和未来版本的节点,但是:

  • 不同的(理智的)发行版本
  • 故意频繁发布
  • 由技术委员会治理

io.js是node.js的一个分支。 但是现在io.js和node.js再次合作。 所以这就是为什么node.js直接从0.12.x直接跳转到4.0.0的原因,因为node.js版本4.0.0包含了io.js 3.0.0版本的所有主要更新