如何追踪GitHub项目的流行度

开发 后端 项目管理
JavaScript 垄断了超过三分之一的 GitHub 流行应用,接下来是 Ruby, Objective-C, Python, Java 和 PHP 这 5 种语言占据另外三分之一的流行应用。

介绍

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 数有关,其他客户端应用的高效使用也有一定的关联。

 

责任编辑:王雪燕 来源: oschina
相关推荐

2020-03-12 11:28:26

物联网开发IoT

2016-09-07 14:29:13

GitHub安全SQL

2017-04-19 10:32:01

2020-03-13 07:32:18

物联网项目物联网IOT

2009-02-04 15:55:31

敏捷开发敏捷项目项目经理

2021-03-29 14:50:28

GitHub代码开发者

2022-05-16 10:36:08

GitHub开源项目

2022-10-31 11:09:48

物联网智能建筑

2022-05-23 08:23:24

链路追踪SleuthSpring

2024-07-18 08:08:06

2020-07-13 10:26:41

CIOIT项目技术

2019-12-05 09:50:54

GitHub 技术深度学习

2015-04-08 09:45:26

2024-01-03 17:39:23

云计算混合云

2018-06-12 15:55:44

数字化项目

2013-08-29 09:37:18

GitHub开源项目

2015-05-07 10:10:29

GitHub编程语言

2015-05-04 10:05:11

编程语言GitHub流行语言

2009-07-15 16:50:07

Swing项目

2012-05-15 02:54:31

项目开发项目
点赞
收藏

51CTO技术栈公众号