GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

GitHub 中国开发者年度分析报告

2015 年 2 月 02 日

近日,GitHuber.info 以 GitHub API 为基础,结合 GitHub 用户的地理位置信息,整理发布了《2014 年GitHub 中国开发者年度报告》。报告中分析了GitHub 中国用户的比例、活跃用户数、活跃时间段、仓库数量、PR 数量、项目Star 数量、组织等信息,并就相关指标与美国开发者做了对比。同样,GitHub 官方也会发布年度的用户报告,InfoQ 编辑结合官方与社区发布的数据,对GitHub 上的中国开发者情况做了一个简单的回望。

1. GitHub 用户数

GitHub 成立于 2008 年,是一个社区型的代码协作平台。根据 2012 年的报告显示,GitHub 在 2008 年就有 4 万多的用户,在 2009 年迅速增长为 16 万,根据官方发布的增长数据可以推断出 2013 年已经有近 600 万(具体数字是 5843193)用户,新增用户有 300 万之多。GitHuber.info 社区通过 API 计算得出,截止到 2015 年 1 月 20 日,GitHub 用户数已经超过千万(10475867)。如果这个数据准确,那 2014 年 GitHub 的用户增长就有 400 万。

从 2012 年的报告中得知,GitHub 中用户数最多(官方给出的数据是访问量最多,这里姑且认为访问量和用户数成正比)的五个国家分别是美国、德国、英国、中国和日本,2013 年是美国、德国、中国、英国、印度,而据微博上一位GitHub 员工透漏,2014 年中国已经成为GitHub 用户数最多的第二大国家。2013 年官方公布的数据显示,所有的注册用户中中国用户占5.8%,如果以此比例来计算,那现在GitHub 上的中国开发者大概有60 万。

2. 开发语言

2014 年 5 月就曾有分析机构利用GitHub 来统计分析编程语言的发展趋势,分析结果显示GitHub 上主流的五种开发语言分别是JavaScript、Ruby、Java、PHP 和 Python,其中CSS 占的比例也比较大,C 和C++ 处于中等水平,Go 之类的新型语言体量还是比较小。GitHuber.info 对中美开发者的语言情况做了对比,其中JavaScript 和CSS 占绝对优势,两者加起来接近1/3,这也不难理解,JavaScript 和CSS 是前端开发的必备语言,更何况还有Node.js 之类的服务器端JavaScript 语言。而排名第三的语言中美国和中国分别是Ruby 和Java,紧接着是Shell 和Python。值得注意的是,PHP 并没有进入前五,这也可能和该语言的使用场景有关(见过最多的PHP 类开源项目就是各类CMS)。两个国家的开发者中使用.NET 的用户都比较少,这和微软一直不鼓励开源的社区生态有关,随着新一年微软在开源方面的投入,相信.NET 相关的开源项目会逐渐增多。

需要注意的是,由于GitHuber.info 统计国家时只能根据用户的Location 信息识别,而很多用户都没有填写Location 信息,所以文中涉及到GitHuber 方的数据时均指带有Location 信息的用户。

3. 项目情况

从仓库数来看,大多数开发者(75%)都拥有 0-5 个仓库,中美开发者差别不大。由于统计的是去除 Fork 的仓库,所以 0-5 个也属于正常情况,一个用户能玩转属于自己的几个开源项目,已经非常不错了。

而考量项目的质量可以从项目的 Star 数量来看,同样,绝大多数的项目都只有 0-5 个 Star,其中中国开发者的比例为 67%,美国开发者为 80%。如果以 Star 大于 1 万的标准来衡量优质项目,那中国没有,Star 数量最高的是 awesome-python ,有 9393 个 Star。

从项目的代码量来看,中美开发者悬殊比较大,GitHuber.info 统计到的数据中美国用户的代码数量(字节)大多在 1 万到 10 万之间,而中国用户大多在 0 到 1000 之间(也就是基本为 0),美国开发者的代码量远大于中国。从分支数来看,美国和中国的对比相差不多,大多项目的分支数量都在 3 个以下,这也反映出⼤部分项目还是纯个人业余开发, 并没有达到需要规范分支的程度。但同样由于美国开发者基数比较大,所以总体来看,美国开发者好于中国开发者。另外,90% 的项目的贡献者不超过 5 个人,90% 的项目几乎没有 PR 和 Issue,所以在人力投入比较少,且没有反馈的情况下,大多数的项目都没有长远的发展。

4. 活跃时间

GitHuber.info 官方没有列出美国开发者的活跃时间,这里将官方 2013 年的数据作为对比,与美国开发者一样,一周中中国开发者最活跃的是周二和周三,最不活跃的是周六。比较有意思的是,周末两天美国开发者的活跃度都比较低,而中国开发者周日非常活跃,甚至比周五的还要高。细化到每天,更是伤人心。中国开发者每天最活跃的时间是凌晨 0 点到 2 点之间,而美国开发者是上午 9 点左右和下午 1 点左右。总体来看,代码推送的活跃度上午明显高于下午,美国开发者是白天明显高于晚上,而中国开发者是晚上明显高于白天。

