Github公佈2019軟件業報告,看看中國開源軟件有何特點

本次使用 2019 年全年 GitHub 日誌進行統計,總日誌條數約 5.46 億條,相較 2018 年的 4.21 億條增長約 29.7%。在上述開發者活躍度與項目活躍度的定義下,統計得到 2019 年總活躍項目數量約 512W 個,相較 2018 年的約 313W 增長約 63.6%,2019 年總活躍開發者數量約 360W,相較 2018 年的約 303W 增長約 18.8%。

概述

對於這 512W 個項目的活躍度分佈,如圖1所示;這 512W 個項目的活躍開發者人數分佈,如圖2所示。對開發者活躍度與項目活躍度的定義參見附錄部分的詳細說明。

Github公佈2019軟件業報告,看看中國開源軟件有何特點

圖1: 整體項目活躍度分佈


Github公佈2019軟件業報告,看看中國開源軟件有何特點

圖2: 活躍開發者人數分佈


上述兩張圖中,我們使用了對數座標,事實上在所有倉庫中,僅有 1399 個項目的活躍度超過了 1000,佔總項目數量不足萬分之三;而參與開發者數量超過 1000 人的項目僅有 333 個,可謂萬里挑一。

世界 Top 10 項目

根據上述給出的項目活躍度定義,我們對 2019 年全年活躍項目進行了活躍度統計與排名,這裡給出世界活躍度 Top 10 項目的列表:

從圖中看到,雖然國產開源在不斷提高(後述),但是放眼全球,核心技術與影響力仍然是微軟與谷歌。

Github公佈2019軟件業報告,看看中國開源軟件有何特點

其中996.ICU 作為一個現象級開源項目,大家並不陌生,他並不是一個真正的項目。2019 年 3 月 到 4 月,中國程序員為抗議 996 工作制,在GitHub發佈了一個名為 996.ICU 的項目,該項目短時間內獲得超過 20 萬顆星星,成為最耀眼的明星項目。

“996.ICU”是每天早 9 點到崗,一直工作到晚上 9 點,每週工作 6 天。

然後直接進入重症加強護理病房(Intensive Care Unit)

而活躍度最高的項目則是來自微軟的跨平臺代碼編輯器Microsoft/vscode;此外微軟使用開源的方式來建設其 Azure 雲平臺的項目MicrosoftDocs/azure-docs排名第三,顯然微軟在開源上的努力獲得了程序員的認可。

在這個TOP10排名中,涉及了三個來自谷歌的項目,分別是:前端跨平臺開發框架Flutter、容器編排系統Kubernetes以及深度學習框架TensorFlow,這也進一步說明谷歌在開源上的努力和影響力獲得業內的認可。

中國 Top 20 項目分析

我們對所有排名的項目,篩選出了中國 Top 20 的項目,列表如下:

Github公佈2019軟件業報告,看看中國開源軟件有何特點

從Top 20列表信息中,我們可以看出,996icu/996.ICU的綜合活躍度數值遠遠高於其他項目,數值上超過其他項目一個數量級。該項目中數值最高的指標為open issue,同樣超出其他項目一個數量級,達到了 22080,最低的指標為review comment,只有 144。

列表中兩個比較有趣的項目是 selfteaching/selfteaching-python-camp 和 Advanced-Frontend/Daily-Interview-Question,這兩個項目的活躍排名分別是第4 和第 13,分別對應了教育和麵試求職兩個領域。這側面反映出大眾對這兩個領域的需求和關注度非常高。

另一個非常注目的項目是 pingcap/tidb,該項目的review comment是 20 個項目中最高的,達到驚人的 14913,相對比之下,該項屬性下排名第二的 PaddlePaddle/Paddle 只有它的不到 60%,而 issue comment 僅次於 996icu/996.ICU,open PR 僅次於selfteaching/selfteaching-python-camp與 PaddlePaddle/Paddle,分別排名對應屬性的第二與第三位。而其 608 的開發者參與數量,與其他前端項目相較甚遠,但卻有著如此高的活躍度,也可以看出其社區的硬核程度,之後我們會對該項目做進一步的分析。

從這個列表中我們還發現,在中國開源成績比較突出的兩家公司是百度和阿里。百度的深度學習平臺PaddlePaddle佔據了兩個項目,分別是核心框架Paddle和模型庫Models;此外開放自動駕駛平臺Apollo也榜上有名。另外,由百度貢獻的數據可視化項目ECharts在2018年進入Apache孵化器,此次榜單中ECharts排名11。

咱們再來看看阿里,阿里“服務於企業級產品設計體系” 的Ant-Design,是螞蟻金服採用 React 封裝的一套組件庫,在中國範圍內屬最活躍的開源項目,排名第二。上榜的基於Java的RPC框架Dubbo,也在今年成為Apache 頂級項目。另外上榜的阿里項目還包含動態服務發現Nacos。

