GitHub_2020_数字洞察报告_35页_15mb
报告摘要
GitHub 2020数字洞察报告总结
核心内容
《GitHub 2020数字洞察报告》由 X-lab 开放实验室联合多家科研机构与开源社区共同完成,旨在反映全球开源现状与趋势,推动开源社会创新,绘制开源数字生态地图。报告涵盖了开源项目与开发者行为分析、语言分布、时区分布、项目活跃度等关键内容,展示了开源在全球范围内持续增长的趋势。
主要观点
- 开源的全球发展:2020年全球开源项目和开发者数量大幅增长,GitHub日志数达到8.6亿条,活跃仓库数量为5,421万个,活跃开发者数量为1,454万人,分别比2019年增长42.6%、36.4%和21.8%。
- 自动化协作工具崛起:GitHub Apps 在2020年活跃账号数量达到3,058个,日志占比超过12%,其中几个头部GitHub Apps如
dependabot[bot]和dependabot-preview[bot]在活跃度上表现突出。 - 开发者行为特征:开发者活跃度与仓库数量呈现幂律分布,大部分开发者处于低活跃状态。开发者的工作时间分布显示,全球开发者主要集中在UTC-8至UTC-3时区,而欧洲拥有最高的单时区开发者比例。开发者的典型工作时间从早上8点开始,持续到晚上11点,且在夜间仍有较高的活跃度。
- 语言使用趋势:JavaScript和Python仍是主流编程语言,而HTML和CSS在全域开发者中更受欢迎。Rust语言在2020年表现出强劲的发展势头,成为新兴热门语言。
- 项目活跃度分布:项目活跃度分布呈现明显的幂律特征,绝大多数项目处于低活跃状态。项目活跃度Top20中,包括Kibana、Flutter、Kubernetes、VS Code等,表明开源社区对这些项目高度关注。
- 中国开源生态:中国在开源领域表现出色,PingCAP、阿里巴巴、百度等公司主导了多个高活跃项目。中国项目在GitHub上活跃度排名Top20中占有一席之地,其中PingCAP贡献了6个项目,阿里巴巴贡献了2个项目。
关键信息
开发者活跃度与行为
- 活跃度定义:基于开发者在项目中的行为,如Issue评论、PR提交、代码审查等,进行加权计算。公式如下:
$$
A_{u_d} = C_{\text{issue_comment}} + 2 C_{\text{open_issue}} + 3 C_{\text{open_pr}} + 4 C_{\text{review_comment}} + 2 C_{\text{pr_merged}} + C_{\text{watch}} + 2 C_{\text{fork}}
$$ - PR权重:PR的权重根据新增代码行数(loc)进行分段计算:
$$
C_{p r - m e r g e d} = \left{ \begin{array}{c l} 0. 8 + 0. 0 0 2 \times l o c & l o c < 100 \ 1 & 100 \leq loc < 300 \ 2. 5 - 0. 0 0 5 \times loc & 300 \leq loc < 400 \ 0. 5 & loc \geq 400 \end{array} \right.
$$
全球开发者时区分布
- 主要时区:UTC-8至UTC-3时区的开发者数量最多,约占33%。UTC+1至UTC+3时区的开发者比例最高,约26%。
- 时区估计方法:通过分析开发者在一天内连续12小时的行为日志,估计其时区。该方法用于统计维度,不能用于单个开发者时区的精确估计。
开发者使用语言分布
- 语言排行榜:JavaScript和Python占据前两位,HTML和CSS在全域开发者中更受欢迎。
- 语言统计方法:定义为开发者在2020年提交并合入PR最多的项目所使用的主要编程语言。
项目活跃度分析
- 活跃度计算:基于项目中所有开发者的活跃度加总计算,过滤了GitHub Apps相关账号的协作行为。
- Top20项目:包括Kibana、Flutter、Kubernetes、VS Code等,其中Kibana是活跃度最高的项目,表明其在开源社区中的重要性。
- 中国项目活跃度:Top20项目中,PingCAP贡献了6个项目,阿里巴巴贡献了2个项目,百度贡献了2个项目,显示了中国企业在开源生态中的重要地位。
开源星系与象限
- 开源星系(OpenGalaxy):首次提出,用于理解GitHub开源项目的全貌。
- 开源象限(OpenQuadrant):用于区分同类开源项目的发展阶段与成熟水平,有助于开源治理。
总结
本报告通过详尽的数据分析和可视化手段,揭示了开源世界中的关键趋势和特征,包括全球开源的蓬勃发展、自动化协作工具的广泛应用、开发者行为的规律性、语言使用的分布情况、项目活跃度的分布模式,以及中国在开源生态中的重要地位。这些洞察不仅有助于理解开源生态的现状,也为未来的开源治理和社区发展提供了重要的参考依据。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载