1999 年上线的 SourceForge,因为免费一度是世界上最受欢迎的开源软件代码托管网站。然而 Google 担心它一家独大,上线了自家的代码托管网站 Google Code。
2005 年,Linux 的缔造者 Linus Torvalds 对现有的代码托管工具效率不满意,便自己做了一个名叫 Git 的版本控制工具。Git 颇具革命性,允许大量开发者同时为源代码贡献新代码,彼此间并不影响,最重要的在于它是开源的。
三个来自旧金山的年轻人认为 Git 的潜力巨大,在 2008 年正式推出了 GitHub,一个基于 Git 的代码托管网站。他们没想到,GitHub 后来击败了元老 SourceForge 和背景强大的 Google Code,成为了全世界最受欢迎的代码托管网站。
去年 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 和各种语言贡献代码的人们。
Ruby on Rails (Rails),是一个用 Ruby 语言编写的开源 web 应用框架。它提高了开发复杂网页的效率,是计算机界最受欢迎的开源项目之一。2008 年 4 月,Rails 做出了表率,将版本控制从 SVN 换成了 Git,并成为第一个进驻 GitHub 的大型开源项目。
当时,GitHub 还处在内测阶段,没有正式上线。GitHub 本身就是用 Rails 写的,这件事为 GitHub 带来了不小的影响力。
2009 年诞生后,比特币于 2010 年正式开源,并托管在了 GitHub 上。比特币是世界上第一个去中心化的数字货币,它的诞生和开源更是引发了一场同时波及金融和科技,甚至更多行业的革命。
至今,比特币项目接受了超过 500 名用户贡献的代码。比特币的底层技术“区块链”被广泛视为下一个革命性的计算机技术,比特币项目已经被 fork (代码库复制)逾 1.8 万次,大量的区块链、数字货币项目在 GitHub 上开源,其中很多都来自比特币源代码苹果手机登了国外的id。
你可能听说过网络开发分前端后端之说,前端管网页呈现,后端管数据输出。然而这两者不是孤立的,前端开发也会涉及到确保后端数据能够正确呈现出来,所以大量采用 Java (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 第一次线 年,一群用 Rails 做开发的女程序员在芬兰赫尔辛基举办了第一次线下聚会。
持续集成 (CI) 从像 GitHub 这样的代码库里按照频率提取最新的代码,自动构建项目并进行测试。持续集成并不能消除 bug,而是让它们非常容易发现和改正。比如下面这个 build passing 就是持续集成工具显示的,它的大概意思是当前版本测试通过,没有出现 bug。
而 Travis CI 是最受欢迎的,开源的持续集成工具。2011 年元旦那天,它完成了第一个 PR。Travis CI 和 GitHub 的整合,让代码投入生产环境的整个过程变得更高效了
最一开始是一种网页脚本语言,JS 和 HTML、CSS 并列网页开发三大语言。被 JS 坑过的程序员经常讽刺它是一种不完整的语言,有一个很古老的段子:写 C 的看不起写 C++ 的,写 C++ 的看不写 Java 的,写 Java 的看不起写 JS 的,写 JS 的看不起美工,周末大家都在加班,美工带着女朋友旅游去了。
开源社区的发展使 GitHub 获得了惊人的增速,在用户数和 repo 数上实现了两座里程碑:2013 年,用户数突破了 100 万;同年 12 月,GitHub 的 repo 总数超过了 1000 万,其中超过一半是当年创建的,仅 11 月就增加了 100 万个。
交友平台不是开玩笑……GitHub 的程序员社交特性使得很多开发者通过它实现了线下聚会。它让程序员们更容易结识彼此,而这对于女生尤为重要。
虽然随着移动互联网的快速发展,没跟上时代的 .NET 已经走向衰落,微软向开源社区示好,仍然被视为开源业界的一个历史性事件。微软创立了一个开源行动,然后把所有的开源代码包括 .NET 都在 GitHub 上开源。数千名工程师也让微软成为了 GitHub 上最为活跃的公司。
2015 年 3 月 2 日,虚幻引擎 4 完全免费了。Epic Games 放出了百分之百的 C++ 原始代码,虽然独立开发者想要开发 AAA 级别大作还是需要资金,但至少现在他们手上的虚幻引擎 4 和大厂手里的没有任何区别。
除了虚幻引擎,还有不少游戏引擎、库和游戏代码在 2015 年上了 GitHub,比如《毁灭战士》和《波斯王子》。最有趣的应该是 2048,它的开源带来了上百款类似的消除游戏……总的来说是件好事。
除了工业界,学术界,包括大学和高中也可以利用 GitHub 进行教育了。GitHub Classroom 改进了编程课代码管理、分发和作业收集。看上去是在做慈善,其实此举很聪明:GitHub 普及要从娃娃抓起,尽管它已经碾压了其它一切竞争对手。
苹果的新编程语言 Swift 具有函数式编程和面向对象编程的诸多特性注册国外苹果id账单寄送地址,也兼容苹果平台之前的开发语言 C、Objective-C,也是一个强类型语言而非脚本语言,也很注重安全性……对于苹果开发者而言,Swift 是件大好事,而有什么比 Swift 开源更让人大快人心呢?
60 年代的程序员也有幽默感,不信就去 GitHub 上看看阿波罗 11 号的代码。比如这个:临时代码一直用到了月球上。
Python 因数据科学和深度学习的爆发重新开始受到关注,在 2015 年它成为了 GitHub 上第三受欢迎的语言,2017 年升至第二。当各大公司和人工智能专家开始倡导“人工智能普及化”(democratize AI) 时,Python 也终于来到了 GitHub。
革命性的深度学习库,就连非专业人士都听说过 TF——主要可能因为 AlphaGo 击败了李世乭和柯洁。2016 年,TensorFlow 成为了整个 GitHub 上 fork 最多的项目。
人工智能、区块链、量子计算……许多全新的计算机技术和全新的计算范式已经或正在赶来,代码和数据在某种程度上已经取代了石油,成为了人类的新血液。
在这样的大背景下,GitHub 太重要了,但它也面临着和 10 年前 SourceForge 等前辈相同的命运:全世界的开源代码都在这里,过度的中心化会否增加风险?在享受 GitHub 带来便利的同时,越来越多人都会多一个心眼——代码上传之后,本地还是不要 rm 留个底吧。