介紹
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:下面的資料展示了一個專案流行度和他的 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 數有關,其他客戶端應用的高效使用也有一定的關聯。
更多內容
Hudson Borges, Marco Tulio Valente, Andre Hora, Jailton Coelho. On the Popularity of GitHub Applications: A Preliminary Note. arXiv:1507.00604
自 開源中國