追蹤 GitHub 專案的流行度
介紹
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
示例:
病毒式增長:在很短的時間內(比如一週)達到最高的 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 數有關,其他客戶端應用的高效使用也有一定的關聯。
相關文章
- 追蹤專案進展常用的衡量方法
- Go - 實現專案內鏈路追蹤Go
- Docker 快速搭建redmine 專案管理 BUG追蹤Docker專案管理
- Jaeger鏈路追蹤在專案中的應用
- 如何使用專案問題追蹤軟體跟進管理專案
- 企業使用專案追蹤有哪些挑戰?
- XCOrganizer for Mac - 專案標籤分配追蹤軟體Mac
- Go - 實現專案內鏈路追蹤(二)Go
- TGDC | 向陽而生 —— 光線追蹤的專案應用
- 如何用實時資料追蹤來解決專案瓶頸?
- 盤點2022年好用的專案進度跟蹤軟體
- 瞭解這個專案進度跟蹤管理工具,輕鬆掌握專案進度
- go的鏈路追蹤Go
- DHorse的鏈路追蹤
- 如何做好專案進度監控與跟蹤
- 程式碼追蹤
- 日誌追蹤
- 鏈路追蹤
- Map、Debug追蹤
- Debug追蹤eclipseEclipse
- comScore:大流行期間亞太地區視訊遊戲受眾追蹤遊戲
- 微服務追蹤SQL(支援Isto管控下的gorm查詢追蹤)微服務SQLGoORM
- IRi:追蹤美國消費者在冠狀病毒流行期間的行為報告
- 【Git】取消追蹤多個檔案或目錄Git
- OpenTelemetry分散式追蹤分散式
- skywalking鏈路追蹤
- 追蹤原始碼的方式歸納原始碼
- 如何追蹤Java動態Java
- 如何追蹤Python動態Python
- 如何追蹤vue動態Vue
- 如何追蹤Go動態Go
- 如何追蹤laravel動態Laravel
- Spring Cloud 鏈路追蹤SpringCloud
- 追蹤解析 Disruptor 原始碼原始碼
- 追蹤解析 ThreadPoolExecutor 原始碼thread原始碼
- 微服務追蹤SQL上報至Jaeger(支援Istio管控下的gorm查詢追蹤)微服務SQLGoORM
- 上傳專案到gitHub,上傳報錯和刪除gitHub上的專案Github
- github克隆專案太慢Github
- GitHub上面找專案Github