点击上方“程序员小灰”,选择“置顶公众号”
有趣有内涵的文章第一时间送达!
GitHub 托管了大量的软件代码,
成为了开源繁荣的注脚。
它被称为全球最大同性交友网站……
陪伴我们已经走过 10 年时间
本文作者:光谱
1999 年上线的 SourceForge,因为免费一度是世界上最受欢迎的开源软件代码托管网站。然而 Google 担心它一家独大,上线了自家的代码托管网站 Google Code。
2005 年,Linux 的缔造者 Linus Torvalds 对现有的代码托管工具效率不满意,便自己做了一个名叫 Git 的版本控制工具。Git 颇具革命性,允许大量开发者同时为源代码贡献新代码,彼此间并不影响,最重要的在于它是开源的。
三个来自旧金山的年轻人认为 Git 的潜力巨大,在 2008 年正式推出了 GitHub,一个基于 Git 的代码托管网站。他们没想到,GitHub 后来击败了元老 SourceForge 和背景强大的 Google Code,成为了全世界最受欢迎的代码托管网站。
Google 的开源代码经理 Chris DiBona 对 GitHub 给予高度评价:
2008 年 4 月 10 日,GitHub 正式上线。
前天,GitHub 终于10 岁了!
去年 5 月底,GitHub 完成了第 1 亿个 pull request(PR 合并请求)命令。截至今天,GitHub 上已经拥有超过 8000 万个 repo(代码仓库),活跃用户达到 2700 万人,超过 150 万家公司和机构进驻。
由于程序员群体里缺少女性,拥有高纯度男性用户的 GitHub,也被戏称为全球最大的同性交友网站……
GitHub repo 按照语言划分的男女用户比例,最上面的绿色是确认的女用户(2014 年数据)
“10 年前的今天,GitHub 正式上线。最一开始,我们只有一个特别简单的目标:连接所有的开发者,让他们用 Git 更轻松地进行项目协作,”联合创始人 Chris Wanstrath 在博客里写道,“10 年过去了,我们作为公司,作为平台都有了很大的变化,但 GitHub 存在的意义从未改变。”
作为对十周年的纪念,GitHub 团队并没有选择回顾公司历史,而是整理了在他们眼中过去 10 年间的几大里程碑事件。这很 GitHub——这份光荣,其实不止属于平台自己,更属于那些为了让这个世界变得更好,通过 Git、GitHub,用 JS、Python 和各种语言贡献代码的人们。
以下,就是这些曾在计算机业界和 GitHub 的发展中创造历史的事件。
20080403: Rails 转移至 GitHub
Ruby on Rails (Rails),是一个用 Ruby 语言编写的开源 web 应用框架。它提高了开发复杂网页的效率,是计算机界最受欢迎的开源项目之一。2008 年 4 月,Rails 做出了表率,将版本控制从 SVN 换成了 Git,并成为第一个进驻 GitHub 的大型开源项目。
当时,GitHub 还处在内测阶段,没有正式上线。GitHub 本身就是用 Rails 写的,这件事为 GitHub 带来了不小的影响力。
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:Rails Girls 第一次线下聚会
2010 年,一群用 Rails 做开发的女程序员在芬兰赫尔辛基举办了第一次线下聚会。
三年后,他们专为女性和 LGBTQ 人士开设了一个夏令营 Rails Girls Summer of Code。这个开源培训项目帮助开源社区改善了性别多样性,为解决女性在科技行业内受到的结构性歧视做出了贡献。
20110101:Travis CI 持续集成的第一个 PR
持续集成 (CI) 从像 GitHub 这样的代码库里按照频率提取最新的代码,自动构建项目并进行测试。持续集成并不能消除 bug,而是让它们非常容易发现和改正。比如下面这个 build passing 就是持续集成工具显示的,它的大概意思是当前版本测试通过,没有出现 bug。
而 Travis CI 是最受欢迎的,开源的持续集成工具。2011 年元旦那天,它完成了第一个 PR。Travis CI 和 GitHub 的整合,让代码投入生产环境的整个过程变得更高效了
最一开始是一种网页脚本语言,JS 和 HTML、CSS 并列网页开发三大语言。被 JS 坑过的程序员经常讽刺它是一种不完整的语言,有一个很古老的段子:写 C 的看不起写 C++ 的,写 C++ 的看不写 Java 的,写 Java 的看不起写 JS 的,写 JS 的看不起美工,周末大家都在加班,美工带着女朋友旅游去了。
然而编程语言的鄙视链,总是和受欢迎程度相反。从 2012 年开始,JS 超越了 Ruby、Java 和 Python,成为了 GitHub 上最受欢迎的语言,直至今天仍霸占王座。
开源社区的发展使 GitHub 获得了惊人的增速,在用户数和 repo 数上实现了两座里程碑:2013 年,用户数突破了 100 万;同年 12 月,GitHub 的 repo 总数超过了 1000 万,其中超过一半是当年创建的,仅 11 月就增加了 100 万个。
别光看数字多,这一年里增加的 repo 质量也很不错:白宫的 Project Open Data、Docker 等等。亚马逊 AWS、Facebook、Google、微软、Twitter、Netflix 等知名公司也上传了自家的项目。
20140609:Docker 1.0 发布
被视为革命性技术的开源容器引擎 Docker,2013 年在 GitHub 上创建了 repo,一年时间里下载量超过 275 万份。2014 年,Docker 1.0 终于正式发布了。
像 Docker 和 Kubernetes (K8S) 这样的开源项目开启了一场容器化运动。开发、投产和运维的难度降低,小型公司不再需要花费精力在基础架构上,可以更专注于核心业务开发。
20140721:Django Girls 第一次线下聚会
交友平台不是开玩笑……GitHub 的程序员社交特性使得很多开发者通过它实现了线下聚会。它让程序员们更容易结识彼此,而这对于女生尤为重要。
2014 年德国柏林,Django 女性开发者第一次在线下举办聚会,她们的组织仍在为改善性别多样性而努力着。
20140723:微软开源 .NET
虽然随着移动互联网的快速发展,没跟上时代的 .NET 已经走向衰落,微软向开源社区示好,仍然被视为开源业界的一个历史性事件。微软创立了一个开源行动,然后把所有的开源代码包括 .NET 都在 GitHub 上开源。数千名工程师也让微软成为了 GitHub 上最为活跃的公司。
.NET 的开源带起了一波节奏,随后越来越多的大公司迁移到了 GitHub,放弃了自己的代码托管网站或过时的代码库。
2015:虚幻引擎 4 免费和大量游戏相关开源
2015 年 3 月 2 日,虚幻引擎 4 完全免费了。Epic Games 放出了百分之百的 C++ 原始代码,虽然独立开发者想要开发 AAA 级别大作还是需要资金,但至少现在他们手上的虚幻引擎 4 和大厂手里的没有任何区别。
Epic Games 对社区的恩惠得到了报答。在虚幻引擎最近一次 4.19 版本发布,包含了 128 个来自社区的贡献。
除了虚幻引擎,还有不少游戏引擎、库和游戏代码在 2015 年上了 GitHub,比如《毁灭战士》和《波斯王子》。最有趣的应该是 2048,它的开源带来了上百款类似的消除游戏……总的来说是件好事。
20150922:GitHub Classroom 发布
除了工业界,学术界,包括大学和高中也可以利用 GitHub 进行教育了。GitHub Classroom 改进了编程课代码管理、分发和作业收集。看上去是在做慈善,其实此举很聪明:GitHub 普及要从娃娃抓起,尽管它已经碾压了其它一切竞争对手。
20151203:苹果开源 Swift
苹果的新编程语言 Swift 具有函数式编程和面向对象编程的诸多特性,也兼容苹果平台之前的开发语言 C、Objective-C,也是一个强类型语言而非脚本语言,也很注重安全性……对于苹果开发者而言,Swift 是件大好事,而有什么比 Swift 开源更让人大快人心呢?
如果说微软带起了一波节奏,那么苹果 Swift 编程语言的开源才真的让其它科技公司都信服。老大哥都开源了,我们还有什么理由不跟随呢?
20160709:阿波罗 11 号代码开源
60 年代的程序员也有幽默感,不信就去 GitHub 上看看阿波罗 11 号的代码。比如这个:临时代码一直用到了月球上。
你可能会感兴趣,50 年前的程序员和代码是什么样的?隆重向你介绍阿波罗 11 号计算机系统工程师,MIT 的 Margaret Hamilton:
阿波罗 11 号代码开源地址:https://github.com/chrislgarry/Apollo-11
2017:Python 进驻 GitHub
Python 因数据科学和深度学习的爆发重新开始受到关注,在 2015 年它成为了 GitHub 上第三受欢迎的语言,2017 年升至第二。当各大公司和人工智能专家开始倡导“人工智能普及化”(democratize AI) 时,Python 也终于来到了 GitHub。
这使得 Python 在 GitHub 上的流行越发势不可挡,使用 Python 语言的新 repo 数量,环比增长达到了 70%。
20170215:TensorFlow 1.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、React Native、NPM:
review 最多的项目,DefinitelyTyped、K8S、Homebrew;讨论最多的 repo,K8S、Origin、CMSSW
注册用户最多的国家:中国排第二
喜欢本文的朋友们,欢迎长按下图关注订阅号程序员小灰,收看更多精彩内容