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