基于包管理工具的开源生态圈

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的包,想要分享到社区,两步:
在npmjs.org上,注册一个账号。
在本地执行:npm publish ...

这,实在是太简单了!

简单的说:通过提供易用性极高的包管理工具,大量的ruby和node项目,不必从头构建,发布代码时,也不必发布所有的依赖文件,围绕包的使用、分享、开发、协作,一种新型的开源生态圈,被建立起来了。

而这种生态圈,在老牌的开源社区里,是看不到的。

BTW: 这篇文章写于2013年,现在看来,当初的判断没啥问题,只是没想到因为NPM实在太方便了,结果......还闹出那么大的风波。

推荐阅读更多精彩内容