实际上github之所以火这个故事,有几种说法。其实Linus大神开发git并没有多久,最初的阶段,git只有linux的核心成员在用,而且由于起古怪的逻辑和内在思想,让人根本很难上手。而且即使今天我看到的情况,也是很多人在把git当svn来用。实际上@范凯之所以会这么说,也是因为他在写这个东西的那一刻有些糊涂了。其实git作为分布式的代码管理程序鼻祖,恰恰就是认为存储应该是分布式的,是不要求有一个服务器的。而实际上最初的使用git的一种方式,是在形成发布的版本后,在把代码发布到svn服务器上,对外发布出去的。而进一步说,github是一个代码托管网站,而不是你的代码存储网站。另外说点题外话,更加有效的使用git这些软件的方法,应该是直接的相护操作,而尽量避免跟服务器打交道。只能在掉线将发生的时候才去使用服务器。但是确实这样作很古怪,而且管理起来比较繁琐,权限更加难于实现,所以我看到的基本没有这样原教旨主义的。
而由于github的产生确实是因为ruby社区的贡献。也就是在最初湾区的一些人,因为需要(当然我猜测也是因为太多的人看重了git的速度,而根本就没有理解git的内涵,就如同现在一群根本不懂agile的人天天教agile一样)一个代码托管的网站。而sf这个东西太面向用户了,google code还不够那么cool,于是github就诞生了。但是请注意,最初的github仅仅是小众的小众,而且不温不火的持续的一段时间。恰恰是在他们活得融资的前后,用户数量才开始爆发。这段时间内发生的事情才是关键。也就是说git和ruby以及rails,都不是关键。
在这段时间,有几个关键的手段,一个是Pages,一个是权限,另外一个是闭源的商业用途的实现。另外还有几个关键的时间点,发生的关键性的一些事件,比如linux核心代码等等。也就是说github团队不仅仅作对的事情,而且在关键时刻还抓住了时机作好了事情。特别是github赶上了javascript社区的爆发,这一点十分重要。当然因为对ruby的喜欢,许多人认为是ruby社区的人引领了这个潮流。
但是我不得不说,实际上是node.js社区才是领袖。当然我要在这里澄清一点,我并不认为我这里是在夸hode.js,而恰恰我是要贬低他们。我认为js这种语言,是一种混乱的语言,起社区也是混乱的社区,人员也是一群混乱的人。当然这点确实跟rails社区开始阶段很类似。而rails变为merb之后,ruby社区已经没那么多噪音了。噪音多,纷争就多,分支自然也就多,于是git自然就用途多了,github自然也就用的多了。注意,我这里的意思是git和github是平行的,并没有git多,导致github的多。人类的语言无法表示并行,这里就是如此。而github一下才就赶上两次热潮,rails和node.js,自然运气也很好。
另外他们的Pages也很是合乎时机,至少在国内很多blog都转到那里去了。而且即使是非技术人员,很多人在用这个东西。这点在国内感受应该非常明显。这点无疑给他们又增加了很多用户。
同时另外一个领域,也就是移动开发,因为最近这个比较热门,收入也多,资金也多,吸引的关注也多。而恰恰从事这个方面的人员,也刚好很多是javascript社区的人,因此这样的人自然也就多。
注意我在这里要强调一点,跟@范凯的逻辑相反,并不是因为你用什么东西,作什么事情,所以你就是什么人,而是因为本身你就是什么人,才会去用什么东西,作什么事情,并且会以什么方式去作什么事情。这个我跟他分歧的关键所在。
而实际上对github的估值我觉得根本就不是问题,他们现在仅仅是活得了一笔投资,而不是被估值后卖出。也就是说他们仅仅是接受了1一个亿的投资,而是他们现在就值那么多。而且就我看来,凡是作SCM能成功的,价钱都不会太小,而且也基本都不会去接受什么外部的投资,至于上市更加不可能。特别是能够提供云计算配置管理工具的公司,更加没有太多资金的需要。所以他们这么快就接受了投资,我感觉很奇怪。或者更加干脆的说,他们接受了这笔投资,反而说明他们目前的状况没那么好。
所以github走到现在的关键我看是下面几条,第一不较真,非要原教旨;第二是及时与眼光;第三是运气也足够。
当然github的繁荣也有些需要认清楚情况的,比如很多实际是作个人存储的库,比如我自己的配置文件就放在那里,有些其他的文件也存在那里。我看这块的东西,数量十分巨大。其次很多项目根本就是才起步,就结束的状态。而且github目前项目的规模普遍比较小,而且很多项目实质上就是一个项目。