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的项目负责岗,不久便淡出了公众视野。【图片3】
在此之后,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的兼容性,并且还成立了一个咨询委员会,吸纳了许多来自公司外部的开发者。但是对于许多人来说,这个咨询委员会来得太慢、太迟了。
英文:Wired