专栏名称: InfoQ
有内容的技术社区媒体。
目录
51好读  ›  专栏  ›  InfoQ

从GitHub何Stack Overflow说开去:后开源时代,开源的未来往哪边?

InfoQ  · 公众号  · 科技媒体  · 2017-01-01 09:02

正文

请到「今天看啥」查看全文


随着越来越多的人开始使用开源软件,开发者需要更好的工具来管理他们的项目。VA Research公司看到了机会,他们出售预装了Linux操作系统的个人电脑,这里的Linux也就是LAMP技术栈里的“L”。

VA Research公司发现越来越多的人使用开源软件对他们的业务来说就越是有好处。于是在1999年夏天,该公司的一些员工决定开发一个协作工具,名字叫作SourceForge,并在同年秋天发布。

开发者在SourceForge上开发开源软件,SourceForge成为一个标准的开源项目网站。开发者可以在SourceForge上免费存放代码、管理他们的项目、跟踪缺陷,这些事情都在一个地方完成。

不过版本控制仍然是一个棘手的问题。


Git是如何改变一切的?


开源操作系统Linux变得越来越受欢迎。不过Linux项目使用的版本控制系统BitKeeper不是免费的。虽然Linux之父Linus Torvalds喜欢BitKeeper(BitKeeper为他们发放了“社区许可”),但大部分开发人员对他的决定并不认可。

作为所有权软件,BitKeeper对它的用户做了很多限制。例如,如果有人在Linux上使用BitKeeper,他们就无法在SVN或CVS中打开BitKeeper管理的代码。

2005年,BitKeeper的开发者宣布,因为许可方面的问题,BitKeeper结束对Linux的免费支持。BitKeeper用户要么被迫接受一项商业协议,要么去寻找其他解决方案。

Linus Torvalds并不喜欢现有的任何一款免费的版本控制系统,于是他决定自己开发。2005年,Linus发布了一款新的版本控制系统Git。

对于这个名字,Linus开玩笑地说自己是一个“任性的混蛋”,总是“为所有项目使用跟自己有关的名字”。“git”在英式俚语里是“不高兴的人”的意思。也就是说,除了Linus,还有很多人都需要一个更好的版本控制系统。除了Linus,其他开发者也喜欢Git。Git速度更快,而且它是分布式的,可以处理多个代码贡献者。

不过Git不是很直观,它跟其它的版本控制系统很不一样。SourceForge并不支持Git。

几年之后,SourceForge迎来了新的竞争对手。2008年,两个新的协作平台GitHub和Bitbucket出现了。它们都是很好的协作平台,不过它们之间有一个很大不同:Bitbucket只支持Mercurial,而GitHub只支持Git。

在BitKeeper惨败之后,Matt Mackall发布了Mercurial,Linus几乎在同一时间发布了Git。Mercurial和Git之间的竞争趋于白热化。

不过最后,GitHub算是压对了筹码。

Linux和其它优秀的开源项目转向了Git。GitHub让本来不是很直观的Git变得易于使用。

2010年,SVN在版本控制系统市场占据着主要位置,有60%的软件项目在使用SVN,而使用Git的仅11%。但在今天,Git几乎占据了SVN原来的市场份额。

Bitbucket最初使用的Mercurial现今只有2%的软件项目在用。

GitHub成为代码协作的首选平台。开源需要具备以下两个条件:

1.标准的沟通方式

2.标准的代码管理方式

GitHub满足了以上两种需求,并且提供了更多的功能,比如新的社交机制,开发者之间可以互相关注,并且可以通过新闻种子查看项目变更。现在开发者还具有:

3.标准的Web社交方式

到这里,整个故事就完整了。

好吧,几乎算是完整了。


Stack Overflow:为代码寻求帮助的地方


GitHub成为代码协作的集中地。那么当开发者在碰到困难时该怎么办?他们一直在互相请教,并分享知识。

编程书籍因此变得非常受欢迎。有时候,人们会在私人邮件或邮件列表里讨论问题。不过,还没有一个专门的地方可以用来讨论代码内容。







请到「今天看啥」查看全文