Node.js一分为二:开源项目真需要“大管家”吗?

jopen 10年前

Node.js一分为二:开源项目真需要“大管家”吗?

        猎云网 12 月 15 日报道 (编译:西洲豹)

        Node.js 作为服务器编程语言的后起之秀,常用来构建和运行 Web 应用,近日却爆出其社区出现分裂。由于对官方运营商 Joyent 公司在 Node.js 管理上的长期不满,多位核心开发者另立门户,创建了分支 Io.js。从 GitHub 得知,Io.js 的第一个版本(1.0.0 alpha1 版)将于 2015 年 1 月 13 日发布。

        Node.js 开源社区组织者 Mikeal Rogers 也是“另立门户”中的一员,他说:“我们不想被另外一家公司任命的管理人员牵着鼻子走,而是想让 Node.js 的贡献者拥有更多的控制权,并寻求更多的共识。”

        Io.js 与 Node.js 的分离,再一次凸显出开源项目赞助商与其开发、维护人员及公司之间的矛盾。之前也有类似的情形,CoreOS 与 Docker 分家继而推出自己的容器引擎 Rocket,也是因为 Docker 的部分社区成员认为母公司的管理偏离了原来的方向,从而导致一个新的竞争对手产生。

        一般情况下,商业公司通过免费提供开源软件,鼓励用户测试、改进源代码,可以获取巨额利润。然而,这样做的结果是,很难平衡商业公司与外部开发 者、使用者间不同的需求。云计算公司 Joyent 是 Node 编程语言的主要用户,在满足其自身需求的前提下,还通过 Node.js 的广泛传播和推广获利。这样便陷入了一个怪圈,Joyent 不可能让每个用户都满意,于是便上演了前文提到的分裂。

Node.js一分为二:开源项目真需要“大管家”吗?

        但是问题的关键在于,Node 分裂后是否有助于让更多的公司和开发者来使用这款产品呢?Node.js 是一个基于 Chrome JavaScript 运行时建立、流行、开源、跨平台的运行时环境,这种运行时环境正在改变开发者构建新应用的模式。自五年前发布以来,Node 便深受欢迎,现在已被诸多全球知名企业在其商业产品或服务软件中采用,包括通用电气公司、沃尔玛这样的企业巨头,以及著名社交网站 LinkedIn、音乐应用 Rdio、打车软件 Uber 这些科技新创企业。

        分裂的背后原因

        Node 最初是由 Ryan Dahl 于 2010 年 11 月发起的开源项目,旨在用 JavaScript 语言构建和运行大规模网络服务及应用,而 JavaScript 是目前浏览器所使用的标准编码语言。程序员之所以喜欢 JavaScript 语言,是因为它灵活易懂,只需使用一种语言便可实现浏览器与远程服务器之间的代码调试。并且,还很适合构建需要支持众多同时在线用户的应用,比如在线游 戏。

        而在 2009 年,Joynent 雇用了 Ryan Dahl 并让其专职负责 Node.js 的发展,在此同时,还获取了 Node 的品牌使用权。三年后,Ryan Dahl 却走下了 Node.js 的项目负责岗,不久便淡出了公众视野。【图片3】

        在此之后,Node.js 开源项目继续运行,并吸取了来自于不同公司编码员,来一同构建这个平台。但是在去年的一次访谈中,Mikeal Rogers 提到,自从 Ryan Dahl 离开后,Node.js 开源社区的贡献者和 Joyent 发布的更新数量都在不断缩减,甚至都有人发邮件过来询问这个开源项目是不是已经不存在了。

Node.js一分为二:开源项目真需要“大管家”吗?

        这就是 Io.js 团队决定和 Node 分道扬镳的主要原因。这个项目创立之初便已经参与的五位重量级开发者,Io.js 分支囊括了其中四位。Joyent 目前维持的 Node.js 版本仍起着至关重要的作用,但是 Io.js 的开发团队已经计划在 2015 年初发布他们自己的平台自定义版本,将使用全新的的谷歌 V8 JavaScript 引擎。

        另一边,Joyent 的首席技术官 Bryan Cantril 却认为 Node 依然盛行,尽管其发展速度放缓。他解释到,Joyent 将重点放在如何使 Node 的读取速度更快、运行更加稳定上,而非一味的去增加新特征。并且,一定要把控社区贡献者的质量,而不是数量。

        分裂后新的起点

        当然,Mikeal Rogers 没必要因为 Node 面临的问题去谴责 Joyent。但是,Io.js 团队坚持的理想是创造一个全新的、独立的基础,服务于这个开源项目,而不受任何外在公司或个人的控制。这同时也说明,Io.js 团队还未真正建立起这个基础,因为他们仍对获得 Joyent 授权使用 Node.js 商标报以希望。

        一个全新独立的基础具备十分重要的意义,包括诺维 NPM、NodeSource 和 Strongloop 等许多公司,都依靠 Node 开源语言,并且 Io.js 团队中的许多成员还受雇于这些公司。历史上流传最广泛的开源项目也多数具备独立的基础,而不是受控于个别公司,像世界排名第一的 Web 服务器软件 Apache,大数据处理平台 Hadoop,操作系统 Linux 等。

Node.js一分为二:开源项目真需要“大管家”吗?

        但是近年来,随着商业活动中开放源码日益被广泛接受,Joyent 和 Docker 采取的这种单一公司控制模式也开始流行起来,并且有时候这种模式运转良好。例如:大行其道的编程框架,Ruby on Rails,依然由它的缔造者 Basecamp 进行管理。

        Joyent 通过驱动决策过程中能达成共识,进一步提高 Node 的兼容性,并且还成立了一个咨询委员会,吸纳了许多来自公司外部的开发者。但是对于许多人来说,这个咨询委员会来得太慢、太迟了。

        Source: Wired