摘要:開源軟件已經成爲人類數字社會的基石,是全人類共同努力的結晶,開源協做對人類數字文明的發展起到了巨大的推進做用。GitHub 做爲全球範圍內最主要的開源協做平臺,無數個開源社區在其上孕育而生,其背後海量的開發者行爲數據蘊含了大量的個體貢獻規律、羣體協做模式、社區健康情況、生態發展趨勢、以及商業戰略價值。《GitHub 2020 數字洞察報告》是由 X-lab 開放實驗室發起,聯合多家科研機構與開源社區所共同完成的一個反映全球開源現狀與趨勢的開源項目。報告涵蓋了當今全球開源的整體狀況分析、開發者分析、項目分析、領域案例、每個月之星等衆多內容,但願以此繪製人類的"開源數字生態地圖",推進開源社會創新,繁榮開源數字文明。前端
引言git
2020 註定是個不平凡的數字,開源的 2020 也是如此。github
即使是在新冠疫情肆虐的今天,開源依舊大發展,甚至發展的更加迅速。從各項數據指標都能發現:GitHub 的日誌數 2020 年達到了 8.6 億條,相較 2019 年增加了 42.6%;活躍代碼倉庫達到了 5,421 萬個,相較 2019 年增加了 36.4%;活躍開發者數達到了 1,454 萬人,相較 2019 年增加了 21.8%。算法
管理學大師彼得·德魯克曾經說過:「你若是沒法度量它,就沒法管理它」(If you can not measure it, you can not manage it),進而也沒法提升它,而軟件行業至今也尚未找到一個能夠有效度量軟件開發生產效率(Productivity)的方法。segmentfault
整個開源生態系統更是如此,個體如何度量、社區如何度量、管理者如何利用這些數字作更好的決策,這些都是問題。但在咱們看來,這些既是挑戰,也是機遇。要想有效的開展開源治理的工做,就難以繞開度量的問題,GitHub 全域數據給予了咱們這樣一個極佳的機會。前端框架
度量也是一把雙刃劍。度量具備極強的引導性,它會激勵你重視並改善可以度量的元素,但也可能使你忽視沒法度量的元素並使之惡化。在全球大規模的開源社區與生態構建的過程中,如何找到合理的度量,併合理的利用這些度量呢?但願本報告可以給你們帶來一些啓示,這也是本報告的重要目的之一。網絡
今年的《GitHub 2020 數字洞察報告》主要的變化包括:框架
本次報告的主要開源洞察概述以下:機器學習
如下是《GitHub 2020 數字洞察報告》正文。ide
從整體數據來看,2020 年整年,GitHub 全域事件日誌數量總計約 8.6 億條,較 2019 年 6.1 億條增加約 42.6%,是近五年來增加最快的一年。本次報告經過項目與開發者行爲數據,統計獲得 2020 年 GitHub 全域活躍項目數量約 5,421 萬個,活躍開發者帳號約 1,454 萬個,分別較 2019 年增加了 36.4% 與 21.8%。
GitHub 2015 - 2020 年事件日誌量、活躍倉庫數量、活躍帳號數量整體狀況
開源世界的核心是貢獻開源的開發者們,如同 Apache Way 所推崇的 Community Over Code,由開發者組成的社區纔是開源生命力的源泉。本報告將從全域開發者活躍狀況、GitHub Apps 使用狀況、開源開發者典型工做時間畫像、全球開發者時區分佈、開發者使用語言分佈等多個角度對 GitHub 2020 年全域開發者進行全面分析。
全域開發者活躍狀況
經過對全域開發者進行活躍度與活躍倉庫數量的統計,咱們獲得 GitHub 全域開發者的活躍度分佈狀況和單個開發者活躍倉庫數量分佈狀況以下:
開發者活躍度與活躍倉庫數量分佈圖
經統計,活躍度超過 2,000 的開發者數量爲 5,445 個,佔全域開發者數量不足萬分之六。而大部分開發者活躍度都在 [0, 500] 區間內,佔全域開發者數量的 99.45%,說明大多數開發者仍是處於低活躍度的一個狀態。
觀察曲線尾部,咱們發現開發者活躍倉庫數量在最後有一個回升,實際上是因爲部分未被過濾掉的自動化協做類帳號的活躍倉庫數量巨大,遠超正常人類開發者,所以尾部造成 V 形曲線。
另外,咱們經過活躍度統計了全域活躍排名最高的 10 個開發者,其中 8 個帳號爲 GitHub Apps,另外兩個帳號爲自動化協做的開發者帳號。
GitHub 2020 年全域開發者帳號活躍度統計 Top 10
自動化協做機器人因爲運行在服務端,能夠同時服務於衆多項目,從而具備極高的活躍度和協做倉庫數量。
本文所涉及到的諸如活躍度的詳細計算方法請參閱完整的報告內容。
GitHub Apps 使用狀況
在全球最活躍開發者帳號中,大部分爲 GitHub Apps,故本報告對 GitHub Apps 數據作出相關統計,GitHub Apps 年活躍帳號數量(活躍數量)與所產生日誌總量佔整年日誌佔比(日誌佔比)的變化如圖所示。
GitHub Apps 活躍帳號數量與日誌佔比
經過圖能夠看到,GitHub Apps 自 2016 年推出以來,在近年獲得了迅猛發展。從日誌佔比來看,2019 年相較於 2018 年提高了 288%,2020 年相較 2019 年增加 141%,達到了 12% 以上。
將來,基於 GitHub Apps 的自動化協做機器人會被更加普遍的用於項目的自動化協做,更好的幫助開源項目進行大規模協做的管理。
全域日誌時間分佈
因爲 GitHub 事件日誌具備詳細的時間戳信息,故能夠經過對時間維度的統計分析進行洞察,例如在 UTC 標準時間下,全球的工做時間分佈如圖所示。
GitHub 2020 年全球日誌時間分佈狀況
若咱們認爲主流開發者正常的工做時間爲每日 9 時至 21 時,則在全球視角下,經過日誌量來看,能夠看到 GitHub 平臺上的開發者由歐美主導。並且週末的活躍明顯低於工做日,也與 GitHub Octoverse 2020 報告中更多開發者使用 GitHub 工做而不只僅是基於興趣開發相吻合。
全球開發者時區分佈
開發者的地理分佈狀況一直是開源項目全球化指標的一個重要方面。經過對 GitHub 全域開發者活躍度前 5 萬名開發者的統計,咱們獲得全球開發者在各時區分佈估計如圖所示。
GitHub 2020 年全球開發者時區人數分佈圖
能夠看到,在高活躍開發者中,美洲(美國、加拿大、南美)開發者分佈最多,雖然單時區的開發者比例不是最高,但整體開發者佔比高達 33% 左右。而歐洲擁有最高的單時區開發者比例。亞洲的開發者數量依然較少,但中國、俄羅斯開發者相較其餘國家仍是有較高的開源活躍。而太平洋地區則因爲人口分佈緣由,開發者比例最低。
全域項目整體數據
基於開發者活躍度定義,咱們也給出開源項目活躍度的計算方法。在給定的活躍度計算方法下,過濾了 GitHub Apps 相關帳號的協做行爲,共統計獲得 2020 年有效的總活躍項目數量約 1167 萬個。這些項目的活躍度分佈狀況與項目中的參與開發者數量分佈狀況以下圖所示。
GitHub 2020 項目活躍度及參與開發者數量分佈狀況
經統計,2020 年整年項目的活躍度值最高爲 971.1,但高活躍度的項目數量佔比極低,超過 99.95% 的項目活躍度值都低於 10,即絕大部分項目處於低活躍狀態。另外,項目中的參與開發者數量最高達 85546 ,即在 2020 年內最多有 85546 個開發者參與了同一個項目。但有 71.21% 的項目參與開發者數量都低於 10,即 2020 年整年 GitHub 上大部分項目的參與人數都在 10 人之內。
項目活躍度 Top 20
根據項目活躍度定義,咱們對 2020 年整年活躍項目進行了活躍度統計與排名,這裏給出世界活躍度 Top 20 項目的列表。
GitHub 2020 年全域項目活躍度 Top 20
同時,咱們也經過各類渠道採集了中國的開源項目列表,並一樣給出了中國項目的活躍度排名狀況,以下表所示。
GitHub 2020 年中國項目活躍度 Top 20
從這個列表中,咱們發現,PingCAP 在開源領域的表現很是地亮眼。Top 20 項目中上榜的項目有6個。阿里在開源領域中的成績也是很是不錯。Top 10項目中上榜的項目有2個。百度在人工智能領域的表現很是不錯,其深度學習平臺 PaddlePaddle 佔據了2個項目。
中國的 Top 20 項目列表中,包括阿里的 Ant-Design 組件庫,京東基於 React 前端框架的開發框架 taro,由餓了麼(已被阿里收購)前端團隊開源的 Vue UI 組件庫Element等等,這說明了在國內,前端羣體在社區更爲活躍;另外前端代碼通常也不太涉密,所以公司在心態上更開放一些。不過這其中也有一點須要引發注意,上榜的前端項目組件庫居多,可是缺乏核心項目。
而在各大開源項目的背後,基本都有科技公司的支持,咱們計算出了科技公司所維護的開源項目在 2020 年的活躍狀況,結果以下表所示。
GitHub 2020 中國企業開源項目活躍度一覽
在國內企業的開源數據中,咱們能夠看到阿里巴巴的數據在不少指標上的表現裏都很是不錯,有的指標值甚至是其它公司之和,而且在社區化/開放等方面也作得不錯。
OpenGalaxy
經過活躍度的數據統計獲得的結果會受到自動化協做行爲的影響,而且不一樣生命週期階段的項目的活躍度可能不具有可比性,故在本次報告中咱們引入了全域項目協做關係網絡,開源星系 —— OpenGalaxy。
GitHub 2020 全域項目協做關係網絡——OpenGalaxy 2020
GitHub 2020 最活躍的 22.1 萬個開源項目組成的協做網絡圖。該圖中節點的大小表示項目的影響力大小,節點的着色表示節點所屬的協做聚類結果。在協做網絡的影響力評估下,獲得 GitHub 2020 全域影響力最高的項目 Top 20 以下表所示。
OpenGalaxy 2020 全域項目影響力 Top 20
能夠看到,VSCode 的影響力從活躍度的第 5 躍升爲第 1,且高於排名第 2 的 flutter 約 64.7%,以巨大的優點成爲全球最具影響力的項目。事實上這是因爲 VSCode 在成爲全球最流行的 IDE 的同時,也與其餘各領域的頂級項目產生了大量的協做關聯。
OpenGalaxy 具備優秀項目會因優秀開發者而關聯在一塊兒的特性,從而不會因自動化行爲致使影響力指標虛高,具備較好的算法穩定性,影響力指標的變化背後必定意味着開發者羣體的活躍行爲遷移,從而能夠較好的反映出 GitHub 全域的項目影響力情況。其它詳細內容請參見完整的報告正文。
本報告提出一種開源象限(OpenQuadrant)的方法來分析一個開源項目在影響力、全球化、社區規模三個核心特性方面的表現。基於該開源象限分析,使用散點圖來表示,橫縱兩個維度爲項目影響力指標和項目全球化指標,爲了方即可視化,咱們採用取對數的形式呈現上述兩個指標,而使用散點圖上的點的大小來刻畫項目參與的活躍人數,用來反映一個項目的社區規模。
基於以上,開源象限將整個平面分紅了四塊區域,分別是:
基金會項目分析
CNCF 的英文全稱是 Cloud Native Computing Foundation,即「雲原生計算基金會」。
下圖爲 CNCF 下雲原生領域開發者時區分佈圖,能夠看到該領域的開發者時區分佈與全域項目的開發者時區分佈較爲接近,說明 CNCF 雲原生領域的項目全球化程度較高。
CNCF 下雲原生領域開發者時區分佈
CNCF 下雲原生領域的開源象限分析可視化結果以下圖所示。Kubernetes項目不管是在影響力、全球化、仍是社區開發者體量上面,當之無愧的處於第一的位置。
CNCF 下雲原生領域的開源象限
LF AI&Data 是 Linux Foundation下的一個綜合型基金會,支持人工智能、機器學習、深度學習和數據方面的開源創新。
LF AI & Data 下數據與人工智能領域的開源象限分析可視化結果以下圖所示。能夠看到該領域有很多全球化作得比較好的項目,很是符合人工智能全球走熱的趨勢。
LF AI & Data 下數據與人工智能領域的開源象限
Apache 軟件基金會(ASF)成⽴於 1999 年, 是⼀個依據 501(c)在美國成⽴的非營利性公共慈善組織,基金會的使命是爲公共利益而提供軟件。
Apache 下大數據領域的的開源象限分析可視化結果以下圖所示。能夠看到該領域的項目總體分佈具備較好的分散性,Spark、Flink、Hadoop 等明星項目佔據着頭牌位置。
Apache 下大數據領域的開源象限
Apache 軟件基金會下來自中國的項目的開源象限分析可視化結果以下圖所示。能夠看到該領域的 Echarts、Skywalking、Dubbo 和 Shardingsphere 四個項目處於第一方陣,體現了較強的實力。
Apache 軟件基金會下中國項目的開源象限
更加具體的詳細信息請參見完整報告正文。
VSCode 案例分析
VSCode 項目做爲開源生態中的一顆北極星,在 2020 年依舊保持着旺盛的生命力,這一年,共有 206645 條記錄由 VSCode 產生,相比 2019 年的 121490 條,增加了接近一倍;這一年,VSCode 的項目年平均活躍度分值爲 385,在全域項目中排名第 7 位;這一年,有 46639 位開發者(包含協做機器人帳號)在項目中活躍過,在這艘開源航母上發出有力的協做信號。
同時咱們經過開發者在項目中的協做關係構建了 VSCode 在 2020 整年的開發者協做網絡,如圖所示。
VSCode 項目開發者協做網絡
在這個由 2 萬多個開發者組成的協做網絡中,節點爲開發者帳號,邊爲協做關係,節點的大小爲對應開發者帳號的活躍度。在這個協做網絡中,處在網絡核心位置的較大的節點是 VSCode 的核心團隊成員,他們不只有很高的活躍度,並且與其餘開發者均具備較高的協做關係,這個羣體的數量在百人左右。緊接着外側是 VSCode 的重度使用者或貢獻者,他們可能隨時提交 Issue 或 PR 進行討論或貢獻,這個羣體的數量在千人級別。最外側,也是最大量的開發者是 VSCode 的通常用戶和偶發貢獻者,大部分僅在本身關心的問題上提問或討論。
除了頂級項目以外,GitHub 上還有一些短時間內受到廣大開發者大量關注的項目。這些項目多是現象級項目,也有可能在將來成爲頂級項目。這些項目可能與社會熱點有關,例如,與新冠疫情相關的項目,與學生畢業求職相關的項目等等。發現這些項目以及解釋這些項目在短時間內受到大量關注的緣由是頗有意義的。所以,本部分「每個月之星」列舉了在 2020 年每月裏受到開發者大量關注的項目。如下是咱們挑選出來的項目,具體介紹能夠參見報告全文內容:
1月:microsoft/playwright
2月:wuhan2020/wuhan2020
3月:CSSEGISandData/COVID-19
4月:labuladong/fucking-algorithm
5月:design-resources-for-developers
6月:CnC_Remastered_Collection
7月:JaidedAI/EasyOCR
8月:geekxh/hello-algorithm
9月:cli/cli
10月:developer-roadmap
11月:ytdl-org/youtube-dl
12月:beurtschipper/Depix
《GitHub 2020 數字洞察報告》做爲一個數據驅動的可視化工具,主要爲你們提供一個新的視角來觀察今天的開源世界,進而結合各自的行業經驗得到洞見。從本次年報開始,咱們將這個做品也做爲一個開源項目進行運營,逐漸縮短髮布的週期,甚至按需提供個性化的按需服務。
如若發現數據錯誤或遺漏,歡迎提交 Issue 或 PR 到項目的 GitHub 倉庫,本報告文本部分採用 CC-BY-4.0 許可協議。具體請參見完整報告內容。
《GitHub 2020 數字洞察報告》是由 X-lab 開放實驗室發起,由「源光閃爍」開源科技媒體策劃,聯合了華東師範大學數據科學與工程學院、開源社、上海開源信息技術協會、開源社會工程研究院(籌)等多家科研機構與開源社區所共同完成。
在春節期間從零開始,徹底經過線上遠程協做的方式,在十天內協做完成了報告的所有內容,並由來自美國和歐洲的顧問專家提出意見與建議。
本次數字洞察報告的主要貢獻者包括:趙生宇、王偉、周添1、翁振杰、王皓月、夏小雅、朱香寧、楊鳴、寧澤欣、林海銘、王福政、史經犇、婁澤華、顧業鳴、李思穎等,特別感謝吳雪(雪哥)和 Kate(楊佳)做爲項目顧問,爲數字洞察報告提供指導與建議。
咱們歡迎更多的開源愛好人士加入咱們,共同推進開源在世界的發展。
完整的報告內容,請點擊「傳送門」獲取,或經過如下連接獲取:http://oss.x-lab.info/github-...