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 分裂后是否有助于让更多的公司和开发者来使用这款产品呢?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 的项目负责岗,不久便淡出了公众视野。
在此之后,Node.js 开源项目继续运行,并吸取了来自于不同公司编码员,来一同构建这个平台。但是在去年的一次访谈中,Mikeal Rogers 提到,自从 Ryan Dahl 离开后,Node.js 开源社区的贡献者和 Joyent 发布的更新数量都在不断缩减,甚至都有人发邮件过来询问这个开源项目是不是已经不存在了。
这就是 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 等。
但是近年来,随着商业活动中开放源码日益被广泛接受,Joyent 和 Docker 采取的这种单一公司控制模式也开始流行起来,并且有时候这种模式运转良好。例如:大行其道的编程框架,Ruby on Rails,依然由它的缔造者 Basecamp 进行管理。
Joyent 通过驱动决策过程中能达成共识,进一步提高 Node 的兼容性,并且还成立了一个咨询委员会,吸纳了许多来自公司外部的开发者。但是对于许多人来说,这个咨询委员会来得太慢、太迟了。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/49215.html