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