关于Linux、git和github的一些历史事件

栏目: 编程工具 · 发布时间: 5年前

关于 <a href='https://www.codercto.com/topics/18170.html'>Linux</a> 、git和github的一些历史事件

一、Linux和git

7月,阿里云参加了LinuxCon + ContainerCon + CloudOpen中国(简称LC3)大会,并做了重要分享。详见。

没想到linux和git之间的故事是这样开始的。来自廖雪峰的博客中有这样一段描述:

很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

二、从git到github,还有10个故事是这样的

介绍这样的文章有一些,但硅星人今年4月所发的,题为《全球最大同性交友网站GitHub,今天10岁了》,作者是光谱,内容比较详细。

1999年上线的Source Forge,因为免费一度是世界上最受欢迎的开源软件代码托管网站。然而Google担心它一家独大,上线了自家的代码托管网站Google Code。

2005年,Linux的缔造者Linus Torvalds对现有的代码托管 工具 效率不满意,便自己做了一个名叫Git的版本控制工具。Git颇具革命性,允许大量开发者同时为源代码贡献新代码,彼此间并不影响,最重要的在于它是开源的。

三个来自旧金山的年轻人认为Git的潜力巨大,在2008年正式推出了GitHub,一个基于Git的代码托管网站。他们没想到,GitHub 后来击败了元老Source Forge和背景强大的Google Code,成为了全世界最受欢迎的代码托管网站。

2008年4月10日,GitHub正式上线。到今年,GitHub刚好10岁!

去年5月底,GitHub完成了第1亿个pullrequest(PR合并请求)命令。截至今天,GitHub上已经拥有超过8000万个repo(代码仓库),活跃用户达到2700万人,超过150万家公司和机构进驻。

由于 程序员 群体里缺少女性,拥有高纯度男性用户的GitHub,也被戏称为全球最大的同性交友网站……

“10年前的今天,GitHub正式上线。最一开始,我们只有一个特别简单的目标:连接所有的开发者,让他们用Git更轻松地进行项目协作,”联合创始人ChrisWanstrath在博客里写道,“10年过去了,我们作为公司,作为平台都有了很大的变化,但GitHub存在的意义从未改变。”

作为对十周年的纪念,GitHub团队并没有选择回顾公司历史,而是整理了在他们眼中过去10年间的几大里程碑事件。这很GitHub——这份光荣,其实不止属于平台自己,更属于那些为了让这个世界变得更好,通过Git、GitHub,用JS、 Python 和各种语言贡献代码的人们。

以下,就是这些曾在计算机业界和GitHub的发展中创造历史的事件。

20080403:Rails转移至GitHub

Rubyon Rails(Rails),是一个用 Ruby 语言编写的开源web应用框架。它提高了开发复杂网页的效率,是计算机界最受欢迎的开源项目之一。2008年4月,Rails做出了表率,将版本控制从SVN换成了Git,并成为第一个进驻GitHub的大型开源项目。

当时,GitHub还处在内测阶段,没有正式上线。GitHub本身就是用Rails写的,这件事为GitHub带来了不小的影响力。

20090103:比特币诞生

2009年诞生后,比特币于2010年正式开源,并托管在了GitHub上。比特币是世界上第一个去中心化的数字货币,它的诞生和开源更是引发了一场同时波及金融和科技,甚至更多行业的革命。

至今,比特币项目接受了超过500名用户贡献的代码。比特币的底层技术“区块链”被广泛视为下一个革命性的计算机技术,比特币项目已经被fork(代码库复制)逾1.8万次,大量的区块链、数字货币项目在GitHub上开源,其中很多都来自比特币源代码。

20090521:Node.js发布

你可能听说过网络开发分前端后端之说,前端管网页呈现,后端管数据输出。然而这两者不是孤立的,前端开发也会涉及到确保后端数据能够正确呈现出来,所以大量采用JavaScript(JS)语言的前端人士需要学习后端 PHP 、Ruby之类的后端语言,很麻烦。

Node.js的主要意义是让前端用JS即可完成前端需要的大量开发任务,开发适配多种操作系统的复杂服务器端应用。简单来说,它同时把前端和后端工程师从各自不熟悉的领域内解放了出来。2009年5月底,Node.js正式在GitHub上发布,收到了不少前端和后端人士的追捧,被认为是未来趋势。

