如何追蹤GitHub專案的流行度

oschina發表於2015-07-06

介紹

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

度量流行度

這裡我們考慮 GitHub 上前 24 強程式語言,通過 GitHub 先進的搜尋引擎分類出來的。下面的資料是每個語言前 1000 個庫的 stars 數分佈。

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

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

流行度增長模式 Popularity Growth Patterns

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

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

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

(RBottom − RTop ) < 0.25示例:

 快速增長:計算方式:

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

示例:

緩慢增長:計算方式:

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

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

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

示例:

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

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

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

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

總結

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

  • JavaScript 壟斷了超過三分之一的 GitHub 流行應用,接下來是 Ruby, Objective-C, Python, Java 和 PHP 這 5 種語言佔據另外三分之一的流行應用。
  • 21% 的流行系統有可持續的增長;5% 的流行系統有快速的增長;少於 1% 的流行系統會緩慢增長。我們發現有 37 個系統有病毒式增長的行為。
  • 系統的 Stars 數不僅僅跟 forks 數有關,其他客戶端應用的高效使用也有一定的關聯。

相關文章