GitHub如何征服Google和微软?
十年前的开源软件还没有把科技圈搞的乱七八糟,而当时应用最广泛的开源软件要属Linux系统了,甚至华尔街都把Linux部署在自己的服务器上。这说明了一点,利用全世界应用最广泛的免费分享软件一样能够创造价值,甚至可以赚钱。然而,开源社区依旧是个非常小的群体,那时如果某个程序员或极客想启动一项全新的开源项目,通常会选择一个不算稳定的网站——SourceForge。
Chris DiBona当时在Google负责开源项目,也是一名开源大师,他非常担心目前的开源软件行业,因为他觉得不该“把所有鸡蛋都放进一个篮子里”。
“我们只有一个‘篮子’,SourceForge。”
因此,和许多公司一样,Google也建立了自己的开源平台Google Code,帮助用户在上面自建开源项目。Google正是依靠Linux和其他开源软件,才成为了一家互联网巨头,而除了SourceFore,Google Code也成了程序员的另一个选择,确保开源可以继续发展,并且在互联网圈子里继续传播这种理念。
但之后,位于旧金山的github横空出世,让开源理念传播的更快。
终于,在Google Code推出十年之后,Google宣布将关闭这一平台。当然,人们对此并不感到意外,因为在过去的三年时间里,Google已经从这个平台移出了约1000个开源项目。Google Code退出历史舞台并不会造成太大影响,因为绝大多数开源项目都已经把自己的源代码放在GitHub上,其中就包括从Google Code上移出的近千个项目中的一部分。
有人认为,Google之所以推出Google Code,是出于“自私”,因为他们希望掌控更多,尽可能在自己的平台上保存开源代码(他们也习惯这么干了)。但最终,GitHub还是甩开了Google,因为他们能为程序员提供更多价值,相比于SourceForge、Google Code等开源平台,GitHub软件开发民主化更彻底,这恰恰是软件开发圈子里开发人员最看重的一笔“财富”。
属于程序员的GitHub
GitHub目前已经成立七年了,拥有900万注册用户量,每月非注册用户访问量大约为2000万。根据网站流量监测服务商Alexa的数据显示,GitHub是全球最受欢迎的前100家网站之一。
GitHub上面没有名人八卦新闻,也没有猫咪视频和社交聊天,而是程序员经常使用的一个专业网站。GitHub战略副总裁Brian Doll说道:
“全球排名前100名的网站,很大一部分是媒体网站,还有些是社交网站,另外有三十家是和Google相关的网站,当然还有我们GitHub。”
讽刺的是,GitHub的成功意味着开源世界又重新回到了“一个中央储存库放置所有代码”的时代。但这一次,和其他大多数程序员一样,DiBona却对GitHub采用这种方式赞赏有加,因为将所有开源代码保存在一个地方,更有助于用户便捷协作。另外和SourceForge不同,GitHub独特的协作处理方式,也让“所有鸡蛋放在一个篮子里”的风险降到了最低。GitHub非常重要,但是又不会局限在上面。
因此,即便所有的代码都被放置在一处,GitHub依旧能“无处不在”,有时悖论可以让人们真正看到开源软件之美,也能让人们感受到开源对未来技术的重要性。
Git
虽然大家都知道把鸡蛋放在一个篮子里风险很高,但GitHub却用这种方式创造了开源软件奇迹,那如何解释这种悖论呢?答案就是Git。Git是GitHub开发的一套“版本控制”软件,创造这套软件的正是Linux之父Linus Torvalds。实际上,当Linus在2005年开发出这套软件的时候,他只是希望能找到一个更好的方法去构建Linux。有了Git版本控制软件,人们可以同时编辑相同的Linux代码,而不用担心影响到其他人。
简单的说,Git允许任何人将Linux源代码下载到自己的电脑上进行修改,之后可以随时将自己所做的改动上传到Linux中央存储库内。Git可以将每个人的改动无缝整合在一起。这就是Git软件的天才之处,GitHub深谙此道。
GitHub创建了一个网站,让每一个其他项目都能像Linux项目那样,实现同步无缝编辑,程序员迅速掌握了这种代码编辑方式。Rob "CmdrTaco" Malda是科技网站Slashdot总编辑,他评价GitHub这种开源革命:
“GitHub运行非常流畅,操作界面也很性感、现代。”
如今,绝大多数软件公司都会将自己的开源项目部署在GitHub上,其中就包括Google,Facebook,Twitter,甚至连过去厌恶开源软件的微软也不例外。最近几个月,当微软将其最重要的源代码实施开源时,他们选择了GitHub,而不是自己旗下的开源网站CodePlex。
S. "Soma" Somaseger负责为微软的软件开发人员采集工具,这位微软资深员工表示CodePlex将会继续运营,Sourceforge和BitBucket这些源代码存储库也不会很快消失。
“我们希望这些开源平台能够继续存在,至少可以作为一种其他选择。”
但是当微软选择开源Microsoft.NET项目时,他还是选择了GitHub。
“我们希望满足开发人员的需要,不得不说,GitHub是目前最大的开源社区。”
当“私有”遇见“公开”
实际上,Git的厉害之处在于它能让开源社区不局限在GitHub上,程序员不仅可以将某个特别项目的源代码下载到本地电脑上面,也能将代码分开,建立新的独立项目,选择哪些可以公开,哪些为私有。
或许你已经发现了,其实Git和GitHub并不仅仅为了开源软件而存在,他们也可以成为一个“私有”代码平台。在GitHub上,用户可以在“私有”和“公开”模式下轻松切换。程序员既能在上面“干私活儿”,也能和其他人协作处理项目,这正是开源的魅力所在。
Google就在按上述套路出招,“Go”是他们新一代的编程语言,它在GitHub开源平台上是完全公开的。另外,一个名为Kartes的项目在GitHub上则是“私有”状态,但它之后又支持了一个“公开”项目KUbernetes。而我们熟知的Chrome浏览器则是一个Google的“私有”Git服务。
微软应用GitHub的方式与Google也很相似。在微软内部,他们使用Git软件来管理其Visual Studio和Team Foundation Server工具。当然,微软也在GitHub上公开分享代码,向全世界提供软件工具。微软甚至向其他公司推荐Git版本控制软件,现在微软20%的客户或多或少都在使用Git软件。
程序员也是人
更重要的是,程序员社区规模已经变得越来越大。我们知道,科技世界里最重要的就是这帮人,随着GitHub跻身全球网站前一百强,表明软件正在变得越来越重要。
Igor Minar是Google工程师,他负责监控Angular开源项目,该项目部署在GitHub上,并且有数万名程序员参与。他透露,为了配合日益壮大的程序员社区规模,GitHub正在尝试提供更好的工具以支持较大规模的开源项目。
程序员无处不在,很多人都在GitHub上为数万个开源项目做贡献。Minar把GitHub开源平台形容是一个“义卖市场”,可以提供程序员所需的源代码,而且是免费的!
“如果你需要一切代码,上GitHub就可以了,在上面肯定能找到你所需要的。”
开源时代已经到来,最终,开源将帮助我们以更快的速度去构建、改善我们的世界。
VIA wired