6 月 4 日晚間,微軟以 75 億美元的價格收購了 Github。此時,GitHub 有超過 2700 萬開發(fā)者,托管多達 8000 萬代碼。不過卻一直沒有盈利,2016 年前三季度營收 9800 萬美元,虧損 6600 萬美元。在更早以前的 2017 年 11 月,Stack Overflow 宣布裁員 20%。彼時,這個在線社區(qū)擁有著超過 5000 萬名開發(fā)者和其他人員,聚集在此討論編程和其他事項。
而在此之前,開源世界還是一片火熱的景象。我們已經(jīng)目睹了開源在初創(chuàng)公司的發(fā)展過程中所扮演的重要角色,不過事實不僅限于此。
開源改變了初創(chuàng)公司,而初創(chuàng)公司也反過來改變了開源。兩個典型的初創(chuàng)公司,GitHub 和 Stack Overflow,它們一起為軟件技術(shù)開啟了新的篇章。我們現(xiàn)在所做的決定將影響著軟件行業(yè)未來 5 到 10 年的發(fā)展走向。要想知道為什么,我們需要從頭講起。
70 年代~80 年代:軟件行業(yè)的開端
在 70 年代,所有人都在開發(fā)自己的軟件,都在組建自己的電腦。IBM 在 1981 年發(fā)布了 IBM PC,也就是所謂的“個人電腦”,從此讓硬件市場繁榮了起來。
隨著硬件的繁榮,軟件也搭上了這趟順風車。商人從 IBM 身上看到了巨大的市場機會,而風險資本意識到軟件比硬件的風險更小,而且更具上升的潛力。
于是,紅杉資本注資 Oracle 開發(fā)數(shù)據(jù)庫軟件,IBM 委托微軟為他們的個人電腦開發(fā)操作系統(tǒng) MS-DOS。
突然間,開發(fā)自由軟件的想法變得不受待見。軟件開始變成商品。試想,如果你可以因此賺上百萬美元,有什么理由不去做?
開發(fā)自由軟件開始受到排擠,變成了反主流文化。如果你開發(fā)自由軟件,你就無法跟上 Oracle 或微軟的步伐。如果有人開發(fā)自由軟件,那么他們也只是想把它們作為平臺,而絕非產(chǎn)品。
這些程序員聚集在郵件列表和 IRC 上一起寫代碼,美國站群服務器 亞洲服務器,并且把代碼公開放到網(wǎng)站上。任何人都可以根據(jù)需要使用和修改這些代碼。
不過這些軟件項目也并不好過,畢竟它們不帶有商業(yè)性質(zhì)。
如果你想為某個項目貢獻代碼,你必須先加入到維護者的聯(lián)系通道。它們可能是 IRC,也可能是郵件列表,或者你需要先向他們發(fā)送一封自我介紹郵件,更有甚者你可能根本無法找到他們的聯(lián)系方式。
這些項目不僅沒有標準的溝通方式,也沒有標準的開發(fā)工具。
開源項目使用版本控制系統(tǒng)來跟蹤開發(fā)者對代碼所做的修改。通過這種方式,開發(fā)者避免了重復工作和變更沖突。
在今天,如果有人說到版本控制,很多人會想到 Git,但其實除了 Git 之外還有很多其他系統(tǒng),比如 SVN 和 CVS。每種系統(tǒng)的工作方式都有點不一樣,開發(fā)者可以選擇他們喜歡的系統(tǒng)。
所以,如果你想為某個項目貢獻代碼,必須先弄清楚要聯(lián)系誰,以及如何跟他溝通。在你可以貢獻代碼之前,需要先做足功課。
90 年代后期:開源開始流行
在 90 年代后期,事情開始發(fā)生轉(zhuǎn)變。很多組織開始使用 LAMP(Linux、Apache、MySQL、PHP)技術(shù)棧,這個技術(shù)棧所包含的工具都是開源的。此時,幾乎所有人都可以開發(fā)幾近免費的軟件系統(tǒng)。
不過大公司仍然認為開源是一個笑話。Steve Ballmer 視 Linux 為“毒瘤”,并認為“人們需要適當?shù)貫檐浖Ц顿M用”。Bill Gates 在 1976 年寫了一封公開信譴責盜版 BASIC 軟件的“業(yè)余愛好者”,并說他們是在“偷竊”:
誰能夠毫無目的地做著這些專業(yè)的工作?那些業(yè)余愛好者可以花上三年在編程上,并修復缺陷、寫好產(chǎn)品文檔,最后免費發(fā)布出來,他們可以從中得到什么?
不過不管怎樣,初創(chuàng)公司對 LAMP 技術(shù)棧很感興趣,因為他們只要為之付出收費軟件十分之一的成本。因為使用這些免費軟件,他們不需要太多的錢就可以啟動他們的業(yè)務。
開源軟件開始占領(lǐng)市場。
隨著越來越多的人開始使用開源軟件,開發(fā)者需要更好的工具來管理他們的項目。VA Research 公司看到了機會,他們出售預裝了 Linux 操作系統(tǒng)的個人電腦,這里的 Linux 也就是 LAMP 技術(shù)棧里的“L”。
VA Research 公司發(fā)現(xiàn)越來越多的人使用開源軟件,對他們的業(yè)務來說就越是有好處。于是在 1999 年夏天,該公司的一些員工決定開發(fā)一個協(xié)作工具,名字叫作 SourceForge,并在同年秋天發(fā)布。
開發(fā)者在 SourceForge 上開發(fā)開源軟件,SourceForge 成為一個標準的開源項目網(wǎng)站。開發(fā)者可以在 SourceForge 上免費存放代碼、管理他們的項目、跟蹤缺陷,這些事情都在一個地方完成。
不過版本控制仍然是一個棘手的問題。
Git 是如何改變一切的?