Linux有一套令人感到吃惊的软件工程理论。
有两种完全不同的开发模式:绝大多数商业公司所采用的“大教堂”模式和Linux世界采用的“集市”模式。
Linux是颠覆性的,谁能想到,几千名散布在全球各地的程序员,利用业余时间,仅仅通过Internet,就鬼斧神工般地造就一个世界级的操作系统?
Linux推翻了很多我以为我懂的东西,多年以来,我一直在宣扬“小工具”、“快速原型法”以及“演化式编程”等Unix信条。但我也相信,如果超过了一定的复杂度,更集中式的管理和更严格的流程是很有必要的。我相信大多数重要软件(操作系统和真正大型工具如Emacs编辑器)需要像建造大教堂那样,在与世隔绝的环境下,由天才式专家或几个行家里手精心打造,不成熟时绝不发布beta测试版。
Linus Torvalds的开发风格是:早发布、常发布、委托所有能委托的事、开放到几乎混乱的程度,这些都令人感到惊讶不已。在Linux社区,没有建筑大教堂那样的安静和虔诚,倒更像是一个乱糟糟的大集市,充满了各种不同的计划和方法(Linux的文件服务器就是个很好的例子,这里可以接受任何人的代码和文档提交),然而,就在这样的环境下,居然诞生了一个稳定的操作系统,这真是奇迹中的奇迹。