中國互聯網公司開源項目調研報告

近年來,開源技術得到越來越多的重視,微軟收購GitHub、IBM收購紅帽,都表明了開源的價值。國內公司也越來越多的參與開源,加入開源基金會/貢獻開源項目。但是,它們到底做得如何呢?爲此InfoQ統計了國內在GitHub上較活躍的7家一線互聯網公司的50多個賬號的2800多個項目,爲大家呈現一部分答案。

一、公司及賬號

本次參與統計的公司包括百度、阿里、騰訊、華爲、美團、360、小米,一共7家公司,在最開始的時候,我們選定的是10家公司,它們都是國內互聯網的代表型企業,但由於其他3家公司或沒有統一管理自己的開源項目,又或是開源項目太少,沒有分析的價值,所以我們就刪去了。

在蒐集這7家公司的開源賬號的過程中,我們儘量收集了網絡上的信息以避免遺漏,不過由於統計口徑不一,有些公司只承認在GitHub公司主體賬號旗下的項目,導致團隊賬號可能難以收集全面。但是我們又認爲有必要收集以團隊身份出現的公司賬號,它們的行爲也代表公司的一部分,公司也應該將這些賬號視爲公司開源戰略的一部分,進行統一治理。

具體如下:

注:餓了麼和優酷已經被阿里收購,故歸入阿里旗下,下文分析的數據都是基於非fork的項目。

二、TOP10 開源項目

Star數最多的項目 TOP10

Star數越多,表示該項目越受歡迎,在Star數TOP 10的開源項目中,阿里有6個項目,百度有1個項目,騰訊有2個項目,美團有1個。

螞蟻金服的ant-design以4.3萬star數領跑,即使放在整個中國範圍內,它也是最受歡迎的開源項目之一。而計算公司的項目數方面,阿里以6個遙遙領先,說明阿里在開源方面受到開發者的廣泛認可。

在領域方面,star數最多的項目裏前端相關的項目有7個,包攬前三,一方面說明國內公司在前端開源方面做的最好,另一方面也是因爲前端項目在GitHub上普遍更受歡迎。

貢獻者最多的項目TOP10

注:這裏面的貢獻者只包含擁有GitHub賬號的人,郵箱未註冊GitHub的開發者未顯示在內

Contributor數越多,表示項目越開放,在貢獻者數排名前十的項目中,阿里令人吃驚的佔據了8個席位,幾乎全部包攬,百度則佔據剩下兩個。阿里的ant-design項目再次名列榜首,包括衍生項目ant-design-pro也榜上有名。

貢獻者數量是體現一個項目是否開放的重要指標之一。項目越開放,它就會接納更多來自社區的貢獻。而由公司推出的開源項目尤其需要關注這一指標,因爲有些公司開源項目只是將源碼開放出來,但具體開發和路線演進並不允許它人染指。

我們可以看到,阿里已經意識到這個問題並努力做出了一些改進,我們也期待有更多國內公司的開源項目能夠擁抱社區。

Commits數最多的項目TOP10

commits提交數越多,表明項目越複雜,開發週期較長,協作者數量更多。在commits數前十中,阿里佔了5個,百度佔了3個,騰訊和美團各有一個。

這裏筆者發現一個現象:部分大公司會fork一些知名的第三方項目並創建分支,但並未體現在github的fork關係裏,其中以阿里居多,如AliOS-nodejs項目。筆者認爲,這種行爲並不值得鼓勵。

在Top10項目中,百度的Paddle和Apollo項目名列前茅,說明百度聲稱的在AI方面基於開源理念來打造項目和產品,兌現了它自己的承諾,值得尊重。

另外我們發現,這10個項目有4個都是Apache基金會項目(Flink由阿里收購而來),說明Apache基金會在開源方面名不虛傳,也說明國內公司的確是把最好的項目捐獻給了Apache基金會。

三、公司開源情況

哪些賬號開源最厲害

在開源賬號方面,各大公司的官方賬號並不是擁有開源項目最多的賬號,這一桂冠被阿里的Kissy gallery團隊摘取,其原因是這個賬號是Kissy前端框架的組件庫賬號。遺憾的是,Kissy項目事實上已經死亡,其活躍期在2015年之前,在那個時代,Kissy團隊可以說是國內最早利用GitHub的先驅之一,它們固然值得尊重,但阿里是不是應該對這些賬號做一些清理呢?

