1
前两天看到开源中国发了两篇很有意思的文章:《FreeBSD大败局》[1]和《Linux败局已定——驳FreeBSD大败局》[2]。也许很多人只当这是两个操作系统互喷的八卦,但在我看来,这场争论带出了一个很重要的问题:自由软件与开源软件究竟哪里不同?FreeBSD 所继承的BSD 某种程度上是“自由软件”精神的发端。而 Linux 则是开源软件的最佳代表。
我们会在很多文章里面看到诸如以下的表述:
-
“自由软件”强调软件自由,用户有权利得到所运行的程序的源代码;
-
“开源软件”继承了自由软件代码开放的理念;
-
“自由软件”与“开源软件”被并称 Free and Open Source Software (FOSS)
-
……
这些讲法都没有错,但他们却往往给人造成一种困惑:“开源软件”与“自由软件”是一样的,那么为什么要有两个概念呢?
我的回答是“自由软件”与“开源软件”是两回事,他们的主力参与者是两种人。从宏观上看,不同人群都会有共同点。(比如,上帝和安拉都禁止人们盗窃。)但人与人的差异往往在细微之处。
2
“自由软件”的土壤是小型机 (minicomputer) 与 UNIX 操作系统。DEC[3] 公司发明的小型机成功把计算机从大公司普及到了大学与研究机构,使得更多人有机会接触到计算机。但前提是你得能进入顶尖的大学或研究机构,这便是标题中所指的“精英程序员”——来自精英阶层的程序员。
“开源软件”则源于 X86 个人电脑 (personal computer),互联网与 Linux 操作系统。个人电脑进一步把计算机从大学、研究机构普及到了普通人家。你不再需要先进入精英阶层才能接触编程了。这样的“草根程序员”很多没有计算机理论基础,也没有学习过什么高等数学知识,他们有的是浓厚的兴趣。其中佼佼者会成长为“程序员精英”,比如 Linus。
但你可以想象“精英程序员”是如何看待这些草根的,我引用一下《还有人记得Linux之前,那个理想又骄傲的BSD吗?》[4] 中的的内容:
不仅是 Bill Joy,整个 BSD 的傲气都十分外漏。Marshall Kirk McKusick 后来深度参与了 FreeBSD,他就曾表示,90% 的 committers 所贡献的代码都不能用,还剩下的一小部分则需要“were peed upon to make them smell like Berkeley”(不翻译了,大家自行体会。)而这也是FreeBSD 保存有整个等级制度的原因。
除了阶层上的优越感,设备上的鄙视链也是个重要的因素。DEC 开发的小型机当年一度把 IBM 的大型机 (mainframe) 打得找不着北。IBM 如何应对 DEC 的强势崛起?除了不断完善大型机,真正的杀手锏就是做出了 PC 个人电脑。当然任何产品初期的时候都是比较稚嫩的。因此不难想象,那些用过小型机的“精英程序员”是如何看待用着玩具般的 PC 的计算机“草根”们。
回顾过去的历程,显然“精英程序员”输给了“程序员精英”。有趣的是今天中国互联网大厂们的校招风格依然是“精英程序员”的思路,特别重视本科学历。在业务上似乎也取得了不错的成果。但在技术上呢?
大厂内部“精英程序员”们也很难展开合作。比如数据库,一个大厂没几个互相 PK 的数据库团队,都不好意思说自己投入了基础软件的研发。
现在我们正处于又一个计算环境变革的时代,“程序员精英”与开源模式能不能继续发扬光大呢?
附录
[1]: FreeBSD大败局
[3]: Digital Equipment Corporation
[4]: 还有人记得Linux之前,那个理想又骄傲的BSD吗?
本文转载自“燃烬1400”公众号,作者:顾钧Jun,原文链接:https://mp.weixin.qq.com/s/oaupH57sxH6eGQ0Ilk7e1A
猜你喜欢: