天天看點

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

近日,開源社釋出了《2018 中國開源年度報告》,以調研和資料報告的方式展示了中國開源的全貌。其中阿裡系獨占鳌頭,活躍度前5的開源産品阿裡系占了4個。而在這4個開源産品中,隻有PouchContainer是非前端産品。

第二篇 資料篇

2.1 指南針篇

指南針團隊使用網絡爬蟲與 GitHub 資料 API 擷取開源代碼庫的資料如原代碼、項目資訊、項目的靜态資訊如項目名稱、起始日期等、與動态資訊如fork數、客戶給與的星數等衆多項目相關的資訊儲存在本地資料結構中。第一階段是處理原始資料與結構化的單元,生成如排序、标簽等總和資料,如此可以透過如排名、統計等資訊的提供。

使用機器學習、自然語言處理、資料分析等技術,綜合所有資料提供如分類、搜尋、推薦、評比等應用服務。

另外運用圖像資料庫的關聯技術,對于高次元智能的連接配接和查詢、以互動方式的可視化的提供更複雜的關聯呈現。

開源@中國

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

如同世界各地的開發人員和各種企業,中國也經曆了對于開源的無感、抵制、懷疑、觀望、嘗試、接受、以至于認可到支援的過程。中國在開源社群的貢獻與影響力,無論在數量與品質、深度與廣度都逐年的擴大與攀升。

Google 以創新的形象深植在開發人員的心中,對開源的貢獻例如在大資料(Hadoop、HDFS 等)、深度學習(如 TensorFlow)都是有目共睹。Microsoft 作為開源的後起之秀,投入的資源和近期的聲勢都開始受到認可。在 2018 年收購 GitHub 也為其投入與支援開源的決心更為凸顯。RedHat 在開源社群的曆史悠久,貢獻和積累豐富,長期在排行榜中居重要地位。BAT 與華為無論在資源的投入比例和開源的推動力度在近年有明顯增加,是以在 GitHub 排名有上升的趨勢。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭
以 Python 的開發者數量為例,2017 年中國已位居第 3 名,已經微幅領先如英國、德國、法國等歐洲傳統 IT 強國。
2018 中國開源年度報告釋出,阿裡系獨占鳌頭

以 repo 數量和開發者數量的總和評比,2018 年美國仍然繼續龐大的優勢領先群雄。德國英國占據二三名。中國作為新起之秀成為亞洲第一,全球第四。

2017 回顧 Forbes: 7 Technology Trends to dominate 2017

●  IoT and Smart Home Tech

●  AR and VR

●  Machine Learning

●  Automation

●  Humanized Big Data

●  Physical-Digital Integrations

●  Everything On-Demand

這是 Forbes 雜志在 2017 從比較商業的角度預測資訊技術的趨勢。說明了比較廣泛的趨勢,每個項目都是資訊技術非常巨大的課題,包含物聯網、AR、機器學習、從人的角度看到的大資料,雲計算的擴充,實體和數字化的內建。

Gartner 對 2017 資訊技術的趨勢預判:

◈ Trend No. 1: AI & Advanced Machine Learning◈ Trend No. 2: Intelligent Apps◈ Trend No. 3: Intelligent Things◈ Trend No. 4: Virtual & Augmented Reality◈ Trend No. 5: Digital Twin◈ Trend No. 6: Blockchain◈ Trend No. 7: Conversational Systems

Gatner 對于資訊技術的預測比較深入,其中第一類是以智能為主的方向,包含人工智能特别在機器學習的範疇是值得關注。手機App和智能的結合,具有智能特性的物聯網,也是令人深省的方向。

和 Forbes 同樣預測 AR/VR 和實體和數字化的內建(Digital Twin)的趨勢。區塊鍊的議題開始被提出來成為關注的趨勢。智能機器人(Bot)的應用以更加廣泛的方式進入資訊技術的領域。

2018 趨勢

Gartner 對 2018 資訊技術的趨勢預判:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

◈ Trend No. 1: AI Foundation◈ Trend No. 2: Intelligent Apps and Analytics◈ Trend No. 3: Intelligent Things◈ Trend No. 4: Digital Twins◈ Trend No. 5: Cloud to the Edge◈ Trend No. 6: Conversational Platforms◈ Trend No. 7: Immersive Experience◈ Trend No. 8: Blockchain

Gartner 接續前一年的預測,把智能的範疇地位到以 AI 為基礎的各種智能,不僅僅是機器學習的方向。還是繼續關注手機 App 和智能的結合還有具有智能特性的物聯網。

受到歐盟對資料存放的限制和使用者對速度、費用的敏感以及物聯網對帶寬和計算的要求,雲計算也演進到霧計算和邊緣計算。

由 VR/AR 到更近一步的沉浸式體驗。

區塊鍊從 2017 年關注的趨勢,到 2018 開始有比較深入的研究,并且投入實際的應用。

全球程式設計語言占比趨勢排名

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

2017 年領先的語言基本的排名沒有大的改變,但是比例卻都縮小了,可能的原因是程式員在嘗試新的語言和新的方向。這個嘗試的結果在 2018 年反應出來的形式是由 2017 年排在第 4 位的 Python 升至第三呈現。其中的意義也反應出人工智能在 2018 更加獲得程式員的認可與接受。傳統的程式設計語言 C/C++ 已經在這樣的趨勢下退居第四,也象征傳統的技術領域面臨消退的現象。

GitHub 2017-2018:GitHub 2017-2018 statistics

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

GitHub 在 2008 正式營運到現今已經 10 年,大約在 2015 更加受到開發人員的青睐而快速的擴張。從 2017 到 2018 無論在人數和代碼 repo 的數量,都有驚人的成長。因為這樣的量級具有代表性,使得 GitHub 的各類資料成為開源的名額和參考。

2017 GitHub Keywords

2018 中國開源年度報告釋出,阿裡系獨占鳌頭
根據 GitHub 關鍵字的顯示,機器學習(Machine-learning)毫無懸念成為最大的關注熱門詞彙。遊戲(Game)成為另一個熱門詞彙。
2018 中國開源年度報告釋出,阿裡系獨占鳌頭

GitHub topic 是依據每個 repo 自主選擇的标簽(tag)歸類在同一個主題下。這個排名方式是按照該主題所有 repo 的參與者授予的星數(star)總和以衡量受開發人員認可的程度。

◈ JavaScript 作為腳本語言,經常和其他程式設計語言如 Java 和 Python 搭配,本身也可以在 web 開發裡面簡單功能實作有其貢獻,加上相對比較容易上手的優勢,獲得開發者的喜愛占據第一。◈ React 與 Node.JS 作為 Web 開發架構排名二三。◈ Python 有文法簡潔高效的優勢,并且在資料分析的支援有豐富的積累,在人工智能浪潮的推哄下,有排名上升的趨勢來到成為程式設計語言的第一來到總體排名第六。◈ 機器學習與深度學習作為熱門的主題,經過不到 2 年的積累排名 12、13,而且沒有消退的迹象,以後上升的機會非常大。

◈ Java 在背景資料處理、複雜功能實作,各種支援架構的品質和選擇上有一定的積累和優勢,仍然是受到開發者的歡迎,但是也處于持平穩定的狀态。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

許多人應該對 freeCodeCamp 這個排名第一的 repo 和其他如 awesome、Your-Don’t-Know-JS 等排在前面的 repo 感到陌生和不解。這些是以推廣和服務某一理念的 repo,可能因為鼓勵其使用者點贊加星數,是以擁有總多的星數而排在高位。

雖然和一般開發者的對星數的給與的采取謹慎的方式不同,但是 GitHub 也提出 GitHub 不僅是代碼庫,也是一個意見交換的平台(Hub)的論點。也許這樣的機制也是提倡開源、自由、創新的一種認可吧。

有趣的是,bootstrap 作為 topic 并沒有排在前面,但是單就 repo 的角度,卻有比其他 repo 高的星數而成為第二。Google 的 Tensorflow 作為深度學習的架構,以 repo 受喜愛的程度高居第五,在上升的速度和喜愛的程度實在令人驚訝。

排名第九的 JavaScript 實際是 javascrip style guide 的一個以 javascript 為開發主題的文檔內建。不是 javascript 本身的開源項目。

是以從這個實際的排名為例,也顯現出 GitHub 用星數為排名依據的方式,有其不符合開發人員認知的地方。

開源的現況

由以上 GitHub 的排名或是分類的結果,可以看出由使用者自己給星數或是選擇自訂 tag 來進行分類的方式,雖然讓使用者有比較高的自由選擇和評判方式,但是可能會有失公平的地方。

我們來看一下開源項目的理想的情況:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

對于規範的開發項目,項目說明、文檔、架構、代碼都是非常清楚和有條理,是以使用者也會有多的 star 和 fork 數。使用者可以根據這些說明文檔等文字,綜合 star/fork 數判斷是不是這個是要找的項目/代碼。

使用者可以參考項目中提供的範例甚至是最佳實踐方式,使用這個開源項目的内容。

甚至使用者還可以對這個開源項目作出貢獻,增加修改開源代碼。 使用這樣的開源,省時又省心!

但是真實的情形,不一定是如想象的樂觀:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

◈ 但是開源裡有更多的實驗性質或是不完善的項目,因為沒有受到關注,是以沒有星數可以參考,使用者應該嘗試使用還是選擇其他星數高但是不一定符合自己需求的項目?◈ 具有同類 tag 的項目可能多達數百個,使用者應該如何選擇?◈ 許多的項目文檔說明可能也不是非常齊全,使用者如何選擇?◈ 開源項目可能對其他架構有依存的關系,如何知道去評量是否符合已有的架構或是依賴庫,而不用加入更多依存的架構和依賴庫而增加自己項目的複雜度和維護的風險?◈ 項目是否有可能太常更新或是沒有更新?

這些都是讓評估使用開源項目會遇到的問題…

小結

資訊技術在 2017 年有人工智能的議題開始發酵,許多的嘗試、學習、研究造成新的關注和投入,由許多迹象顯示 2017 年是一個變動(dynamic)時期。進入 2018,人工智能累積研究人員、開發人員、民間企業以至于國家級别的關注,在全球掀起人力與資源投入的風潮。這個現象可以從程式設計語言的排名在 2018 年 Python 升至第三、還有在 GitHub 包括 Tensorflow 等屬于機器學習 / 深度學習的類别排名快速爬升的現象得到驗證。

以 JavaScript/Node.js 等架構為代表的手機應用和網際網路相關的開源,仍然是最大宗和熱門的項目,基本上是以持平的狀态維持在原有軌迹繼續運作。不管從活躍度、貢獻度、參與度和涵蓋度都是領先的情形。由 Java 代表的傳統開源項目有一定的積累,在以應用和基礎架構項目的廣度深度仍舊相當厚實,雖然成項目和貢獻者長已經有飽和的現象。

先前新興的熱門技術如物聯網、容器技術和區塊連結續前面的動能仍然有創新的議題和項目出現,讨論和參與的熱度還是比較高。相較于以往的熱門議題如雲計算和大資料有了相對成長緩慢的趨勢,但是在于貢獻者的參與比較穩定。

2.2 Grank 篇

本篇以 GitHub 資料為基礎,按照設定方法進行采集、聚類和分析開源生态的狀态。本篇作為《中國開源調查報告》的一部分,提供了另外一種從資料的視角來觀察中國開源項目發展的方法。

Grank 是本報告制定的一個指數,用于綜合評估一個開源項目、開源組織的健康程度。

Grank 模型介紹

我們認為,一個健康的開源項目應該展現為以下兩個方面:

◈ 項目的活躍度趨勢◈ 項目的社群化(去中心化)程度

而這兩個方面分别有多個因素組成:

活躍度和活躍度趨勢

項目的活躍度,我們定義為項目的送出數、 拉取請求數和貢獻者數(其它資料,如代碼行數、檔案數、issue 數、 fork 數、star 數,要麼是權重相對低得多,要麼是代表意義不夠确定,此處忽略不計入模型)。

但是,對于不同的項目,其橫向比較其活躍度,或有不同的活躍度形态,或不具備可比性。很難說一個項目比另外一個項目的送出數高,而拉取請求(PR)數低代表的确切含義。是以我們不認為對不同項目的這些資料進行絕對值的比較有太多的科學意義。

是以,我們認為一個項目本身的活躍度變化的趨勢和幅度,會更有項目間比較的意義。

如果以三維空間來描述一個項目的活躍度,以送出數、拉取請求數、貢獻者數為三維,可以确定在某個時間點某個項目的坐标,那麼計算一段時間内,該坐标點的移動軌迹和速率,可以真實的反映該項目的活躍度趨勢。

考慮到按周工作的作息時間的普遍影響,我們以一個工作周作為一個時間采樣點,然後計算連續的幾周内該坐标的移動速率。這反映了該項目的發展速度。

社群化程度

開源誕生于社群,繁榮于社群,根植于社群,雖然現在大型組織、商業公司也紛紛投身于開源生态,但是我們認為,開源項目的生命力仍然在于社群。我們并不否認機構、商業公司對開源的巨大貢獻和影響力,但是如果一個開源項目變成了一家或幾家大企業的私人遊戲,其必然失去開源項目的生命力,它或許會在商業上取得成功,但是那個成功不是開源項目的成功模式。

是以,我們認為需要有一個評估開源項目的社群化(去中心化)程度的名額。項目(尤其是軟體項目)的一個重要屬性是開發人員的社群化身份,是以,我們以實際向項目貢獻了代碼的人員的社群化離散程度來評估項目的社群化程度。

每個參與項目開發的人員均有其身份屬性,這個身份可能是企業雇傭身份,也可能是社群志願者身份。我們通過對項目的送出中的送出者資料進行收集,然後根據開發人員的身份資訊、郵件字尾等依優先級來判斷其所屬身份。然後對這些資訊進行聚類,以一個離散評估模型來評估該資料集的離散程度。

雖然項目越中心化,其發展風險越高,但是,并不是社群化程度越高的項目就越健康,過于離散的項目也容易出現項目分裂、疊代緩慢等問題。這顯然是存在一個适當的區域。

通過上述兩個指數,我們可以對項目進行象限劃分,以“項目活躍度”和“社群化程度”為兩個象限軸。

Grank 項目

根據如上的方法論,我們(Linux 中國)發起了一個開源項目,用于提供分析工具,該工具由 Linux 中國核心成員 Bestony 建立,并貢獻給社群,以期進一步完善。

項目位址: https://github.com/LCTT/Grank

資料采集方法

我們采用 GitHub 提供的 API 進行資料采集,資料采集範圍為國内主要網際網路公司在 GitHub 上的重要(活躍)項目(以下清單排名不分先後):

◈ 阿裡巴巴(Ant Design、螞蟻金服、Angular Developers、淘寶、天貓前端、eggjs)◈ 華為(華為 Hadoop)◈ 騰訊(AlloyTeam、tarscloud)◈ 百度(FEX、EFE、前端)◈ 餓了麼(前端)◈ 網易◈ 搜狐◈ 奇虎 360(360 企業安全)◈ 唯品會◈ 豆瓣◈ 大衆點評◈ 小米◈ 美團(美團點評)◈ 美麗◈ 豌豆莢◈ 當當◈ 有贊◈ 深度◈ DNSPod◈ 新浪微網誌◈ 今日頭條◈ 滴滴出行◈ eBay

以及各個公司捐獻給 Apache 基金會的項目:

◈ Apache carbondata(華為)◈ Apache eagle(eBay)◈ Apache kylin(eBay)◈ Apache hawq(Pivotal)◈ Apache rocketmq(阿裡巴巴)◈ incubator-dubbo(阿裡巴巴)◈ incubator-weex(阿裡巴巴)◈ incubator-doris(百度)◈ incubator-echarts(百度)◈ incubator-griffin(eBay)◈ incubator-skywalking(個人)

根據對上述組織的近 500 個項目的資料采集和分析,我們得出了如下結果。

資料結果點評

通過對上述項目從 2017/10/1 至 2018/9/30 止的資料進行分析,其活躍度名額資料如下:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

其中前五名的活躍度變化趨勢為:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

其中我們可以看到,阿裡系項目獨占鳌頭,而這五個項目中有三個是前端項目。

這五個最活躍項目的社群化趨勢為:

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

可以說,除了阿裡巴巴的飛冰(ice)項目外,其它項目的社群參與程度都很高。

其中前五名的項目的各自情況如下:

1. 螞蟻金服的 ant-design 前端項目

項目位址: https://github.com/ant-design/ant-design

這是一個“服務于企業級産品的設計體系”,是由螞蟻金服體驗技術部采用 React 封裝的一套元件庫。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

從其最近一年的活躍度資料(紅)來看,其一年之内就有 2298 個送出,最多的一周有 122 個送出;而在這一年内,新增了 350 位貢獻者和 1057 個 PR。可以說是一個活躍度非常高的前端項目了,而且從趨勢上,其近期的活躍度趨勢還在增加。

不過,從其社群化指數(藍)上看,其社群參與比例在近期略有下降,但是整體來說,依舊維持較高水準(95% 以上)。

2. 阿裡巴巴的 pouch 容器引擎

項目位址:https://github.com/alibaba/pouch

這是阿裡巴巴在雲計算方面的一個重大項目,其對于阿裡巴巴集團内部的容器化程序起到了極大的推動。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

這個項目迄今也隻有一年的發展曆程,但是其活躍度從一開始就高居不下,甚至在 2018 年 8 月有個顯著的活躍高峰。雖然其一年來隻有幾十位做出送出的貢獻者,但是每周的送出數量、PR 數量都很穩定,說明項目的發展很健康。

比較有意思的是,這個項目的社群化程度比較高,也比較穩定,從其官網和 GitHub 首頁上的文檔和說明全是英文來看,其國際化推廣的程度比較高。

3. 華為捐獻給 Apache 基金會的 CarbonData 項目

項目位址:https://github.com/apache/CarbonData

Apache CarbonData 項目是一個索引列資料存儲方案,可用于大資料平台(如 Apache Hadoop、 Apache Spark)的快速分析。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

其項目的活躍度相當可觀,社群化程度也能穩定在很高的程度上。這個項目是唯一進入前五的 Apache 基金會管理項目,也是華為所有項目中活躍度最高的項目。

4. 阿裡巴巴的飛冰前端項目

項目位址: https://github.com/alibaba/ice

這又是阿裡巴巴的一個項目,同樣是前端項目,其“海量可複用物料,配套桌面工具極速建構前端應用”。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

這個項目的出現也不久,還不到一年,其活躍度也相當可觀,但是同樣,随着項目的成熟,其社群參與度也一路走低極低水準。

5. 餓了麼的前端項目 element

項目位址:https://github.com/elemefe/element

這個項目是餓了麼前端部門“為開發者、設計師和産品經理準備的基于 Vue 2.0 的桌面端元件庫”。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

從該項目的活躍度來看,波動比較大,且近期有活躍度減低的趨勢。而社群化程度則保持較高的程度。

在前五之外,我們要額外對第 6 名 Apache 孵化項目 skywalking 做一個說明:

6. 個人主導的 Apache 孵化項目 skywalking

項目位址:

https://github.com/apache/incubator-skywalking

這是國内唯一進入 Apache 基金會的由個人主導的開源項目。它是一個分布式跟蹤系統和應用監測系統,主要用于微服務、容器環境的監測。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

作為一個由個人主導的開源項目,而且是活躍于雲原生領域的,能取得這樣高的項目活躍度十分不易。

從上述表格資料可以看到,阿裡巴巴/螞蟻金服在開源方面活躍度很高(前 50 名中,超過了一半)。從下圖可以看出來,其整體的活躍度和社群化程度都不錯。

2018 中國開源年度報告釋出,阿裡系獨占鳌頭

另外,除了阿裡巴巴、騰訊、百度、華為之外,有贊、餓了麼、唯品會也有幾個項目的活躍度很高,可見現在注重開源的網際網路企業越來越多了。

而在上榜的項目當中,前端項目占據比較多,這可能與這種項目的疊代速度較快有關。

原文釋出時間為:2018-10-22

本文作者:開源社

本文來自雲栖社群合作夥伴“

阿裡系統軟體技術

”,了解相關資訊可以關注“

”。