GitHub 是怎么火起来的?

最近只觉得越来越多的开源项目迁移到 Github 上,感觉一瞬间就超过了 Sourceforge,有什么必然的原因么?
关注者
2248
被浏览
500987

18 个回答

Github不是突然火起来的,在Ruby社区Github其实从一开始就很流行,我们2009年搞Ruby大会就邀请了Github的人来上海了,早在2009年Github在国内的Ruby社区就很有名气了。之所以今天大家突然觉得Github火,只不过是因为刚拿到1亿美元融资的眼球效应罢了。

Github是一个从Ruby社区诞生出来的项目,这几年我也算是看着Github发展起来的,可以说Git在Ruby社区普及和爆发几乎是必然的事情。Git虽然是Linux内核社区开发出来的,但前几年一直不温不火。真正在开源社区普及和爆发,是从Ruby社区和Github开始的。

Rails是一个高度集成的Web框架,通常情况下一到两个Rails程序员做一个Web项目就够了,一旦多人同时在一个Rails项目上工作,代码提交和协作会遇到很大的麻烦,更不要说开源项目大规模远程协作了。这算是Rails项目的一个痛点:单个工程师开发效率很高,但是团队协作很困难,CVS/SVN这种集中提交式的SCM都不能很好的支持Rails团队的工作模式。事实上我的Ruby团队规模一大也遇到了这个难题,代码提交经常冲突,协作困难。

Git这种良好支持分支管理的分布式的SCM真正解决了这个问题:每个工程师在自己本地分支上开发,完成功能以后往master分支合并。我们Ruby团队使用Git以后,代码提交冲突问题迎刃而解。所以Git这种SCM像是给Ruby社区量身打造的一样,所以你可以看到Ruby社区几乎没有不用Git的。

Github本身也是这种需求下的产物,一些湾区的Ruby社区的程序员使用Git以后,找不到好的Git托管网站,于是就开发了Github出来。然后Rails框架率先迁移到Github上,形成了示范效应,整个Ruby社区呼啦啦都迁上去了。Ruby社区另有一好处:各种开源库和包都统一用Gem格式发布,而一旦大量Gem都迁移到Github上了,Ruby程序员就跟着都开始用Github了。我当年就是为了跟一些gem的库就开始用Gihub的。

这里多说两句:Ruby社区是一个相当团结的社区,很少分裂,经常是一旦采用一个技术,整个社区就会迅速跟进和普及。虽然在国内Ruby是个小众的编程语言,但是在硅谷,Ruby很火,被誉为云计算时代的Web编程语言。Ruby整个社区都迁移到Github,开始对其他编程语言社区形成示范效应,其他编程语言社区接着跟进。

Ruby程序员因为做Web开发,经常用JavaScript,很多Ruby社区核心人员本身也是JS社区的核心人员,JS社区也就很快进驻Github。同时Ruby社区因为DHH的示范效应,基本上整个社区都是人手一台Mac,天然对OSX比较近,而随着iOS开发的繁荣,大量的Ruby程序员跟进开发iOS app,带动iOS社区也从Github上成长起来了。看看今天的Github,Ruby,JS和iOS的项目比例是非常高的,Java比例则远不如Sourceforge和Google Code,这有一定的社区渊源。

Github也很重视社区活动,经常搞Drinkup,此外Github产品上有很多领先的地方,例如从网站产品上定位为social coding,支持大规模开源项目分布式协作的各种工作模式等等。

不过Github现在估值这么高,我认为主要还是云计算SAAS平台的概念带来的,它给企业用户提供Private代码仓库托管收费服务是盈利的。云平台现在估值都很高,Dropbox,Evernote都远比Github估值高,所以Github现在的估值高也不算意外。
一个是 git 本身在开源社区里面的流行,这是主要是因为 Linus 的影响非常大。
然后就是因为 Github 本身。创始人都是在 Ruby 社区里面非常活跃的人。所以大家可以看到在 Github 上 Ruby 的成分非常多。他们的创始人曾经在 Startup Open Sourced 这本书上提到他们是如何在一个 Ruby 的线下聚会遇到,所以他们非常重视线下的社区聚会活动。他们的 Github Drinkup 活动从湾区开始,后来变成用户自发组织,变成全球很多开发者聚集的城市都会搞的活动。这样的社区号召力使得 Github 从一个源代码管理的工具变成了真正的开发者社区。
在发展过程中,Github 获得了开源社区非常大的支持,Ruby on Rails 和 Linux Kernel(根据张西家在评论中的勘误,Linux Kernel 的代码是直到 2011 年秋季 kernel.org 事故之后才临时放到 Github 的。之前的 github.com/mirrors/linu[-2.6].git 是有 Github 负责同步的非官方镜像。 )的代码都被放到了 Github 上,这是非常重要的里程碑。
Github 本身非常重视从开源社区中吸取精华,他们的 wiki 系统是 gollum,Github Pages 是 Jekyll,这两者都 host 在 Github 上并开源,并也成为了 Github 产品中非常好用的部分。
Github 在社区方面的努力还包括他们的 Changelog 播客,招聘程序员的 Github Jobs 以及一大堆有趣的纪念品,比如那个“fork you”的 Tee。这些都从侧面帮忙 Github 建立了独一无二的品牌。
也许这些都是一些侧面原因,但是我会倾向认为 Github 的成功来自他们对社区的重视。

PS - 如何和 Sourceforge 相比,好像前者有一段时间在国内是不能访问的。
为什么?