网易首页 > 网易号 > 正文 申请入驻

他只想在乡村安静地写代码,却一不小心改变了全球程序员的命运!

0
分享至

0 1

天才程序员

1993年,开发著名软件Cygwin的公司Cygnus Solutions招募了一名天才程序员吉姆·金登 (Jim Kingdon)。

但是吉姆并不想搬到Cygnus所在硅谷,他想住在弗吉尼亚州一个乡村的公社(commune )里。

Cygnus公司很重视人才,他们专门为吉姆·金登一个人拉了一条帧中继线(这在当时价格可不低),让他可以远程工作。

问题是Cygnus使用CVS来管理源代码,CVS是荷兰阿姆斯特丹自由大学讲师Dick Grune在80年代开发的一个程序,当时只能在单机使用。

(Dick Grune)

用户需要从代码仓库中checkout代码副本,存放在自己的home目录,修改后commit回代码仓库。

所以住在乡村的吉姆·金登虽然有了网络,但是还无法远程登录CVS,在家工作。

这根本难不住吉姆这样的天才黑客:让CVS支持网络不就行了吗?

说干就干,他拿到CVS的源码,研究了一番,把CVS拆分成了客户端和服务器两个部分。

1993年的网络非常缓慢,吉姆·金登一不做二不休,干脆设计了一个全新的、高效的通信协议,极大地减少了网络往返次数,降低了延迟。

服务器暴露在互联网上,必然要考虑安全问题,Jim Kindon于是又增加了Kerberos 认证。

一套组合拳让CVS脱胎换骨,成了当时非常先进的软件,大大超越了同时代的许多工具。

Cygnus 是一家扎根于黑客文化的公司,也很乐意看到吉姆·金登对CVS做出这样的修改。

现在,吉姆·金登可以愉快地远程工作了,从湾区的 CVS 存储库中取出代码,将其checkout弗吉尼亚自己的计算机上,随心所欲地进行开发,并在完成后将其commit回去。

0 2

1990s:CVS黄金时代

照理说,开发了这么一个革命性的软件,又遇上了开源的浪潮,全球的开发者都是潜在的用户,吉姆·金登完全可以成立一个公司,提供技术支持和咨询服务,弄不好就走上人生巅峰了。

但吉姆·金登魔改CVS,只是为了方便自己工作,只想在公司内部使用,根本没有想到对外公开!

不仅如此,在解决了自己的问题以后,他就把注意力转到了别的方面,从黑客界消失了。

这时候第二个吉姆出现了,吉姆·布兰迪(Jim Blandy)是吉姆·金登的大学室友,他和朋友进行远程协作时也遇到了类似的问题,只能通过电子邮件来发代码补丁,极其麻烦。

这时候他听说了被魔改的网络版CVS,大喜过望,马上给吉姆·金登写信,希望能使用魔改版。

吉姆·金登当然同意分享代码,但有一个条件:不能问他问题!

因为他对维护开源软件的各种琐事没有兴趣,也不想处理用户的支持请求。

吉姆·布兰迪就想,这么有用的软件,没人做技术支持,多可惜啊!

看到商机的吉姆和朋友干脆成立了一家叫做Cyclic Software的公司,专门提供网络版CVS(被大家称为Cyclic CVS)的技术支持和咨询服务。

开源、免费、跨平台的Cyclic CVS彻底改变了开源协作方式,GNU项目、FreeBSD、Apache HTTP Server、KDE、GNOME、Mozilla、Perl、Python等著名开源项目纷纷采用CVS保存自己的代码库。

当时最大的开源平台SourceForge也在用CVS,CVS成了开源世界的标准。

0 3

2000s:SVN成功接棒

虽然Cyclic CVS风靡全球,解决了开源世界的协作的难题,但是它最初的设计缺陷也让用户抱怨连连:

1.缺乏原子提交

在 CVS 中,每个文件的更改是独立提交的,多个文件的变更没有任何关联。

A 和 B 文件属于同一次修改,但由于并非原子提交,可能 A 提交成功,而 B 失败,导致代码库处于不完整状态。

2.update 操作时非常低效

CVS 并不存储整个项目的完整快照,而是对每个文件单独管理版本,如果代码库有 10,000 个文件,但只有 3 个文件被修改,CVS 仍然需要通过网络检查全部 10,000 个文件,造成巨大的性能浪费。