項目整體star數知多少

我們將所有公司的項目Star數做了一個分佈圖,我們發現,騰訊開源項目雖然少,僅有130個,但是質量高,Star數100以上的項目有97個,佔總數的三分之二以上;而阿里的項目雖多,Star數100以上的項目也只有237個。這說明騰訊在對待開源時更爲謹慎,推出的項目都是對開發者有幫助的高質量項目。

這裏面最極端的公司當屬華爲,它雖然擁有218個非fork的項目數,但Star數100以上的項目僅有14個。其中的原因,一方面是華爲多以貢獻者的身份參與第三方的底層項目,如Linux、Kubernetes等,這些在統計中未能體現;另一方面,也說明華爲在自有開源項目做得還不夠,其表現與華爲IT巨頭的身份並不匹配。

各個公司強在哪些領域

我們統計了各個公司Star數TOP10的項目,並對其按領域分類。我們發現:

  • 大前端(前端和移動開發)項目最多,在阿里、百度、360、美團中前10個幾乎都佔了一半。騰訊是最誇張的,前10個項目裏竟然有9個是大前端領域的。
  • 百度有4個是AI領域項目,在衆多公司中別樹一幟,包括Paddle、Apollo等都比較受歡迎。
  • 華爲雖然項目少,但基本全是基礎設施領域的項目,如ServiceComb、CarbonData、LiteOS等。
  • 小米有幾個操作系統相關的項目較受歡迎。

哪家公司開源最活躍

最近更新時間可以表明項目的活躍程度,如果項目在過去一年都沒有更新,說明很可能已經不再維護。

這裏,我們統計了最近更新時間在三個月內的所有項目,發現這些項目中阿里的項目數是最多的,一共有269個,佔了48%,其次是百度,有98個,佔了18%。

GitHub的issue區爲開發者求助和協作交流提供了非常好的平臺,而公司對項目的維護程度可以從公司解決掉的issue裏窺知一二。

這裏我們按公司分別統計了它們歷史上解決的issue數(即close掉的issue數),其中阿里解決了超過6萬個issue,比之後的公司解決的加起來還要多,說明阿里對開源項目還是挺上心的,並不是傳聞中的“開源後不管”。

排名靠後的公司在這一方面還有待努力。

總結:中國公司開源現狀

上面的數據給我們提供了一些有趣的視角來研究國內開源的現狀,其中,一些數據驗證了我們之前的看法,比如大部分公司的優秀開源項目都以前端居多,因爲前端羣體在社區更活躍,前端代碼一般也不太涉密,因此公司在心態上更開放一些。

而另一方面,有些數據出乎我們的意料之外,比如阿里的數據幾乎在所有類別裏都名列第一,有時甚至是其它公司之和,並且在社區化/開放等方面也做的不錯。

騰訊在自有開源項目上數量偏少,這也與公司過去並不重視開源有關,近年來,騰訊積極地靠近各個開源基金會,也開源了一些高質量項目,收穫了開發者的口碑。

華爲在自有開源方面顯得有些保守,它的發力點更多在參與社區開源上,自家開源的很多項目多爲操作系統和基礎架構相關。

而我們還可以看到,個別人和團隊對整個公司的開源能產生重大影響,比如阿里的玉伯不僅是Kissy的創始人,也帶領團隊開發和維護ant-design,撐起了阿里開源的大旗;百度有echarts團隊;騰訊有Alloyteam;360有奇舞團等。

不好的方面則是,這些最優秀的中國互聯網公司,在底層關鍵項目上和國外還是存在較大差距,如ant-design/element等,只是React、Vue等前端框架的組件庫,是其生態系統的一部分,而自己作爲生態核心的項目在國內極少,因此,國內開源只是看着熱鬧,在實際作用方面,和國外差距極大。

另外,國內公司對於GitHub還沒有做到物盡其用,在開源治理上還有所欠缺,我們看到有大量的fork項目,有大量的空項目,這些項目應該第一時間清理。對於不再維護的項目,GitHub也提供了歸檔功能,國內公司應該善加利用。

注:

  1. 這裏選取的賬號爲公司賬號/項目賬號,或部門/團隊賬號,非個人賬號。
  2. 部分項目因捐獻給Apache基金會有重合已剔除,並只保留Apache裏的數據。
  3. 數據統計截至日期爲2019年3月22日,其後數據未計入。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章