追踪 GitHub 项目的流行度

jopen 9年前

介绍

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/