3.创建分支非常困难。

CVS 创建分支时,实际上是为每个文件的历史记录打上一个分支标记,当代码库包含数十万文件,非常耗时。

在整个90年代,CVS没有好的免费开源替代品,大家还是不得不使用。

每天都在使用CVS的吉姆·布兰迪一直在构思,怎么重新设计一下CVS,彻底解决这些问题。

新系统的名称他都想好了,叫Subversion。

正好,一个叫做CollabNet的公司也受不了CVS了,掏钱资助吉姆·布兰迪等5个人把Subversion给开发出来。

当时吉姆已经在红帽公司工作,红帽也非常慷慨:你去吧,什么时候把Subversion开发出来再回来!

开发工作于2000年2月启动,5人目标明确,配合默契,按模块分工,每个人专注于自己的部分,吉姆主要负责 服务器端,而其他人分别负责命令行工具、工作目录库等部分。

一开始他们还使用CVS来管理Subversion的源码,一年以后,Subversion的主要功能已经完成,可以开始“吃自己的狗粮”,用Subversion来管理Subversion。

Subversion彻底解决了CVS的问题,实现了原子提交,迅速地创建分支等功能。

大家看到更好用的Subversion,纷纷抛弃CVS,上了Subversion的大船。

SubVersion成为了21世纪头10年最主流的版本控制系统。

0 4

2010s:Git称王

就在Subversion如日中天的时候,2005年,Linux社区发生了一件大事!

由于有人对BitKeeper做逆向工程,BitKeeper停止向Linux社区提供免费版本。

Linus只好暂停了Linux的开发,卷起袖子自己开发了一个版本管理软件:Git。

和Subversion相比,BitKeeper和Git代表了另外一个重要的方向:分布式版本管理。

每个人都有一个本地的代码仓库,可以在本地随意折腾,即使没有网络也具备完整的版本管理的能力。本地开发结束后后向服务器端的代码仓库提交就行。

这种方式更加符合开源软件的全球化协作,所以Git开始走出Linux开发社区,慢慢地蚕食Subversion的市场。

2008年,GitHub成立,不但给Git 用户提供了便捷的代码托管服务和丰富的协作功能(Pull Request,Issues),还让程序员可以关注自己感兴趣的用户和项目,成为程序员社交的重要平台。

短短的两三年时间内,GitHub吸引了Ruby on Rails,jQuery,Node.js,Bootstrap、Redis、Python、Puppet、Chef、Elasticsearch等一大批著名项目入驻。

到了2015年,Git 成为程序员最常用的版本控制工具,占据绝对主导地位。

SVN 的市场份额逐渐缩小,成为少数遗留项目/特殊项目的选择。

就连Subversion的作者吉姆也开始奉劝别人:别用使用SVN了,它已经过时了......

从CVS到SVN再到Git,20年间代码版本管理工具迭代了三次。

如今Git是全球霸主,被大家使用得多了,它的痛点问题也在慢慢暴露。

颠覆它的工具可能正在酝酿之中,也许某一天,Linus也会说:别用Git了,它已经过时了......

全文完,觉得不错的话点个赞或者在看吧!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
10年麻将馆老板囗述:凡是爱打麻将的,没有一个人日子是过得好的

10年麻将馆老板囗述:凡是爱打麻将的,没有一个人日子是过得好的

小噎论事
2026-04-24 17:15:21
为什么今年没人提“消费降级”了?

为什么今年没人提“消费降级”了?

黯泉
2026-05-20 17:47:21
34岁周冬雨无戏可拍,原因简单非年龄片酬

34岁周冬雨无戏可拍,原因简单非年龄片酬

残梦断忆
2026-06-20 23:28:43
普京:俄方愿基于伊斯坦布尔协议等与乌谈判

普京:俄方愿基于伊斯坦布尔协议等与乌谈判

财联社
2026-06-23 23:45:40
上海汤泉集体关门:重资产神话破灭

上海汤泉集体关门:重资产神话破灭

三农老历
2026-06-23 17:16:47
丰田第六代THS混合动力亮相,综合续航一千四百公里,冲击国产混动市场

丰田第六代THS混合动力亮相,综合续航一千四百公里,冲击国产混动市场

华庭讲美食
2026-06-22 18:12:41
大案纪实:酒泉发生连环凶案,两个看似毫不相干的死者竟暗藏关联

