本节书摘来异步社区《开源思索集》一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区“异步社区”公众号查看。
基于包管理工具的开源生态圈
开源思索集
2005年,我还是一个典型的Java程序员。一个偶然的机会,我看到了一篇文章——《Ruby on Rails实践》。
在简单的试用之后,我于2005年05月27日在当年的JavaEye社区写了一篇热情洋溢的帖子:Java社群该向Ruby on Rails学习些什么?
当时的JavaEye站长Robbin回复到:“Python/Ruby是下一代的编程语言,Java是这一代的编程语言,要等到Python/Ruby流行,至少5年以后。正因为5年以后,所以我现在先不考虑。”
到了2006年9月11日,JavaEye上线基于RoR的2.0版本,的确是非常有趣的华丽转身。
但是,这不仅仅是个案,到了2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。
随后,一股Node热潮开始出现。到了2013年,Github上一共有了5万多个Nodejs的项目;在npmjs.org上,有将近5万个Package。大量的热门项目,频繁出现在Github的排行榜上。
为什么会那么火爆,当然可以分析出很多的原因,我想聊聊最为打动我的一个原因:
当初用rails,我只需要输入:gem install rails
现在如果想用node开发Web应用,我也只需要输入:npm install express
从Github Clone一个Ruby的开源项目,想要在自己的机器上运转起来,往往只要一行命令:bundle install,而node项目呢,更加简单,只要npm install。
下面进入更加令人兴奋的环节:如果我开发了一个node.js的包,想要分享到社区,可以分两步:
(1)在npmjs.org上,注册一个账号。
(2)在本地执行:npm publish ...
这,实在是太简单了!
简单地说:通过提供易用性极高的包管理工具,大量的ruby和node项目,不必从头构建,发布代码时,也不必发布所有的依赖文件,围绕包的使用、分享、开发、协作,一种新型的开源生态圈,被建立起来了。
而这种生态圈,在老牌的开源社区里,是看不到的。
BTW: 这篇文章写于2013年,现在看来,当初的判断没啥问题,只是没想到因为NPM实在太方便了,结果......还闹出那么大的风波。