5. 组织

组织是 GitHub 新的账号管理模式,旨在满足大型开发团队的需求。组织是非登录账号,需要以 GitHub 用户身份登录,然后再创建自己的组织。截止 2015 年 1 月 20 日,GitHuber.info 根据 API 统计到一共有 2500 个中国区组织和约 25000 个美国区组织,GitHub 的用户数美国是中国的 4 倍,但是组织数美国却是中国的 10 倍,看来中国使用者并不喜欢团队协作。

组织部分总体的分布趋势和项目很类似,不过各项统计按比例来算要比项目信息稍差一些。按理说组织中的项目应该更容易吸引成员参与,从而在 PR、Issue 上有更好的表现。反过来说,目前中国的组织并没有充分发挥组织的作用,对开源项目的发展推动不大。目前国内的优秀开源项目主要还是依靠线下团队的合作开发,距离美国开源项目的众包模式还有些差距。

刚刚从 GitHub 官方邮件中得知,GitHub 今年不会再发布 Octoverse 报告,不过感兴趣的读者可以邮件 press@github.com 获取一些官方可以公布的数据,InfoQ 正在与官方联系,希望获取一些中国开发者的详细报告,我们也会及时公开各项数据。从 GitHub 用户增长数量也可以看到开源的趋势,随着国内开源环境的成熟,优质的国产开源项目也越来越多,InfoQ 也会全程跟踪报道国内的开源状态,敬请关注。

感谢 GitHuber.info 的梁杰对本文的贡献。

2015 年 2 月 02 日 19:2511068
用户头像
郭蕾 做有意思的事情!

发布了 210 篇内容, 共 109.7 次阅读, 收获喜欢 30 次。

关注

评论

发布
暂无评论
发现更多内容

微服务通信之feign的配置隔离

云流

编程 微服务 计算机

在Codurance是如何面试技术人员的

sherlockq

面试 TDD

《网络是怎样连接的》PDF下载

计算机与AI

网络

甲方日常53

句子

工作 随笔杂谈 日常

架构师训练营 -week09-总结

大刘

极客大学架构师训练营

自从读了字节技术总监的架构师成长指南,面试像开挂“百发百中”

周老师

Java 编程 程序员 架构 面试

高承实:区块链的工业革命带来了什么?

CECBC区块链专委会

区块链 分布式

智变的八个瞬间,京东智联云化“?”为“!”

脑极体

MySQL中的锁机制

AI乔治

Java MySQL 架构 线程 锁机制

11.11 应对海量访问的网络基石 京东智联云自研交换机发展之路

京东科技开发者

运维 网络 交换机

什么是云服务?

anyRTC开发者

音视频 WebRTC 云服务 RTC

数字货币引发的金融变革

CECBC区块链专委会

数字化时代

读谱对吉他手来说重要吗?试试它提升你的读谱效率

奈奈的杂社

学习 编曲 打谱

国网浙江建设公司推进“信用基建+区块链”建设

CECBC区块链专委会

区块链 国网 基建

会装虚拟机,删库不用跑

MySQL从删库到跑路

虚拟机 virtualbox

面经手册 · 第18篇《AQS 共享锁,Semaphore、CountDownLatch,听说数据库连接池可以用到!》

小傅哥

Java 并发编程 共享锁 Semaphore 信号量

【薪火计划】03 - 从错误中认识到管理

brave heart

管理

MySQL从库维护经验分享

Simon

MySQL 主从复制

Android热修复之DexPatch介绍

阿里云金融线TAM SRE专家服务团队

android

我用 10 张脑图,征服了一系列大厂面试官。

周老师

Java 编程 程序员 架构 面试

新工业化如何实现?今年的信息化百人会中藏着“懂行”密码

脑极体

Redis 持久化之 RDB 与 AOF 详解

AI乔治

Java 架构 redis持久化 redia

Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!

程序员小航

markdown idea插件 IntelliJ IDEA 文档生成 Doc View

前嗅教你大数据——什么是代理IP?

前嗅大数据

爬虫 数据采集 静态IP 代理IP 动态IP

我真的尽力了,最经典Redis面试14题,没时间复习就看这个吧

小Q

redis 学习 编程 架构 面试

Springboot过滤器和拦截器详解及使用场景

AI乔治

Java spring 架构 Spring Boot

阿里P8以hashmap讲解如何学习jdk源码,还不学习

小Q

Java 学习 源码 jdk mybatis

CSS 排版与正常流 —— 重学CSS

三钻

CSS 排版

【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!

冰河

MySQL 数据库 性能优化 数据安全 分布式数据储存

注册中心原理剖析

石刻掌纹

vue项目实战经验汇总

徐小夕

Java 面试 Vue 前端 Vue3

DNSPod与开源应用专场

DNSPod与开源应用专场

GitHub中国开发者年度分析报告-InfoQ