大案纪实:酒泉发生连环凶案,两个看似毫不相干的死者竟暗藏关联

深夜探案馆
2026-06-24 02:27:05
收下2160万美元,他当年拒绝7000万,赌到2冠和肥约,安心养老了

收下2160万美元,他当年拒绝7000万,赌到2冠和肥约,安心养老了

大西体育
2026-06-24 11:07:39
金莎辟谣身高是一米五几:我真的不是一米五几,我实际上就是166

金莎辟谣身高是一米五几:我真的不是一米五几,我实际上就是166

韩小娱
2026-06-23 08:29:04
就是他,让外蒙古独立出去,从中国“蒙古省”成为蒙古国

就是他,让外蒙古独立出去,从中国“蒙古省”成为蒙古国

墨策讲历史
2026-06-22 00:35:06
布泽尔脸都笑烂了!灰熊重建期他可安心刷数据:莫兰特仍在兜售中

布泽尔脸都笑烂了!灰熊重建期他可安心刷数据:莫兰特仍在兜售中

颜小白的篮球梦
2026-06-24 11:53:39
退休要变天?若不出意外的话,2026年延迟退休将迎来4大转变

退休要变天?若不出意外的话,2026年延迟退休将迎来4大转变

阿莱美食汇
2026-06-24 08:37:56
突发!韩国股市,又跳水了

突发!韩国股市,又跳水了

证券时报
2026-06-24 11:46:21
163的王祖蓝和175的老婆换裤子穿,一个成人行拖把,一个成7分裤

163的王祖蓝和175的老婆换裤子穿,一个成人行拖把,一个成7分裤

木子爱娱乐大号
2026-06-22 10:21:23
2026年5月1日起从严整治,体制内人员务必严守九条红线!

2026年5月1日起从严整治,体制内人员务必严守九条红线!

细说职场
2026-06-24 11:06:38
谈了18个小时!终于迎来结果,伊朗代表当场破防,全程咬牙没离场

谈了18个小时!终于迎来结果,伊朗代表当场破防,全程咬牙没离场

流史岁月
2026-06-23 20:05:05
雷霆17顺位选中奥科里并送至灰熊,随后灰熊将其送到活塞换来21号签+3次轮

雷霆17顺位选中奥科里并送至灰熊,随后灰熊将其送到活塞换来21号签+3次轮

懂球帝
2026-06-24 10:25:18
“全家福3年少2人、19岁女主播独自撑家”,卖惨账号调查:爷爷确患癌,但虚构爸妈去世,背后疑有公司影子

“全家福3年少2人、19岁女主播独自撑家”,卖惨账号调查:爷爷确患癌,但虚构爸妈去世,背后疑有公司影子

极目新闻
2026-06-24 09:00:42
血亏!曼联 5000 万水货世界杯现形,现在 2500 万甩卖都没人要

血亏!曼联 5000 万水货世界杯现形,现在 2500 万甩卖都没人要

奶盖熊本熊
2026-06-24 05:03:37
波乌关系与科(康)城是否失守,这并不影响乌克兰

波乌关系与科(康)城是否失守,这并不影响乌克兰

山河路口
2026-06-24 11:52:54
2026-06-24 14:19:00
Java精选
Java精选
一场永远也演不完的戏
1795文章数 3859关注度
往期回顾 全部

科技要闻

豆包专业版上线:定价68-500元每月

头条要闻

内塔尼亚胡:执政30年 没服过任何一个美国总统

头条要闻

内塔尼亚胡:执政30年 没服过任何一个美国总统

体育要闻

字母哥,会把凯尔特人拆了吗?

娱乐要闻

向佐向佑兄弟合体直播!母子终于和解

财经要闻

爆料人:如果我错了,赔偿坐牢都接受

汽车要闻

施鹏泽:为什么奥迪E7X强调座舱气味安全?

态度原创

数码
手机
艺术
旅游
家居

数码要闻

海尔:未来两年家用主动智能空调将全面普及 空调将成全屋空气中枢

手机要闻

小米:电池升级服务预计今年第四季度增小米14、14 Pro手机支持

艺术要闻

Ui ART|新展首发|第二次抵抗:跨世纪以来的另一种艺术

旅游要闻

山为骨,水为血,天地为窖,时光为曲,酿一杯迎驾山河

家居要闻

绿意盎然 自然之境

无障碍浏览 进入关怀版