

























在计算机时代的上古年代,软件是作为计算机硬件的附属而存在,而且一般是附带源码,便于用户做修改或定制。而且在学术界和黑客社区,分享源码并在此基础上修改、添加功能是非常自然的事情。可以说,自由软件是计算机行业的传统,一直到1970年代中期前,软件是被鼓励自由拷贝的。这一切到了1970年代末,形式开始变化,比尔·盖茨的一封《致爱好者的一封信》标志着软件开始走向商业化和专有化。1978年,施乐公司提供给 MIT 人工智能实验室的打印机没有像往常一样附上源码,这个举动让当时在 MIT 工作的 Richard Stallman (以下简称 RMS) 愤怒了,同时他也感叹“一个时代结束了”。但他并没有对此妥协,在1984年 RMS 辞去 MIT 的工作,发起了 GNU (GNU's not Unix) 计划,并成立了自由软件基金会(FSF),开启了他对抗专有软件之路。RMS 提出了自由软件的概念,并定义了四种自由(参见《若为自由故》)。RMS 还提出了 Copyleft 的授权方法,也也就是我们所熟知的 GPL 协议。除了这些概念上的创新,RMS 开始打造完全自由的软件系统 —— GNU: 从 emacs 编辑器,到 GCC 编译套件,以及各种软件工具和开发库,GNU 将 Unix 系统上的专有软件替换的差不多了,唯独还缺少了操作系统内核 —— Hurd.
而到了1991年,一位芬兰的大学生 Linus Torvalds 开始基于教学用的操作系统 Minix 打造他自己的玩具操作系统 —— Linux, 这一切都是为了好玩(参见《最著名的黑客》)。在发布了第一个版本0.01后,Linus 决定接受 RMS 的建议,采用 GPL 协议授权发布 Linux, 使它成为一个自由的操作系统软件。Linux 受到自由软件社区的追捧,而另一方面,以 Linux 内核制作发行版的商业公司也如雨后春笋般出现,这里面最知名的是红帽 Redhat 公司,他们发行了 Redhat Linux 并出售商业版及服务,取得巨大成功,公司于1999年上市。
相对于 RMS 对于自由软件哲学的执着,Linus 本人并不关心自由软件运动,而他管理下的 Linux 社区却日益发展壮大,Linus 本人也成为了新的黑客领袖。老牌黑客 Eric Raymond (以下简称 ESR) 在研究了 Linux 的开发过程后,发现 Linux 的成功并非是所谓的自由软件哲学,而是 Linus 采用了一套与以往软件开发都不同的模式 —— 无论是专有的 Windows 或 Unix, 还是自由的 GNU emacs 或 GCC, 都是由一个人或一个团队控制着整个软件的开发过程,这种模式 ESR 称之为大教堂模式;而 Linux 则是更加开放并借助互联网协作的集市模式。ESR 将此总结成《大教堂与集市》文集并发表,在社区得到了极大的关注,网景公司因此将他们的主要软件代码开放,也就是今天的 Firefox; 而 ESR 又与他的同伴们一道,发起了对计算机行业影响重大的“开源软件运动”。

《大教堂与集市》探讨了两种软件开发模式 —— 大教堂模式和集市模式。因为当时还没有“开源软件”这个名词,文集中写的是自由软件,但现在大家一致认为这本书就是开源软件运动的“圣经”。在此之前,研究软件工程的圣经当属《人月神话》,特别是《人月神话》Brooks 定律 —— “延期的软件项目中添加人手,只能让项目更延期。”成为了形容软件开发过程极其复杂的经典定律。不过 ESR 指出《人月神话》中的这句定律在传统的开发团队中成立,而在互联网沟通的时代,加上类似 Linus 这样的权威仲裁者,那么开发人力应该是越多越好。他也因此总结了一个 Linus 定律:只要眼球足够多,所有 bug 都好捉。
ESR 在研究 Linux 项目的同时,还在他的新项目 fetchmail 上付诸实践了这种集市开发模式,并总结的19条经验之谈。以下直接摘抄翻译原文,我将自己觉得更有价值的条目加粗标识:
第14条也让我印象深刻,比如 Git, 就是一款带来远超预期想象的伟大工具,有机会后面我再写它。《大教堂与集市》是一本理解开源软件的必读之书,可以说是通往开源之路的指南针,它揭示了 Linux 等开源软件的成功秘诀。在 ESR 的网站上可以阅读全文。1
《大教堂与集市》集结成书时,包含了五个章节:
ESR 在二十多年前写的这些文章,现在看来很有先见之明。与 RMS 对于自由软件的狂热近乎原教旨所不同的是,ESR 对于自由软件理念的那套理论并不认同,他认为如果想要让自由软件/开源软件获得更广阔的发展空间,需要拥抱商业公司。因此他在“魔法大熔炉”中总结了商业公司利用开源软件可能的获取利益的多种方式,这也为接下来二十年开源软件的繁荣发展奠定了理论基础。黑客精神结合商业价值,用魔法大熔炉烹制出美味的软件盛宴。
但实际上,现在开源软件的商业价值已超出了他当年的预计,越来越多的大公司不仅仅因为贩卖服务、内容来获取开源软件的价值。在十年前,参与开源社区(特别是 Linux 社区)的大公司多为硬件产品为主公司,如 IBM、Intel 等,其目的很明显,为了在内核中预埋特性来提升他们的硬件竞争力。而近十年,我们看到越来越多的软件及互联网巨头参与开源,如微软、Google、Facebook 等。这些软件巨头根本就没想利用开源软件来卖硬件或服务,而是利用开源来构筑事实标准,从而建立生态甚至垄断行业,比如 Google 的 Android、kubernetes;而微软的 VSCode 更是吸引了大量的开发者用户,这跟微信免费是类似的道理。
对于个人来说,黑客或者说开发者在开源社区的贡献也不单单是义务的付出,开发者获得的“声望”是个人在社区建立的影响力和个人品牌。而开源对于个人开发者的更大的好处在于:如果把软件技术和知识看作是软件劳动者的生产资料的话,那么开源正是打破了软件巨头垄断,让生产资料真正掌握在劳动者的手里。因此,从某种意义上说,开源也是一场“共产主义”运动(虽然 ESR 曾经在采访中驳斥了开源是共产主义的说法)。2
The Cathedral and the Bazaar: http://www.catb.org/~esr/writings/cathedral-bazaar/ ↩
本文最早于2020年8月18日发表在公司内网 Hi3ms 社区和心声社区,为给 CodeConf 大会做广告宣传。 ↩
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。