2014年,Node.js主要贡献者对这个项目的官方管理公司不满,于是自立门户,fork原版代码做了一个社区驱动而不是公司化运营的替代品,名叫io.js。这个项目一度比Node.js更受欢迎,但后来Node.js在开源治理上有了改善,两个项目再次合并。

在整个过程中,GitHub的开放机制确保了社区拥有自主权力,不必服从于开源项目的所有者。在必要的时候,fork是一种力量,也是一种态度。

20101126:RailsGirls第一次线下聚会

2010年,一群用Rails做开发的女程序员在芬兰赫尔辛基举办了第一次线下聚会。

三年后,他们专为女性和LGBTQ人士开设了一个夏令营RailsGirlsSummerofCode。这个开源培训项目帮助开源社区改善了性别多样性,为解决女性在科技行业内受到的结构性歧视做出了贡献。

20110101:TravisCI持续集成的第一个PR

持续集成(CI)从像GitHub这样的代码库里按照频率提取最新的代码,自动构建项目并进行测试。持续集成并不能消除bug,而是让它们非常容易发现和改正。比如下面这个buildpassing就是持续集成工具显示的,它的大概意思是当前版本测试通过,没有出现bug。

而TravisCI是最受欢迎的,开源的持续集成工具。2011年元旦那天,它完成了第一个PR。TravisCI和GitHub的整合,让代码投入生产环境的整个过程变得更高效了

20120101:JS成为GitHub第一大语言

最一开始是一种网页脚本语言,JS和HTML、CSS并列网页开发三大语言。被JS坑过的程序员经常讽刺它是一种不完整的语言,有一个很古老的段子:写C的看不起写C++的,写C++的看不写 Java 的,写Java的看不起写JS的,写JS的看不起美工,周末大家都在加班,美工带着女朋友旅游去了。

然而编程语言的鄙视链,总是和受欢迎程度相反。从2012年开始,JS超越了Ruby、Java和Python,成为了GitHub上最受欢迎的语言,直至今天仍霸占王座。

2013:GitHub用户破百万

开源社区的发展使GitHub获得了惊人的增速,在用户数和repo数上实现了两座里程碑:2013年,用户数突破了100万;同年12月,GitHub的repo总数超过了1000万,其中超过一半是当年创建的,仅11月就增加了100万个。

别光看数字多,这一年里增加的repo质量也很不错:白宫的ProjectOpenData、 Docker 等等。亚马逊AWS、Facebook、Google、微软、Twitter、Netflix等知名公司也上传了自家的项目。

20140609:Docker1.0发布

被视为革命性技术的开源容器引擎 Docker,2013年在GitHub上创建了repo,一年时间里下载量超过275万份。2014年,Docker1.0终于正式发布了。

像Docker和Kubernetes(K8S)这样的开源项目开启了一场容器化运动。开发、投产和运维的难度降低,小型公司不再需要花费精力在基础架构上,可以更专注于核心业务开发。

20140721:DjangoGirls第一次线下聚会

交友平台不是开玩笑……GitHub的程序员社交特性使得很多开发者通过它实现了线下聚会。它让程序员们更容易结识彼此,而这对于女生尤为重要。

2014年德国柏林,Django女性开发者第一次在线下举办聚会,她们的组织仍在为改善性别多样性而努力着。

20140723:微软开源.NET

虽然随着移动互联网的快速发展,没跟上时代的.NET已经走向衰落,微软向开源社区示好,仍然被视为开源业界的一个历史性事件。微软创立了一个开源行动,然后把所有的开源代码包括.NET都在GitHub上开源。数千名工程师也让微软成为了GitHub上最为活跃的公司。

.NET的开源带起了一波节奏,随后越来越多的大公司迁移到了GitHub,放弃了自己的代码托管网站或过时的代码库。

2015:虚幻引擎4免费和大量游戏相关开源

2015年3月2日,虚幻引擎4完全免费了。EpicGames放出了百分之百的C++原始代码,虽然独立开发者想要开发AAA级别大作还是需要资金,但至少现在他们手上的虚幻引擎4和大厂手里的没有任何区别。

EpicGames对社区的恩惠得到了报答。在虚幻引擎最近一次4.19版本发布,包含了128个来自社区的贡献。

除了虚幻引擎,还有不少游戏引擎、库和游戏代码在2015年上了GitHub,比如《毁灭战士》和《波斯王子》。最有趣的应该是2048,它的开源带来了上百款类似的消除游戏……总的来说是件好事。

