我不确定当你看到这张图时,是不是和我一样感到震惊?
这行图大致描绘了三个主要 Linux 发行版 Debian、Fedora 和 Slackware 的分支演化情况,三个分支下,每个分支背后都隐藏着一个绝顶聪明的开发者或一个精英团队在维护。
这张图来自托米斯拉夫·图拉利亚,他认为 Linux 发行版之所以出现这种过度野蛮的生长——产生了一百多种不同的 Linux 发行版,完全是由于开发者的自负(BIG EGO)。
下面以 Debian 路线的分支演化举例,看一看这种来自开发者的自负是如何体现的,其他两个分支的情况与其类似。
确实 Debian 是一个不错的发行版,它稳定、健壮,但它缺乏新的、酷的东西。因此,一些开发人员开始捯饬轻量级的 Linux Knoppix——一个基于光盘或 USB 闪存启动的 GNU/Linux 系统,而另一些开发人员则开始开发更前沿的版本 ——Ubuntu。
Ubuntu 因为几乎可以在全世界范围内免费分发 CD,它因此受到了很多人的喜欢,Linux 系统也被更多人看到和使用。我 2006 年在北京从事编程工作的时候,同办公室的同事在网上免费就申请了一个 Ubuntu 系统,当他收到 CD 包裹的时候,他还高兴地拿给我们看。在印度,有很多地方网络基础设施不完善,只要当地的开发者提出申请,他们就能得到一张免费邮寄的系统安装盘。CD 大概有 700MB,基本支持所有的主流硬件,不需要到处找驱动就可以马上安装使用,想想这真让人激动。
但是很多人不喜欢 Ubuntu 的界面,不久,除了 Ubuntu,就诞生了 Kubuntu、Lubuntu 和 Xubuntu,它们相当于 Ubuntu 的大皮肤,或者说是三件时尚——想时尚的外套。
下面这些话基本来自图拉利亚的抱怨,他是一位非常有经验的开发者,他讲的话是可信的。
- 一些人想要更好的软件支持,他们制作了 Ubuntu Studio;
- 一些人想要一个不同的界面,他们制作了 Mint;
- 一些人喜欢一切,但希望界面颜色更好,他们制作了 ZorinOS;
- 谷歌想要一个更简单的版本,他们制作了 ChromeOS;
- 一些人希望它更像 MacOS,他们制作了 Elementary OS;
- 一些人想要一个更安全的版本,他们制作了 ParrotOS;
- 一些人讨厌已有的这一切,他们制作了 Solus、Arch 等。
等等,还有很多,数不胜数。
随着时间的推移,所有这些开发者都在分散、减少,而不是一起工作。他们必须一遍又一遍地解决相同的问题,而不是为了一个共同的目标而共同努力,所以就有了开头那张「荒谬」的图表。想象一下,如果聪明的开发者都在同一个 Linux 版本上工作,那会是一个什么样的结果?
下面说一下我的观点。
先说 Linux 是否失败。如果拿 Linux 桌面版与 Windows 系统的市场份额做比较,Linux确实是失败了。但是 Linux 本来就不是一个商业公司啊?如果拿 Linux 的作者林纳斯·托瓦兹(Linus Torvalds)与微软的创始人比尔·盖茨(Bill Gates)作为一名程序员对比,显然林纳斯·托瓦兹又非常成功。百年之后——或者二百年之后,微软帝国大概可能不存在了,但 Linux 系统可能还在。Linux 发行版越是繁华多样,这种成功就越是耀眼;有如此多的分支,不是 Linux 的弱点,反而是它成功的标志。
再谈一下动机。让一百多个发行版的开发者为一个发行版而努力,这是公司的行为,试问,谁给他们发薪水?能写这些系统的家伙,他们单位小时的技术薪水应该都不低,谁有财力养活他们?如果把他们招揽在一起,在一起共同维护一个系统,这不就是微软吗?
像软件、谷歌这样的大厂实行的研发机制,像计划经济;而 Linux 发行版实行的,更像是开源世界里的市场经济。这两种模式它们肯定会相互学习,大厂学习开源模式的优点,甚至带头搞开源,这都不稀罕;有越来越多的开发者——像图拉利亚这样的开发者,也会看到发行版发展混乱、缺少规划的问题,但解决或改善这个问题可能还需要时间和智慧。
还有,有一点必须提一下,有一些发行版的背后是一个小团队在维护,他们之所以那样做,源于他们的客户的需要。虽然混乱,但星星点点都是经济价值。
当我第一次看到篇首的那张分支演化图时,我感到的不是震惊,不对,也可以理解为是一种震惊,惊于 Linux 发行版发展的繁荣与兴旺,而不是混乱与无序。
我不确定当你看到这张图时,是不是和我一样感到震惊?