上世纪90年代,Sun公司是程序员最向往的公司之一。
图片
它拥有同时代最好的CPU,最好的操作系统,最好的编程语言,可谓如日中天。
但是有个年仅三十岁出头的年轻人却看到了其中的危机,他说:如果我们不开源操作系统,将来市场将会被Linux所抢占。
事实证明他是对的,免费的Linux,搭配廉价的x86 CPU很快把Sun公司的高端服务器打得溃不成军。
这个人就是Larry McVoy。
图片
但是谁也没有想到的是,仅仅五年以后,这个开源拥护者就走到了开源的对立面,更是在十年之后和世界上最大的开源社区决裂了。
1、开源先锋
1994年,Larry离开Sun公司,转身投入Linux的怀抱,他开发了著名的性能分析工具LMbench,这是 Linus 和其他一些内核黑客喜欢的基准测试套件。
从此他成为Linus的亲密盟友。
当时的Linus,还是依靠邮件列表和文件diff来维护Linux内核,刚开始还好,到了1998年,繁重的工作让他疲惫不堪。
市面上有CVS和Subvision这样的SCM(Source Code Management ),但Linus不喜欢,认为是垃圾,因为它们无法匹配Linux那全球分布式的开发模式和流程。
正好,Larry在Sun公司开发过一个叫做Teamware的软件,这是个分布式的源码管理系统,不但在Sun内部存储Solaris和Java的源代码树,在外部也有很多客户在使用。
图片
一天晚上,Larry邀请Linus、Dave Miller 等内核大神到家里吃晚饭,一起讨论新的SCM应该是什么样子。
Larry在白板上画了三四个小时,给他们讲了自己对分布式SCM的想法。
Linus被打动了:“嗯,这很酷,如果你能把它搞出来,我肯定会用它。”
Larry说道:“没问题啊,我以前做过,6个月估计就差不多了。”
Larry显然过于乐观了,新SCM两年以后才开发出来,这就是鼎鼎大名的BitKeeper。
图片
2、和开源决裂
软件开发出来了,但是Larry的理念发生了重大的变化:“开源作为一种孤立的商业模式几乎是不可持续的!”
Larry认为:对于开源项目来说,在开始的时候是有趣的,程序员愿意在上面花费时间。随着时间推移,就不那么好玩了,苦力活越来越多,没有收入作为动力,就没人愿意维护了,这个项目就可能死掉。
如果收费的话,才有可能让这个项目继续下去,fix bug,开发新功能。
于是,Larry决定:BitKeeper不开放源码,收费。
一个不开源的软件,Linux社区会用吗?
答案是:会的。
2002年,Linus做了一个让人震惊的决定,选择BitKeeper来进行内核开发。
一个重要原因就是BitKeeper这个分布式的SCM可以轻松地支持分叉和合并,以前完全压在 Linus 肩上的大部分工作就可以分配给他信任的副手。
图片
BitKeeper搞了个社区版让大家使用,附加两个重大限制:
1.使用社区版的程序员不能参与其他竞争工具的开发,不论竞争工具是开源的还是私有的。
2.BitKeeper公司 将控制与内核项目相关的某些元数据,以便发现任何滥用许可证的情况
这在Linux社区引发了轩然大波,让Linus和其他开发人员的关系搞得非常紧张。
Linux社区的人也不服:我们不能开发一个开源的?直接把BitKeeper替换掉吗!
对Linus来说,他并不为使用商业软件而烦恼,所以替代方案一定得是对BitKeeper的重大改进。
三年过去了,那些开源大牛们折腾了无数的SCM,没有一个能满足Linus的要求。
到了2005年,Samba 的创建者Andrew Tridgell尝试替代方案时,对BitKeeper 网络协议进行了逆向工程。
这下子惹恼了Larry,他宣布将停止向社区免费提供 BitKeeper 版本。
这该怎么办?难道Linus要回到邮件列表和文件diff的时代?
自1991年以来头一遭,Linus暂停了Linux的开发,卷起袖子准备自己开发一个SCM。
2005 年 6 月,开始该项目开工后的几天内,Linus 的 Git已实现自托管。
几周之内,它就准备好host Linux 的内核。
几个月之内,Git就达到了完整的功能。
Linus 将项目的维护工作交给了最热情的贡献者 Junio Hamano,并再次全职投入 Linux 开发。
大神就是大神。
3、走上“绝路”
失去了Linux这个最大的“活广告”之后,BitKeeper走上了一条稳定发展的“羊肠小道”。
BitKeeper公司有20来人,年收入几百万美元。
说实话,活得不错。
但是人比人气死人,BitKeeper最大竞争对手是Rational的ClearCase,每年营收高达3.5亿美元。
时间来到2016年,Git已经统治世界,BitKeeper终于宣布开源,但一切都晚了。
2020年,撑不下去的BitKeeper停止了开发。
图片
2015年,Git诞生10周年之际,有人问Larry:“当年你没有开源BitKeeper,是否后悔?”
Larry说:“后悔?当然了,如果我当时能搞清楚开源的作用,我毫不犹豫地就去做了......”
如今的Larry已经退休,生活滋润,他最喜欢的事情就是驾驶自己心爱的小船,出海钓鱼。