20150922:GitHubClassroom发布

除了工业界,学术界,包括大学和高中也可以利用GitHub进行教育了。GitHubClassroom改进了编程课代码管理、分发和作业收集。看上去是在做慈善,其实此举很聪明:GitHub普及要从娃娃抓起,尽管它已经碾压了其它一切竞争对手。

20151203:苹果开源Swift

苹果的新编程语言Swift具有函数式编程和面向对象编程的诸多特性,也兼容苹果平台之前的开发语言C、Objective-C,也是一个强类型语言而非脚本语言,也很注重安全性……对于苹果开发者而言,Swift是件大好事,而有什么比Swift开源更让人大快人心呢?

如果说微软带起了一波节奏,那么苹果Swift编程语言的开源才真的让其它科技公司都信服。老大哥都开源了,我们还有什么理由不跟随呢?

20160709:阿波罗11号代码开源

60年代的程序员也有幽默感,不信就去GitHub上看看阿波罗11号的代码。比如这个:临时代码一直用到了月球上。

你可能会感兴趣,50年前的程序员和代码是什么样的?隆重向你介绍阿波罗11号计算机系统工程师,MIT的MargaretHamilton:

阿波罗11号代码开源地址:https://github.com/chrislgarry/Apollo-11

2017:Python进驻GitHub

Python因数据科学和深度学习的爆发重新开始受到关注,在2015年它成为了GitHub上第三受欢迎的语言,2017年升至第二。当各大公司和人工智能专家开始倡导“人工智能普及化”(democratizeAI)时,Python也终于来到了GitHub。

这使得Python在GitHub上的流行越发势不可挡,使用Python语言的新repo数量,环比增长达到了70%。

20170215:TensorFlow1.0发布

革命性的深度学习库,就连非专业人士都听说过TF——主要可能因为AlphaGo击败了李世乭和柯洁。2016年,TensorFlow成为了整个GitHub上fork最多的项目。

除了TF,Caffe2、DeepSpeech等大量深度学习工具也都相继开源。使用这些工具,研究者可以创建面向不同领域的深度学习模型,包括并不限于电子游戏、弈类游戏、音乐、绘画、医疗、金融等等,带来新的技术范式和商业模式,显著改善人们的生活。

20180410:十周年,再出发

在2017年,用户提交了超过2.9万亿条代码,GitHub也合并的PR终于突破了1亿。2018年,GitHub用户总量达到2700万,项目总数超过了8000万。

人工智能、区块链、量子计算……许多全新的计算机技术和全新的计算范式已经或正在赶来,代码和数据在某种程度上已经取代了石油,成为了人类的新血液。

在这样的大背景下,GitHub太重要了,但它也面临着和10年前SourceForge等前辈相同的命运:全世界的开源代码都在这里,过度的中心化会否增加风险?在享受GitHub带来便利的同时,越来越多人都会多一个心眼——代码上传之后,本地还是不要rm留个底吧。

最后,给一些GitHub整理的资料。首先,按照PR统计的受欢迎语言,JS、Python、Java、Ruby、PHP:

热门关键字,机器学习、游戏、iOS、API、博客、网站、深度学习、Ardiono:

fork最多的项目,TF、Bootstrap、gitignore;贡献者最多的项目,VSCode、ReactNative、NPM:

review最多的项目,DefinitelyTyped、K8S、Homebrew;讨论最多的repo,K8S、Origin、CMSSW

注册用户最多的国家:中国排第二。

三、65亿美元被收购。

6月5日,官宣75亿美元,微软收购的GitHub。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

调试九法

调试九法

David J.Agans / 赵俐 / 人民邮电出版社 / 2010-12-7 / 35.00元

硬件缺陷和软件错误是“技术侦探”的劲敌,它们负隅顽抗,见缝插针。本书提出的九条简单实用的规则,适用于任何软件应用程序和硬件系统,可以帮助软硬件调试工程师检测任何bug,不管它们有多么狡猾和隐秘。 作者使用真实示例展示了如何应用简单有效的通用策略来排查各种各样的问题,例如芯片过热、由蛋酒引起的电路短路、触摸屏失真,等等。本书给出了真正能够隔离关键因素、运行测试序列和查找失败原因的技术。 ......一起来看看 《调试九法》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具