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