追蹤 GitHub 項目的流行度

jopen 9年前發布 | 5K 次閱讀 Github

介紹

GitHub 是世界上最大的開源軟件托管平臺,因此追蹤 GitHub 流行度對于軟件開發者和用戶都非常重要。本篇文章是介紹一個 GitHub 流行度追蹤框架,使用他們的 Stars 數目來評估 GitHub 的流行軟件。本文使用的數據是 GitHub 5 月 1 日的數據。

度量流行度

這里我們考慮 GitHub 上前 24 強編程語言,通過 GitHub 先進的搜索引擎分類出來的。下面的數據是每個語言前 1000 個庫的 stars 數分布。

追蹤 GitHub 項目的流行度

假設在 24000 個樣例中系統中前 10% 的系統是流行的,前 1% 是非常流行的。

下面這個表展示的是每個編程語言流行和非常流行的系統數目

追蹤 GitHub 項目的流行度

流行度增長模式Popularity Growth Patterns

隨著時間的推移評估應用的流行度,我們限制分析流行系統時間至少是 52 周。以這種方式,我們研究了 2138 個流行系統(89% 的初始樣例)。為了這個系統,我們定義 Rt 是在周數 t 排名列表的排名對數(基數為 2)。這個排名對數是根據流行系統的 Stars 數目的 right-skewed 確定的。最受歡迎的系統排名是 1。最早的周是 1,最新的是 52。同時還定義了 RTop 和 RBottom 作為最高排名和最低排名。

我們得出以下的幾種流行度增長模式:

持續性增長:在分析周期下持續性增長,計算方式:

(RBottom ? RTop ) < 0.25

示例:

追蹤 GitHub 項目的流行度

快速增長:計算方式:

(ROld ? RNow ) > 1 ∧ (Rt+1 ≤ Rt) in at least 90% of the weeks t

示例:

追蹤 GitHub 項目的流行度

緩慢增長:計算方式:

(RNow ? ROld) > 1 ∧ (Rt+1 ≥ Rt) in at least 90% of the weeks t

示例 (which resulted in a decrease on their rank):

追蹤 GitHub 項目的流行度

病毒式增長:在很短的時間內(比如一周)達到最高的 Stars 數目

示例:

追蹤 GitHub 項目的流行度

下面列表展示的是每個編程語言持續性增長,快速增長,緩慢增長,病毒式增長的情況:

追蹤 GitHub 項目的流行度

流行度相關的 Forks 和相關使用

Forks:下面的數據展示了一個項目流行度和TA的 forks 數的關系。我們可以看到 forks 和 Stars 很強的正相關關系(Spearman rank correlation coefficient = 0.55)。

追蹤 GitHub 項目的流行度

客戶端:為 了關聯客戶端使用和 Stars,我們專注于一個限制的應用分組,這是由 NPM 注冊表的 Node.js 基礎庫組成的。我們首先使用 NPM API 檢索在數據庫中流行 JavaScript 應用依賴的數量。然后手動根據依賴選擇的 Node.js 基礎庫模塊來審查前 100 個應用。我們發現這兩個因素也有很強的關聯關系(Spearman’s rank correlation coefficient of 0.68)。

追蹤 GitHub 項目的流行度

總結

我們致力于一個可以跟蹤 GitHub 流行度的框架,使用這個框架我們能發現:

  • JavaScript 壟斷了超過三分之一的 GitHub 流行應用,接下來是 Ruby, Objective-C, Python, Java 和 PHP 這 5 種語言占據另外三分之一的流行應用。

  • 21% 的流行系統有可持續的增長;5% 的流行系統有快速的增長;少于 1% 的流行系統會緩慢增長。我們發現有 37 個系統有病毒式增長的行為。

  • 系統的 Stars 數不僅僅跟 forks 數有關,其他客戶端應用的高效使用也有一定的關聯。

更多內容

Hudson Borges, Marco Tulio Valente, Andre Hora, Jailton Coelho. On the Popularity of GitHub Applications: A Preliminary Note. arXiv:1507.00604

via http://mtov.github.io/tracking-popularity-github/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!