全球最大同性交友网站的核心技术,居然是一个人花2周写出来的?

本文原创于微信公众号:差评  作者:差评君

不少差友们应该知道,编辑部小伙伴们虽然本职都是写简体中文的,但有那么一两个奇葩也写过代码( 比如在下 )。

500我们曾经和大多数程序员一样,常常厮混于一个神奇的网站 —— GitHub 。

500

差评君以前在文章中常常提起 GitHub ,平时还有不少选题来自 GitHub 上的项目。

GitHub 的广泛定义是「 全球最大的代码托管网站 」,对许多人来说它的作用是托管代码,方便程序员们一起给同一个项目的代码添砖加瓦。

听起来很简单,但上面的东西很不简单。。。

比如说全球大部分服务器电脑都在用的操作系统内核 Linux 的源代码就静静地躺在上面。

500

500不少人正在使用的安卓手机就是基于这个项目开发的,想想现在全世界有多少安卓手机。

由于 GitHub 上开源项目众多,并且气氛相当自由,许多程序员出于兴趣建立起了不少很有趣的项目。

例如之前差评君写过的,模仿阿诺德施瓦星格饰演的终结者台词语气的编程语言 ArnoldC ,它的源代码就是某位大佬出于无聊而写出来的。

500

不过也有的项目并不是代码,例如这个「 Dress 」是一群程序员听信了「女装提升代码效率」而纷纷上传自己女装照的「 开源相册 」。

500

由于技术人士之间的在线交流氛围往往非常友好, GitHub 还有个江湖别号,叫做「 全球最大的同性交友网站 」。

500

说了这么多,想必不管写不写代码,各位都对 GitHub 有个初步了解了。但它为啥叫做「 GitHub 」呢?

因为支撑着它背后的核心技术叫做 Git ,它的来历很有意思。

500

在继续我们的故事前,差评君得先聊聊 Git 是个啥。

它是一套「 版本控制系统 」( Version Control System ),打个简单的比方吧:如果把写代码比作写文章,版本控制系统就类似于 Word 里的历史版本功能 —— 写代码里一些修修改改的过程能用版本控制系统捋得明明白白。

Git 的作者林纳斯托瓦兹是程序员圈子里神一般的存在,他还有个更加广为人知的身份——前面提到的操作系统 Linux 内核的第一作者。

500

Linux 是一个公开的项目:来自世界各地的程序员都为它献祭过头发,贡献过代码,给这个伟大的操作系统内核添砖加瓦。。。所以你没想错,这群技术宅肯定有个在线社区。

500

林纳斯作为 Linux 项目和社区的老大,早些年却有点缺心眼儿,他不用版本控制系统。。。

2000 年出头那会儿不是没有版本控制系统,林纳斯就是嫌麻烦不喜欢用,大家伙做个修改要同步一下代码,就交给林纳斯本人复制粘贴,非常粗糙。。。

500

500但问题来了, Linux 项目的代码量有上千万行。。。你想想看上万人写同一本千万字史诗巨著,然后没有一点修改记录管理是啥场景?—— 犯了错根本没办法查。

书要是错了也就错了,代码错了的话整个程序就没办法运行了,鬼知道林纳斯复制粘贴代码的时候有没有喝酒喝 High 了呢。

于是大家在网上开启了吐槽模式。。。好在大佬对待这么重要的玩意儿也听话,毕竟不能让大家伙的心血毁于一旦,就用了一个叫做 BitKeeper 的版本控制系统。

500

BitKeeper 有个在当时很新颖的功能,叫做「 分支 」,差评君就不细表了,懂行的差友们肯定现在肯定很熟悉它是干啥的。

虽说 BitKeeper 在当时算是个好用趁手的工具,但林纳斯当年这个选择在社区里争议很大。。。因为 BitKeeper 不是自由软件,而是个商业软件,这在 Linux 社区这种开放氛围浓厚的地方属于大逆不道的玩意儿。

500你想想啊,大部分人都是出于对技术的追求无偿维护 Linux 的,你这拿一个收费软件来管理,软件的钱怎么掏?

这个情况在当年倒没有成为一个问题:因为林纳斯和 Linux 名气太响, BitKeeper 确实没向这些程序猿们收钱,但他们付出了其他代价,比如必须接受 BitKeeper 母公司的排他协议。

总之,作为商业软件的 BitKeeper 惹毛了 Linux 开发者,然后有位哥们儿就做起了黑客的干活:破解这个软件!

这位兄弟叫做安德鲁 · 垂鸠,也算是变相改变世界了▼

500

500这操作人家商业软件公司老板怎么忍?

BitKeeper 的拥有者拉里 · 麦沃伊马上发出了一番警告,但干破解的兄弟不听继续作死。。。于是拉里选择中止合作, Linux 社区不能用 BitKeeper 了。

这要是放其他社区估计这兄弟要被人肉喷死,但 Linux 社区有个神一般的林纳斯,他做了一件在他人看来难以想象的事情:停下了 Linux 内核的维护工作。

要知道,林纳斯这位仁兄自从 1991 年开始就没停止过给 Linux 输血,这动作不亚于差评君和你说自己停止了呼吸一样。。。

500

但他不是撂挑子不干了,而是一个人闭关开始撸代码,干脆写一个 BitKeeper 的替代品,你没猜错,它叫做 Git !

关于 Git 的开发时间,江湖传言有的说是几天,有的说是十几天,但总之没有超过一个月的。但江湖上有一个共同的认知:Git 它好用,还开源免费!

至于 BitKeeper 就比较惨了,市场急剧萎缩, 2016 年终于想通了宣布开源也鲜有人问津。

500

500于是,几乎全世界都有开发者在用 Git 这玩意儿。

后来有人基于 Git 创造的网站 GitHub 也发展到了如今这么大规模,促进了全世界的科技发展。

关于林纳斯开发 Git 的故事,差评君想了这么个比方:有个人做了类似打造万里长城一样的壮举,但是他就用了十几天,而且独自完成。。。

有时候,科技圈的魅力不光来自于产品,也来自于这些伟大的个体,是科技解放了他们的大脑和生产力,让他们改变了世界。

500

全部专栏