Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2.1 大教堂与集市

Linux 是颠覆性的。哪怕在五年前(1991年),谁能想到,一款世界级的操作系统,竟能仿佛魔法一般,出自全球数千名兼职黑客的业余代码创作,所有人仅凭互联网这根纤细的纽带彼此联结?

反正我当初是没想到的。1993 年初 Linux 进入我的视野时,我已经投身 Unix 与开源开发十年之久。20 世纪 80 年代中期,我就是 GNU 的首批贡献者之一。我曾在互联网上发布大量开源软件,独立或联合开发了多款至今仍被广泛使用的工具(如 nethack、Emacs 的 VC 和 GUD 模式、xlife 等)。那时的我,自认深谙软件开发的全部门道。

Linux 彻底推翻了我过往固有的认知。多年来,我一直在推崇 Unix “小工具、快速原型、迭代开发”的核心理念。但我也相信,存在某个关键的复杂度阈值,而一旦越过这道门槛,就必须采用高度集中、预先统筹的开发模式。我相信,最重要的软件(操作系统以及像 Emacs 编程编辑器这样真正大型的工具)应当像大教堂那样建造,由几位魔法师闭门潜心打磨,绝不在时机成熟前发布 beta 版。

林纳斯・托瓦兹(Linus Torvalds)的开发风格出乎我的意料:早发布、常迭代,尽可能下放开发权限,项目对所有人开放到近乎“滥交”的程度。这里没有修建大教堂时那种沉静、审慎的封闭氛围;Linux 社区反倒像一座人声鼎沸的大集市,汇集了各路黑客不同的目标和方案——全球的 Linux 代码归档站点任何人都能提交代码,就是这一模式最好的象征。一套逻辑完整、稳定可靠的操作系统,竟能从这样纷乱的环境中诞生,简直像是接连上演的奇迹。

这种集市风格竟然行得通,而且效果很好,这点让我格外震惊。当我逐渐摸清门道后,我不仅在个人项目中采用自己的方式,还努力去理解:为什么 Linux 社区不但没有在混乱中分崩离析,反而越做越强,让大教堂的建造者们难以想象。

到了 1996 年中期,我自认为终于理清了背后的逻辑。通过一次偶然的机会,我拿到了绝佳的理论验证载体:一个开源项目,我可以主动采用集市模式运营。我付诸实践,最终收获了巨大成功。

下文我将讲述这个项目的完整经历,并以此总结出一套能高效推进开源开发的实践准则。这些准则并不都是我在 Linux 社区才开始学到的,但我们将看到 Linux 社区怎样赋予它们独特的深意。如果我说的成立,它们就能帮你准确理解,究竟是什么让 Linux 社区成为优秀软件的源泉——或许还能助你大幅提升个人开发效率。