wordpress 云计算 shell 开源 程序员 Windows Ubuntu Firefox Android 编程 mysql linux Python google 微软 php java nginx centos apache

利用 GitHub 統計分析編程語言發展趨勢

  Donnie Berkholz 分析了 GitHub 的數據,試圖通過 GitHub 新建代碼倉庫的比例,分析編程語言的熱度:

利用 GitHub 统计分析编程语言发展趋势

    

    說明

        關於這張圖,有幾點需要說明的:

只統計新項目,不包括 fork。
包括了 2008-2013 年期間在 GitHub 位居前 10 的語言(不包括編輯器配置語言)。
GitHub 最早主要是 Rails 社區在用。
2009 年,perl 暴漲,這是因為 GitPAN 項目把所有的 CPAN 模塊都導入了 GitHub。
GitHub 的語言檢測是根據代碼的行數。所以一個項目如果將大量的 JavaScript 庫拷貝進去的話,可能會被誤認為是 JavaScript 項目。
這裏顯示的是百分比,而不是數量。所以下降的曲線並不意味著更少的新項目,而是意味著其他語言的增長更快。
        趨勢

        下面我們就每個語言單獨給出統計圖,以便更清楚地顯示單個語言的趨勢:

利用 GitHub 统计分析编程语言发展趋势

        

從這些曲線中,我們可以看到這些趨勢:

GitHub 成為主流: Ruby 曲線的下降,JAVAPHP、Python 等曲線的上揚,意味著 GitHub 從 Rails 社區走向主流。
JavaScript 的崛起: JavaScript 的增長是最明顯的趨勢。這部分歸功於 Node 的興起。當然,正如我們上面分析的,其中也包含一些誤判的倉庫。
Windows 和 iOS 開發默默無聞: 令人驚訝的是,C# 和 Objective-C 所占比例很低,而且幾乎看不出增長。這說明這兩個社區的生態不鼓勵開源。
        push

        如果不從新建項目的角度來觀察,而是從 push 數目來考察,又會有什麽結果呢?答案是趨勢和新建項目基本一致,只有兩處不同:Perl 在 2009 年的 push 數比例增長了 4.1%,而 Ruby 在 2008 年減少了 3.5%。

        這可能是因為項目的主要開發集中在第一年,絕大多數項目 (98%) 只在創建的第 1 年有提交,然後就再也沒有修改了。以前的另一項研究表明, 87% 的項目的貢獻者不超過 5 人。由於貢獻者稀缺,因此項目很難得到長期維護。

        issue

        從 issue 提交的數目則可以看出使用情況。讓我們看一下各語言的 issue 提交趨勢:

利用 GitHub 统计分析编程语言发展趋势

  

      這些圖形和根據新項目統計的結果相當接近。Ruby、Python、C++ 的峰值應當歸功於 GitHub 早期的一些超級流行的項目,當時的 GitHub 上的項目總數還不大,所以統計結果會受這些明星項目的影響較大。

        撇開這些不論,我們仍能看出一些趨勢(側重於和新項目分析不同的地方):

JavaScript 增長趨緩: JavaScript 一直在增長,但是增速有所放緩,趨向於穩定在 25% 左右的比例。從新建項目的統計中也能看出這一點,但是在這裏更明顯。
Ruby 在 2009 年後顯著下降: 這應該可以從上文所說的 GitHub 走向主流得到解釋。
Java 和 php 經過增長之後已趨於穩定: 經過增長之後,兩者的比例都穩定在 10% 左右。
        用戶

        如果我們統計使用某語言為主要語言的新用戶數,又會有什麽結果呢?從這個角度統計,更能反映每個用戶的偏好,而不會偏向創建大量倉庫、提交大量 issue 的活躍用戶。

利用 GitHub 统计分析编程语言发展趋势

      

  從上圖中我們可以看到一些趨勢:

長期而言,幾乎所有語言都呈現下降趨勢: 除了 Java 和 CSS 之外,大部分語言都呈現下降趨勢。可能的願意是:使用非主流語言的用戶越來越多,有些淺度用戶不提交代碼,無法判斷他們使用的語言,而隨著 GitHub 日趨主流,這兩類用戶越來越多。
就長期而言,Java 呈現增長態勢: 這是唯一從長期來看呈現增長態勢的語言,這點意味著 GitHub 被越來越多的企業用戶使用。
        比較

        將以上的統計結果合並在一起,更方便對比,也更容易排除偶然因素的影響:

利用 GitHub 统计分析编程语言发展趋势

    

    從中很明顯的可以看出,GitHub 上主流的語言只有五種: JavaScript、Ruby、Java、PHP 和 Python。此外,CSS 有擠入主流的趨勢,C 和 C++ 勉強可以算主流。除此以外的語言所占比例都很低,即使增速極其迅猛的 Go 目前而言仍然不算主流,還要看未來一兩年的發展。

        碎片化

        接下來我們統計上述 12 種語言之外的語言,結果發現,無論是新增用戶數、新項目數,還是 issue 數,總體而言都有明顯的增長。

利用 GitHub 统计分析编程语言发展趋势

    

    註意,新用戶的增速相比其他兩者要高很多,這很可能是因為上面提到的淺度用戶增長迅速的原因。

        總體來說,編程語言日趨碎片化,GitHub 則日趨主流。

延伸阅读

评论