在中國的Top 20列表中,我們發現前端項目幾乎佔據了一半,包括阿里的Ant-Design組件庫,由餓了麼(已被阿里收購)前端團隊開源的 Vue UI 組件庫Element,由有贊基於Vue構建的移動UI組件庫Vant等等。這說明在國內,前端群體在社區更為活躍;另外前端代碼一般也不太涉密,因此公司在心態上更開放一些。

不過這其中也有一點需要引起注意,上榜的前端項目組件庫居多,但是缺少核心項目。例如,在這方面,谷歌推出了自己的Angular.js框架,臉書Facebook推出自己的React.js框架來構建前端UI,但是基本上國內的騰訊、百度、阿里等都使用第三方Vue框架來開發,換句話說,BAT缺少自己的“芯片”。

開發語言分析

我們分別對世界項目活躍度 Top 1000 的項目、世界項目參與人數 Top 1000 的項目和中國開源項目統計了不同開發語言的項目數量以及使用不同開發語言進行 PushEvent 操作的開發者的數量,二者相乘估計使用不同開發語言的開發者的數量。(如圖9和圖10所示),可以發現 JavaScript 使用最多。

Github公佈2019軟件業報告,看看中國開源軟件有何特點

世界項目活躍度 Top 1000 項目開發語言統計


Github公佈2019軟件業報告,看看中國開源軟件有何特點

世界項目參與人數Top 1000項目開發語言統計


原因我們分析如下:

  • JavaScript 是一門直接被嵌入到 HTML 中的腳本語言,是一門可以被 Web 瀏覽器理解的語言。它無需編譯、在瀏覽器環境可以直接運行的特性,讓 JavaScript 項目在活躍度的提升上佔據了優勢。
  • 谷歌開發的 Angular 和 Facebook 開發的 React,另外還有 Vue,這些主流前端框架都是 JavaScript 生態圈中的一部分。
  • 這幾年隨著行業的發展,JavaScript 變得幾乎”無所不能“,現在基本所有的主流互聯網應用,其前端都有大量的 JavaScript 代碼。比如我們日常使用的郵件、社交工具等等。

此外,全球項目活躍度 Top1000 和全球項目參與人數 Top 1000 的項目中,Python的使用居於第二位,分析可能的原因為:

  • Python 相較於其他主流編程語言具有更好的可讀性,簡單易學、易於維護。
  • Python 應用範圍廣,它自帶的各種模塊加上豐富的第三方模塊,免去了很多“重複造輪子”的工作,可以更快地實現多種功能。
  • 人工智能的浪潮進一步推動了 Python 的發展,很多人工智能任務以及大數據分析都會優先使用 Python 實現。

在中國開發者社區中,我們發現除了JavaScript外,Java和Go的活躍度也很高,分別排在第二、第三,如圖11所示。

Github公佈2019軟件業報告,看看中國開源軟件有何特點

中國開源項目開發語言統計


我們認為:在服務器和移動端開發上,Java 還沒有真正意義上的對手,可以預見Java 依舊是企業軟件、大數據、電商...最核心的技術棧。Go 是谷歌開發的新一代編程語言,在過去的幾年裡取得了很大的成功。現代的雲端、網絡和 DevOps 軟件的很大一部分都是用 Go 編寫的,例如 Docker、Kubernetes、Terraform、etcd、Istio 等項目。許多公司也將它用於通用場景下的開發工作,Go語言中國社區也極具活力。

對比全球的開發語言排行榜,我們發現中國開源項目中Python的使用與Java、Go、C++相比較少。另外還值得關注的是,Ruby和PowerShell在中國社區受重視的程度還不夠。

技術公司開源項目一覽

其實各大開源項目的背後,基本都有科技公司的支持,我們給出了一個科技公司維護的 GitHub 組織和項目列表,並根據該列表,計算出了科技公司所維護的開源項目在 2019 年的活躍情況與開發者參與情況,結果如下表所示:

Github公佈2019軟件業報告,看看中國開源軟件有何特點


在國內企業的開源數據中,我們可以看到阿里的數據幾乎在所有類別裡都名列第一,有時甚至是其它公司之和,並且在社區化 / 開放等方面也做得不錯。但放到全球角度,出自阿里的知名度相對較高的項目,還是Apache Dubbo,以及在2019年收購而來的大數據流處理框架Flink。2019年9月在杭州的雲棲大會上,阿里宣佈賈揚清正式擔任阿里巴巴開源技術委員會負責人,開源將明確升級為阿里技術戰略之一。

AI 是百度開源最鮮明的競爭力,比如PaddlePaddle和自動駕駛平臺 Apollo。PaddlePaddle也是當前國內唯一開源開放的深度學習平臺。

華為在2019年也做了不少開源的工作,推出了原生數據庫 GaussDB 以及鴻蒙OS等,一改保守作風。

而騰訊2019年也對外宣佈”已在 Github 上開源了86 個項目,超過 1000 個貢獻者參與了開源貢獻,擁有超過 25 萬個 Star 數,騰訊在 Github 全球公司貢獻榜上排名前十“。

可以看出,各大企業近年來均在不斷加大開源社區生態建設。

本文主要摘錄:GitHub的X-lab2017


分享到:


相關文章: