本文轉(zhuǎn)自硅星人(ID:guixingren123)
作者:光譜
1999 年上線的 SourceForge,因?yàn)槊赓M(fèi)一度是世界上最受歡迎的開源軟件代碼托管網(wǎng)站。然而 Google 擔(dān)心它一家獨(dú)大,上線了自家的代碼托管網(wǎng)站 Google Code。
2005 年,Linux 的締造者 Linus Torvalds 對(duì)現(xiàn)有的代碼托管工具效率不滿意,便自己做了一個(gè)名叫 Git 的版本控制工具。Git 頗具革命性,允許大量開發(fā)者同時(shí)為源代碼貢獻(xiàn)新代碼,彼此間并不影響,最重要的在于它是開源的。
三個(gè)來自舊金山的年輕人認(rèn)為 Git 的潛力巨大,在 2008 年正式推出了 GitHub,一個(gè)基于 Git 的代碼托管網(wǎng)站。他們沒想到,GitHub 后來擊敗了元老 SourceForge 和背景強(qiáng)大的 Google Code,成為了全世界最受歡迎的代碼托管網(wǎng)站。
Google 的開源代碼經(jīng)理 Chris DiBona 對(duì) GitHub 給予高度評(píng)價(jià):
2008 年 4 月 10 日,GitHub 正式上線。
今天,GitHub 終于10 歲了!
去年 5 月底,GitHub 完成了第 1 億個(gè) pull request(PR 合并請(qǐng)求)命令。截至今天,GitHub 上已經(jīng)擁有超過 8000 萬個(gè) repo(代碼倉庫),活躍用戶達(dá)到 2700 萬人,超過 150 萬家公司和機(jī)構(gòu)進(jìn)駐。
由于程序員群體里缺少女性,擁有高純度男性用戶的 GitHub,也被戲稱為全球最大的同性交友網(wǎng)站……
GitHub repo 按照語言劃分的男女用戶比例,最上面的綠色是確認(rèn)的女用戶(2014 年數(shù)據(jù))
“10 年前的今天,GitHub 正式上線。最一開始,我們只有一個(gè)特別簡單的目標(biāo):連接所有的開發(fā)者,讓他們用 Git 更輕松地進(jìn)行項(xiàng)目協(xié)作,”聯(lián)合創(chuàng)始人 Chris Wanstrath 在博客里寫道,“10 年過去了,我們作為公司,作為平臺(tái)都有了很大的變化,但 GitHub 存在的意義從未改變?!?/p>
作為對(duì)十周年的紀(jì)念,GitHub 團(tuán)隊(duì)并沒有選擇回顧公司歷史,而是整理了在他們眼中過去 10 年間的幾大里程碑事件。這很 GitHub——這份光榮,其實(shí)不止屬于平臺(tái)自己,更屬于那些為了讓這個(gè)世界變得更好,通過 Git、GitHub,用 JS、Python 和各種語言貢獻(xiàn)代碼的人們。
以下,就是這些曾在計(jì)算機(jī)業(yè)界和 GitHub 的發(fā)展中創(chuàng)造歷史的事件。
20080403: Rails 轉(zhuǎn)移至 GitHub
Ruby on Rails (Rails),是一個(gè)用 Ruby 語言編寫的開源 web 應(yīng)用框架。它提高了開發(fā)復(fù)雜網(wǎng)頁的效率,是計(jì)算機(jī)界最受歡迎的開源項(xiàng)目之一。2008 年 4 月,Rails 做出了表率,將版本控制從 SVN 換成了 Git,并成為第一個(gè)進(jìn)駐 GitHub 的大型開源項(xiàng)目。
當(dāng)時(shí),GitHub 還處在內(nèi)測階段,沒有正式上線。GitHub 本身就是用 Rails 寫的,這件事為 GitHub 帶來了不小的影響力。
20090103:比特幣誕生
2009 年誕生后,比特幣于 2010 年正式開源,并托管在了 GitHub 上。比特幣是世界上第一個(gè)去中心化的數(shù)字貨幣,它的誕生和開源更是引發(fā)了一場同時(shí)波及金融和科技,甚至更多行業(yè)的革命。
至今,比特幣項(xiàng)目接受了超過 500 名用戶貢獻(xiàn)的代碼。比特幣的底層技術(shù)“區(qū)塊鏈”被廣泛視為下一個(gè)革命性的計(jì)算機(jī)技術(shù),比特幣項(xiàng)目已經(jīng)被 fork (代碼庫復(fù)制)逾 1.8 萬次,大量的區(qū)塊鏈、數(shù)字貨幣項(xiàng)目在 GitHub 上開源,其中很多都來自比特幣源代碼。
20090521:Node.js 發(fā)布
你可能聽說過網(wǎng)絡(luò)開發(fā)分前端后端之說,前端管網(wǎng)頁呈現(xiàn),后端管數(shù)據(jù)輸出。然而這兩者不是孤立的,前端開發(fā)也會(huì)涉及到確保后端數(shù)據(jù)能夠正確呈現(xiàn)出來,所以大量采用 JavaScript (JS) 語言的前端人士需要學(xué)習(xí)后端 PHP、Ruby 之類的后端語言,很麻煩。
Node.js 的主要意義是讓前端用 JS 即可完成前端需要的大量開發(fā)任務(wù),開發(fā)適配多種操作系統(tǒng)的復(fù)雜服務(wù)器端應(yīng)用。簡單來說,它同時(shí)把前端和后端工程師從各自不熟悉的領(lǐng)域內(nèi)解放了出來。2009 年 5 月底,Node.js 正式在 GitHub 上發(fā)布,收到了不少前端和后端人士的追捧,被認(rèn)為是未來趨勢。
2014 年,Node.js 主要貢獻(xiàn)者對(duì)這個(gè)項(xiàng)目的官方管理公司不滿,于是自立門戶,fork 原版代碼做了一個(gè)社區(qū)驅(qū)動(dòng)而不是公司化運(yùn)營的替代品,名叫 io.js。這個(gè)項(xiàng)目一度比 Node.js 更受歡迎,但后來 Node.js 在開源治理上有了改善,兩個(gè)項(xiàng)目再次合并。
在整個(gè)過程中,GitHub 的開放機(jī)制確保了社區(qū)擁有自主權(quán)力,不必服從于開源項(xiàng)目的所有者。在必要的時(shí)候,fork 是一種力量,也是一種態(tài)度。
20101126:Rails Girls 第一次線下聚會(huì)
2010 年,一群用 Rails 做開發(fā)的女程序員在芬蘭赫爾辛基舉辦了第一次線下聚會(huì)。
三年后,他們專為女性和 LGBTQ 人士開設(shè)了一個(gè)夏令營 Rails Girls Summer of Code。這個(gè)開源培訓(xùn)項(xiàng)目幫助開源社區(qū)改善了性別多樣性,為解決女性在科技行業(yè)內(nèi)受到的結(jié)構(gòu)性歧視做出了貢獻(xiàn)。
20110101:Travis CI 持續(xù)集成的第一個(gè) PR
持續(xù)集成 (CI) 從像 GitHub 這樣的代碼庫里按照頻率提取最新的代碼,自動(dòng)構(gòu)建項(xiàng)目并進(jìn)行測試。持續(xù)集成并不能消除 bug,而是讓它們非常容易發(fā)現(xiàn)和改正。比如下面這個(gè) build passing 就是持續(xù)集成工具顯示的,它的大概意思是當(dāng)前版本測試通過,沒有出現(xiàn) bug。
而 Travis CI 是最受歡迎的,開源的持續(xù)集成工具。2011 年元旦那天,它完成了第一個(gè) PR。Travis CI 和 GitHub 的整合,讓代碼投入生產(chǎn)環(huán)境的整個(gè)過程變得更高效了
20120101:JS 成為 GitHub 第一大語言
最一開始是一種網(wǎng)頁腳本語言,JS 和 HTML、CSS 并列網(wǎng)頁開發(fā)三大語言。被 JS 坑過的程序員經(jīng)常諷刺它是一種不完整的語言,有一個(gè)很古老的段子:寫 C 的看不起寫 C 的,寫 C 的看不寫 Java 的,寫 Java 的看不起寫 JS 的,寫 JS 的看不起美工,周末大家都在加班,美工帶著女朋友旅游去了。
然而編程語言的鄙視鏈,總是和受歡迎程度相反。從 2012 年開始,JS 超越了 Ruby、Java 和 Python,成為了 GitHub 上最受歡迎的語言,直至今天仍霸占王座。
2013:GitHub 用戶破百萬
開源社區(qū)的發(fā)展使 GitHub 獲得了驚人的增速,在用戶數(shù)和 repo 數(shù)上實(shí)現(xiàn)了兩座里程碑:2013 年,用戶數(shù)突破了 100 萬;同年 12 月,GitHub 的 repo 總數(shù)超過了 1000 萬,其中超過一半是當(dāng)年創(chuàng)建的,僅 11 月就增加了 100 萬個(gè)。
別光看數(shù)字多,這一年里增加的 repo 質(zhì)量也很不錯(cuò):白宮的 Project Open Data、Docker 等等。亞馬遜 AWS、Facebook、Google、微軟、Twitter、NETflix 等知名公司也上傳了自家的項(xiàng)目。
20140609:Docker 1.0 發(fā)布
被視為革命性技術(shù)的開源容器引擎 Docker,2013 年在 GitHub 上創(chuàng)建了 repo,一年時(shí)間里下載量超過 275 萬份。2014 年,Docker 1.0 終于正式發(fā)布了。
像 Docker 和 Kubernetes (K8S) 這樣的開源項(xiàng)目開啟了一場容器化運(yùn)動(dòng)。開發(fā)、投產(chǎn)和運(yùn)維的難度降低,小型公司不再需要花費(fèi)精力在基礎(chǔ)架構(gòu)上,可以更專注于核心業(yè)務(wù)開發(fā)。
20140721:Django Girls 第一次線下聚會(huì)
交友平臺(tái)不是開玩笑……GitHub 的程序員社交特性使得很多開發(fā)者通過它實(shí)現(xiàn)了線下聚會(huì)。它讓程序員們更容易結(jié)識(shí)彼此,而這對(duì)于女生尤為重要。
2014 年德國柏林,Django 女性開發(fā)者第一次在線下舉辦聚會(huì),她們的組織仍在為改善性別多樣性而努力著。
20140723:微軟開源 .NET
雖然隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,沒跟上時(shí)代的 .NET 已經(jīng)走向衰落,微軟向開源社區(qū)示好,仍然被視為開源業(yè)界的一個(gè)歷史性事件。微軟創(chuàng)立了一個(gè)開源行動(dòng),然后把所有的開源代碼包括 .NET 都在 GitHub 上開源。數(shù)千名工程師也讓微軟成為了 GitHub 上最為活躍的公司。
.NET 的開源帶起了一波節(jié)奏,隨后越來越多的大公司遷移到了 GitHub,放棄了自己的代碼托管網(wǎng)站或過時(shí)的代碼庫。
2015:虛幻引擎 4 免費(fèi)和大量游戲相關(guān)開源
2015 年 3 月 2 日,虛幻引擎 4 完全免費(fèi)了。Epic Games 放出了百分之百的 C 原始代碼,雖然獨(dú)立開發(fā)者想要開發(fā) AAA 級(jí)別大作還是需要資金,但至少現(xiàn)在他們手上的虛幻引擎 4 和大廠手里的沒有任何區(qū)別。
Epic Games 對(duì)社區(qū)的恩惠得到了報(bào)答。在虛幻引擎最近一次 4.19 版本發(fā)布,包含了 128 個(gè)來自社區(qū)的貢獻(xiàn)。
除了虛幻引擎,還有不少游戲引擎、庫和游戲代碼在 2015 年上了 GitHub,比如《毀滅戰(zhàn)士》和《波斯王子》。最有趣的應(yīng)該是 2048,它的開源帶來了上百款類似的消除游戲……總的來說是件好事。
20150922:GitHub Classroom 發(fā)布
除了工業(yè)界,學(xué)術(shù)界,包括大學(xué)和高中也可以利用 GitHub 進(jìn)行教育了。GitHub Classroom 改進(jìn)了編程課代碼管理、分發(fā)和作業(yè)收集??瓷先ナ窃谧龃壬?,其實(shí)此舉很聰明:GitHub 普及要從娃娃抓起,盡管它已經(jīng)碾壓了其它一切競爭對(duì)手。
20151203:蘋果開源 Swift
蘋果的新編程語言 Swift 具有函數(shù)式編程和面向?qū)ο缶幊痰闹T多特性,也兼容蘋果平臺(tái)之前的開發(fā)語言 C、Objective-C,也是一個(gè)強(qiáng)類型語言而非腳本語言,也很注重安全性……對(duì)于蘋果開發(fā)者而言,Swift 是件大好事,而有什么比 Swift 開源更讓人大快人心呢?
如果說微軟帶起了一波節(jié)奏,那么蘋果 Swift 編程語言的開源才真的讓其它科技公司都信服。老大哥都開源了,我們還有什么理由不跟隨呢?
20160709:阿波羅 11 號(hào)代碼開源
60 年代的程序員也有幽默感,不信就去 GitHub 上看看阿波羅 11 號(hào)的代碼。比如這個(gè):臨時(shí)代碼一直用到了月球上。
你可能會(huì)感興趣,50 年前的程序員和代碼是什么樣的?隆重向你介紹阿波羅 11 號(hào)計(jì)算機(jī)系統(tǒng)工程師,MIT 的 Margaret Hamilton:
阿波羅 11 號(hào)代碼開源地址:https://github.com/chrislgarry/Apollo-11
2017:Python 進(jìn)駐 GitHub
Python 因數(shù)據(jù)科學(xué)和深度學(xué)習(xí)的爆發(fā)重新開始受到關(guān)注,在 2015 年它成為了 GitHub 上第三受歡迎的語言,2017 年升至第二。當(dāng)各大公司和人工智能專家開始倡導(dǎo)“人工智能普及化”(democratize AI) 時(shí),Python 也終于來到了 GitHub。
這使得 Python 在 GitHub 上的流行越發(fā)勢不可擋,使用 Python 語言的新 repo 數(shù)量,環(huán)比增長達(dá)到了 70%。
20170215:TensorFlow 1.0 發(fā)布
革命性的深度學(xué)習(xí)庫,就連非專業(yè)人士都聽說過 TF——主要可能因?yàn)?AlphaGo 擊敗了李世乭和柯潔。2016 年,TensorFlow 成為了整個(gè) GitHub 上 fork 最多的項(xiàng)目。
除了 TF,Caffe2、DeepSpeech 等大量深度學(xué)習(xí)工具也都相繼開源。使用這些工具,研究者可以創(chuàng)建面向不同領(lǐng)域的深度學(xué)習(xí)模型,包括并不限于電子游戲、弈類游戲、音樂、繪畫、醫(yī)療、金融等等,帶來新的技術(shù)范式和商業(yè)模式,顯著改善人們的生活。
20180410:十周年,再出發(fā)
在 2017 年,用戶提交了超過 2.9 萬億條代碼,GitHub 也合并的 PR 終于突破了 1 億。2018 年,GitHub 用戶總量達(dá)到 2700 萬,項(xiàng)目總數(shù)超過了 8000 萬。
人工智能、區(qū)塊鏈、量子計(jì)算……許多全新的計(jì)算機(jī)技術(shù)和全新的計(jì)算范式已經(jīng)或正在趕來,代碼和數(shù)據(jù)在某種程度上已經(jīng)取代了石油,成為了人類的新血液。
在這樣的大背景下,GitHub 太重要了,但它也面臨著和 10 年前 SourceForge 等前輩相同的命運(yùn):全世界的開源代碼都在這里,過度的中心化會(huì)否增加風(fēng)險(xiǎn)?在享受 GitHub 帶來便利的同時(shí),越來越多人都會(huì)多一個(gè)心眼——代碼上傳之后,本地還是不要 rm 留個(gè)底吧。
最后,給一些 GitHub 整理的資料。首先,按照 PR 統(tǒng)計(jì)的受歡迎語言,JS、Python、Java、Ruby、PHP:
熱門關(guān)鍵字,機(jī)器學(xué)習(xí)、游戲、iOS、API、博客、網(wǎng)站、深度學(xué)習(xí)、Ardiono:
fork 最多的項(xiàng)目,TF、Bootstrap、gitignore;貢獻(xiàn)者最多的項(xiàng)目,VSCode、React Native、NPM:
review 最多的項(xiàng)目,DefinitelyTyped、K8S、Homebrew;討論最多的 repo,K8S、Origin、CMSSW
注冊(cè)用戶最多的國家:中國排第二
內(nèi)容已獲獨(dú)家授權(quán),如需轉(zhuǎn)載請(qǐng)聯(lián)系硅星人(ID:guixingren123)。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。