io.js 发布 2.0 版本,并讨论加入 Node 基金会的可能性

  • James Chesters
  • 邵思华

2015 年 5 月 14 日

话题:开源JavaScriptNode.js语言 & 开发

io.js 团队刚刚宣布 2.0 版本的发布,在新版本中对 V8 JavaScript 引擎进行了升级。

在 io.js 2.0 版本对应的 V8.4.2 引擎中,值得注意的升级改动包括:类得到了完整的支持,可以在不使用开关标记的情况下,在严格模式(即声明‘use strict;’)中使用 class 关键字。对象字面量表式法(object literal)也得到了改进,可以用于方法或属性的缩写。此外还实现了由 harmony-rest-parameters 标记控制的剩余参数(rest parameters)特性。

在新版本中,V8 引擎的升级包含了少量的破坏性变更,此外还包括了对 C++ API 以及 os.tmpdir() 方法的变更。根据技术委会员成员 Rod Vagg 在 io.js 2.0修改日志中的说明,后者“现在能够实现跨平台的行为一致性,在任何平台上返回路径时都不会带上结尾的斜杠。”

还有一点值得注意的是,在 io.js 2.0 中,npm 升级到了 2.9版本,涉及到 npm outdated 以及 npm update 中本地模块的变动。此外还支持默认作者字段,因此可以直接使用 npm init -y,而无需用户输入。

对于 io.js 来说,与 Node.js 的和解或许最终能够得以实现。在“io.js 与 node.js 基金会”这篇博客文章中,提到了 Node.js 的管理人 Scott Hammond“表现出……他将 io.js 带回 node.js 项目的意愿。”这篇文章的发布时间在今年 2 月,其中提到“与 Joyent 的讨论还在进行中,目前为止还没有任何变化,一旦 Hammond 成立Node.js 基金会的提议能够得到一个技术管理模型,那么关于 io.js 是否回归的问题就将交给整个社区进行讨论。

5 月 7 日,作为 io.js 团队创始成员之一的 Mikael Rogers 在一篇关于 io.js 的博客文章“成长”中表示,这一项目确实需要找到归属,“可以让一个中立机构为这一项目提供支持,而依然由整个社区对其进行管理”。他在此大声地说出了他的顾虑,即当该项目没有官方的运营资源时,“商业利益”有可能会出现填补这一空白。Rogers 断言,io.js 需要一个基金会,他建议遵循 Linux 基金会所推荐的方式。

他总结道:

一个多月之前,Linux 基金会与来自 Node.js 和 io.js 项目的人一起开始创建一种管理模型与捐献政策,他们考虑将这些项目放回基金会进行运作,目前相关的管理模型工作小组开发整合政策等内容均已完成。

基金会的政策是保留我们对于 io.js 所做工作的进展,他们逐字地解释了 io.js 的自由合作模型与开放管理模型,但他们也表示可以由一个中立机构拥有在这些政策下进行管理的资产。

在 GitHub 上的这个帖子“加入 Node.js 基金会”的讨论是向公众开放的,目前已经有超过 115 条留言了,从人们的反应来看,很大一部分人都倾向于 io.js 与 Node.js 的整合。

来自 Spark Labs 的高级软件工程师Emily Rose在留言中表示“我还在一条条地阅读细节,但它看上去非常明智,是经过深思熟虑的。感谢你们的努力,我表示支持这一举措。”而 Cordova/PhoneGap 的联合开发人之一的Brock Whitten说道“感谢你们把它们合在一起,是每个人的努力工作才能够得到这个潜在的解决方案……我也倾向于它们的合并。”

对于那些想法还停留在过去的人,Rogers 强调说:

“是时候忘掉过去了。如果我们做出了这个决定,那么我们都将是 Node.js 的一员,并且有责任解决这个问题。我们不需要再受限于历史,那些曾经在这一项目上工作超过一年的来自 Joyent 的人都已经离开了,要让每个离开的人都参与进行是愚蠢的行为。让我们把目光向前看,并解决这些问题,并且现在可以选择为这两个项目同时解决问题了。”

今年 1 月,Node.js 这个富有争议的分支,即 io.js 的 1.0 版本推出了。虽然它超越了 Node,但 io.js 团队当时澄清说,这次发布并不意味着 io.js 已经“为生产环境的使用做好了准备”。

iojs/io.js 这个 GitHub 库是由技术委员会以及由他们在发展过程中选择的合作者共同维护的。任何人都能够为这一项目贡献代码,io.js 坚持某个行为守则,所有的贡献、发布与贡献人都是由某个开放管理模型掌管的。

查看英文原文:io.js Releases 2.0, Debates Joining Node Foundation

开源JavaScriptNode.js语言 & 开发