作者 |青暮
编辑 | 陈大鑫
GitHub近期发布了2020年度报告,该报告基于2019年10月至2020年9月的数据收集总结而成。
截至2020年9月,GitHub已经拥有了超过5600万的开发者,去年则是4000万。GitHub还预计到2025年,这个数字将达到1亿。
在这一年里有超过6000万个新的repo在GitHub上创建去年则是4400万,还增加了19亿个contribution。财富50强企业中有72%在用GitHub Enterprise。
在地域分布图中,我们可以看到,GitHub用户主要分布在亚洲、欧洲和北美洲,三者加起来占比超过90%。其中,34%的用户位于北美洲,30.7%的用户位于亚洲,26.8%的用户位于欧洲。
在编程语言受欢迎度排行榜中可以看出,JavaScript不出意外继续霸榜,Python在去年超越Java后今年也保持第二名,“世界上最好的语言”PHP今年排名从第四名急降到了第六名,C++经过连续两年的下降排到了第7名。Ruby自从2014年以来逐渐下降至第十名后,就基本保持前十垫底的位置。
值得注意的是,由微软开发的TypeScript自2017年来表现强势,并从去年的第七名直接跃升到今年的第四名。TypeScript是为开发大型应用而设计的,并且TypeScript可转译成JavaScript。由于TypeScript是JavaScript的严格超集,任何现有的JavaScript程序都是合法的TypeScript程序。
由于机器学习常用Python语言,我们来看看Python社区的情况。Python社区目前已经拥有266,966个软件包,以及来自202个国家和地区的361,832位开发者。
在过去12个月内贡献最多的十大Python软件包中,TensorFlow排名第一,PyTorch排名第三。
TensorFlow社区拥有11200多个repo,以及将近380,000个贡献者。上图展示了TensorFlow社区最常用的十大repo,前三名分别是numpy、tensorflow以及matplotlib。
在GitHub用户的职业分布中,包含了数据分析师、科学家、学生、教师、设计师以及管理者,GitHub表示,“这表明,平台上的协作将越来越多地包含代码以外的东西”。
过去五年以来,GitHub上的用户已不再仅仅自称是开发者,这类用户从2016年的60%下降到2020年的54%。
教育领域的用户从2016年的17%增长到2020年的23%。第三大类别是数据分析师,2016年有7%的用户,2020年有10%的用户。
GitHub不同职业用户随时间的变化
GitHub表示,这一转变表明GitHub社区在发生成长和变化,不仅是数量上,而且多样性也在增加。
“随着教育水平的提高,当学生和老师在专业工作和开源项目合作方面不断扩大基础,这种增长将持续到未来。”
在Python社区的用户职业分布图中,我们也能看到同样的趋势。
非代码文件推送的比例
GitHub发现,新手用户和老用户在使用GitHub上有很不同的模式。新手用户不仅以代码的方式参与开源:他们比老用户更频繁地推送数据文件、图像和其他内容。
新手用户与老用户的行为类型差异
当比较所有GitHub repo中新手用户和老用户的行为时,可以发现新手推送代码和创建repo的数量远远超过老用户,同时也比老用户进行了更多的互动(例如,创建问题和评论,以及创建pull request)。
相比之下,老用户使用clone和获取repo的数量比新手用户要多得多。
大流行显然对开发者的日常工作产生了巨大影响,自3月开始,GitHub活跃用户的开源项目创建数量出现了大幅增长(图中显示的是项目创建数量相比去年增加的百分比)。
也就是说,开发者今年泡GitHub的时间变多了,用户创建的repo比去年增加了35%,对开源项目的contribution增加了25%。
在每个人都被迫待在家里的时候,全世界的开发人员都通过开源找到了联系和社区。
贡献增长最快的国家和地区
到2020年,来自美国的开源贡献者下降到22.7%,而越来越多的开发者来自中国(9.76%)和印度(5.2%)。而在2015年,大多数开源贡献者来自美国(30.4%)、德国(7.3%)和英国(5.8%)。
GitHub预计,2025年开发者达到1亿时,来自美国的开源贡献将下降并稳定到16.4%,剩下的将是来自中国(13.3%)和印度(7.9%)的强力贡献,以及南美洲和非洲(巴西:3%和尼日利亚:1.5%)。
尾声
GitHub的增长不仅仅是由开发人员推动的,来自教育领域的人们越来越多。GitHub认为,这表明了GitHub作为教授编程和协作开发最佳实践的平台的潜力。
同时也表明,教师使用开放源代码编写课程以覆盖偏远地区的学生,并与世界各地的合作伙伴一起参与研究。数据分析师、科学家和设计人员也都加入了GitHub,这表明协作不仅限于代码。
我们也看到了GitHub的新手用户在以自己的方式影响着GitHub社区。随着项目集成更多数据、图像和其他文件格式,将会出现更多的新型项目和学习方式。
报告地址:https://octoverse.github.com/