第八十八期:4000万程序员最爱开源项目和编程语言排名出炉!

今天,全球最大开发者社区GitHub重磅发布2019年度报告,透露了一个数据:GitHub目前在全球已有超过4000万开发者用户,其中80%来自美国之外的地区。

作者:小芹、亮亮

全球最大开发者社区GitHub今天重磅发布2019年度报告:GitHub目前在全球已有超过4000万开发者用户,其中80%来自美国之外的地区。此外,JavaScript仍然是使用人数最多的语言,但史上第一次,Python击败Java排名第二。

4000万开发者在365天里能做什么?

今天,全球最大开发者社区GitHub重磅发布2019年度报告,透露了一个数据:GitHub目前在全球已有超过4000万开发者用户,其中80%来自美国之外的地区。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

仅去年一年,就有1000万新开发者加入GitHub,创建第一个项目的用户比2018年增加了44%,130万开发者对开源做出了第一个贡献。甚至还有来自南极等新地方的贡献。

4000万开发者在去年总共构建了4400万个仓库,像“深度学习”、“自然语言处理”和“机器学习”等主题的代码仓库在过去一年中越来越受欢迎。GitHub在2018年11月突破了1亿仓库的里程碑。

微软的Visual Studio Code或VSCode (19.1K)、Azure Docs (14K)和Flutter (13K)是去年GitHub上贡献者最多的开源项目,其次是谷歌的TensorFlow (9.9K)、Kubernetes (6.9K)和Facebook创建的 React Native 框架。

JavaScript仍然是开发者在GitHub上使用的最流行的语言,但在GitHub历史上,Python首次击败Java,成为使用人数第二多的编程语言。

而去年增长最快的语言是Dart,它是谷歌UI工具包Flutter的编程语言;其次是Rust、HCL、Kotlin和TypeScript。

此外,在过去三年中,使用Jupyter Notebooks(按以Jupyter为主要语言的仓库的数量)的同比增长超过了100%。

而TensorFlow的增长更加惊人:TensorFlow的贡献者从2238人增长到25166人,已经成为一个全球性的社区。

下面我们来看详细报告。

80%的Github用户来自美国以外,中国开源使用增长迅速

在过去的一年中,有 1000万新开发者加入了GitHub社区,为全球4400万个开源项目做出了贡献。而且,接近80%的Github用户来自美国以外。

开源世界由维护者,开发者,研究人员,设计师,作家等组成的全球团队构建。平均而言,今年GitHub上的每个开源项目都欢迎来自41个不同国家和地区的贡献者。自2014年以来,来自美国以外的更多开源资源在不断增长。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

今年,继美国之后,中国,印度和德国的开源使用增速加快。其中,中国的开发者fork和clone的项目相较去年增加了48%

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

开源使用 Top 20地区(除美国)

香港开源贡献者增速连续2年蝉联榜首

随着开发者社区在亚洲和非洲的发展,开源变得更加全球化。从安圭拉到南极洲,我们也看到了前所未有的贡献。

从增速来看,伊朗开发者在公共储存库中创建的开源项目增速第二,GitHub也希望这一地区将来能更方便地访问GitHub。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

今年,开源项目贡献者数量增长最多的是中国香港、新加坡和日本,其中香港特别行政区增速达到101%,比第二名新加坡增速还高出24%。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

除开源之外,从公共和私人贡献来看,亚洲的开发者社区在2019年增长迅速。其中31%的亚洲贡献者来自中国,另外非洲开发者数量也正显著上升。自2014年以来,美国以外地区开发者数量不断上升,亚洲贡献者群体的年增长率已超过欧洲和北美。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

Github 在 2019 年推出了免费的私有存储库,到目前为止,它已经影响全球,甚至是南极洲。自2019年1月推出以来,从图中可以看到80%的免费私人存储库在美国以外创建。亚洲地区创造了36%,其中大部分是由印度、中国和日本的开发者所创建。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

各大洲采用免费私人存储库的占比情况

GitHub上贡献者增长最快的区域排名如下,中国香港连续第二年位居榜首,日本也在持续攀升。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

按贡献者增长top 10地区(该列表仅限于2019年至少有2万名贡献者的国家和地区)

TensorFlow 汇聚25000贡献者,以开源项目连接更大软件社区

Github 上数以百万计的开发者通过软件组成了一个越来越相互连接的社区。单个程序包可以支持数百万个其他项目,以此我们能更好地看到社区间的相互连接。

平均而言,超过360万的存储库都依赖于前50个开源项目,诸如 rails / rails, facebook / jest和 axios / axios之类的项目也被数百万其他存储库使用。203个程序包依赖项通过启用的依赖关系图支持所有公共和私有存储库。平均每个开源项目具有180个程序包依赖项,但是这个数字的范围可以从几个软件包到1000个以上。

今年有35万人为前1000个项目做出了500万以上的贡献(按星星数排序)。130万开发者首次加入开源社区,并为开源项目做出了首次贡献。

每个语言生态系统(JavaScript,Python,Ruby等)中排名前50位的开源程序包都有数量众多的依赖项目。例如,尽管平均每个直接贡献者少于40人,但流行的 npm 软件包仍可能是数百万其他存储库的依赖项。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

项目依赖程度最高的十大开源软件包,有超过四百万个存储库分别依赖于 lodash /lodash,expressjs /express 和 visionmedia /debug。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

TensorFlow 汇聚25000贡献者,以开源项目连接更大软件社区

作为GitHub上最受欢迎的项目之一,TensorFlow 可以向我们展示开源项目如何连接更大的软件社区。依赖 Python 软件包的存储库的社区贡献者平均数量约为19000万。TensorFlow 的社区也不例外。成千上万的人为其依赖项做出了贡献,例如 Numpy,Pytest 等。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

去年,有 9900 名贡献者为 TensorFlow 做出了贡献,pull requests,打开issues等。2200 位开发者为 TensorFlow 直接做出了贡献。25000 位社区贡献者为 TensorFlow 相关项目作出了贡献。现在,在项目依赖关系网络的基础上,有 46000 个依赖存储库依赖于 TensorFlow 。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

(贡献包括但不限于创建拉取请求,提出问题或进行提交)

社区内部协同,解除 760 万个安全警报

代码重用可以帮助每个人以前所未有的速度构建软件,但同时也使开发者面临从其依赖项分发安全漏洞的风险。当发现潜在的漏洞时,我们会看到维护者,开发者,研究人员和工具生态系统一起工作,以确保代码安全。

今年,社区中的开发者、维护人员和安全研究人员解除了 760 万个安全警报。自 2019 年 5 月发布以来,通过 Dependabot 提出的拉取请求将 20.9 万个自动修复程序合并到 GitHub 存储库中。

最受欢迎的项目、语言和工具:Python首次击败Java位列第二

GitHub上的项目可谓种类繁多,从重新设计机器人到检测疾病等等。不过,报告发现的一个趋势是,无论开发者是测试游戏还是训练算法,他们今年的工作效率都比以往任何时候都要高。

以下是2019年最受欢迎的项目,以及最受欢迎、增长最快的编程语言和工具。

今年GitHub上新增的开源项目达到4400万个,占GitHub上所有仓库的30%。

贡献者最多的开源项目TOP 10

今年,最流行的开源项目贡献者有超过10000名。其中两个自2016年就在榜单中了,它们是microsoft/vscode 和 ansible/ansible。

2019年新进入这个榜单的是flutter/flutter, firstcontributions/first-contributions, 以及 home-assistant/home-assistant.

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

贡献者最多的开源项目TOP 10

贡献者增长最快的开源项目TOP 10

跨语言和平台构建应用程序和网站的工具包和框架在今年的增长很快。自2018年12月发布1.0版本以来,flutter/flutter的增速排名第二。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

值得关注的新项目

有一些项目虽然增长不是最快的,不过很值得关注。包括:

  • TrillCyborg/fullstack

一个full-stack样本,供用户学习一些很酷的东西,或构建你的下一个应用程序(注:程序员被拖欠工资,怒将这个项目开源了……)

  • jesseduffield/lazydocker

docker和docker-compose的一个简单的终端UI,用gocui库和Go编写

  • practicalAI/practicalAI

使用机器学习从数据中获得有价值的见解

  • pomber/git-history

一种快速浏览任何Git存储库中文件历史的方法

最受欢迎的编程语言TOP 10

今年,开发者们在GitHub上使用了370多种主要语言。

年度使用人数最多的编程语言仍然是JavaScript,连续6年稳坐第一宝座!

而今年新爬上本榜单的是C#和Shell。而且,史上第一次,Python超过Java,成为GitHub上使用人数第二多的编程语言。
GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

增长最快的编程语言TOP 10

随着Flutter进入GitHub趋势库,Dart今年获得更多贡献者也就不足为奇了。

报告还发现,面向类型安全和互操作性的静态类型语言:Rust,Kotlin和TypeScript的社区仍在快速发展。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

Jupyter Notebooks增长超过100%

如何判断GitHub上数据科学正在快速发展?在过去三年中,使用Jupyter Notebooks(按以Jupyter为主要语言的仓库的数量)的同比增长超过100%。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

NLP 增长迅猛

自然语言处理(NLP)在GitHub上的增长也非常迅猛,部分原因是因为NTLK之类的软件包降低了NLP入门的门槛。

GitHubé‡ç£…年度报告:4000万程åºå‘˜æœ€çˆ±å¼€æºé¡¹ç›®å’Œç¼–程语言排å出炉ï¼

最后,从今年的全球趋势、热门项目和最受欢迎的编程语言可以看出,软件发展很快。有着30年历史的语言正在寻找新的应用程序,而新的框架正在获得成千上万的贡献者,人们正在提交来自世界各地的一切,从Python包到学术论文。

随着管理、集成和支持新工作流的方式越来越多——通过应用程序、GitHub Actions等等——我们已经迫不及待地想要看到构建软件的下一步将如何发展。

感谢4000万开发者在2019年一起贡献开源,不管是为了工作还是娱乐,使软件比以往任何时候都更容易访问、更安全、连接更紧密。你们创建的代码、社区、工具和技术将推动我们的世界在未来几年向前发展。

完整报告地址:

https://octoverse.github.com/

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java2实用教程(第二版)程序代码——第十四章 Component类的常用方法

1//例子12import java.applet.*;import java.awt.*;3import java.awt.event.*;4import javax.swing.JTextArea;5publicclassExample14_1 extends Applet implements ItemListener6{ List list ; 7 JTextArea text; 8 public void init() 9 { listnew List(6,false…

239. Sliding Window Maximum

文章目录1理解题目2 思路2.1暴力求解2.2双端队列1理解题目 输入:整数数组nums,滑动窗口大小k 输出:整数数组 规则:在一个窗口内只能看到k个数,找一个最大的数,添加到返回数组中。每次滑动向右滑动一步。 …

第八十九期:还在手动盖楼领喵币?双十一这群开发者竟然如此「作弊」

开发者构建了一个脚本以自动逛双十一会场,让使用者轻松完成各种领币任务,同时还能解放双手。 作者:Synced 每年的 11 月份,总觉得有些硝烟弥漫。好在淘宝双十一领喵币,也已经有了自动化脚本。 感觉还未从去年双十一…

Serverless简介

说起当前最火的技术,除了最新的区块链,AI,还有一个不得不提的概念是Serverless。Serverless作为一种新型的互联网架构直接或间接推动了云计算的发展,从AWS Lambda到阿里云函数计算,Serverless一路高歌,同时…

使用matlab工具研究神经网络的简单过程(网络和数据下载)

本人在神经网络研究中是个新手的新手,使用matlab gui工具能够让我们这些小菜也可以研究这些复杂的问题。 在matlab中输入“nntool”,这样就可以出来gui了哈哈。然后按照提示输入:输入数据,目标数据,网络的设置。自然也…

第九十期:哪种人是软件设计中的稀缺型人才?

好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。 作者:从码农到工匠 好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。 为什…

151. Reverse Words in a String

1 题目理解 输入:一个字符串s 规则:一个单词是一串非空字符组成的。单词之间用空格分隔。 输出:将字符串按照单词反转字符串。多余的空格只保留一个。 Example 1: Input: s “the sky is blue” Output: “blue is sky the” Example 2: …

C语言输入字符和字符串

C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。getchar()、getche()、getch():这三个函数都用于输入单个字符。gets():获取一行数据&…

收集一些正则表达式

匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.lenfunction(){return this.re…

第九十一期:架构设计常用到的10种设计模式,你都知道吗?

企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构,这个架构将决定软件实施过程中的功能属性和质量属性。因此,了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。 作者:abel_…

8. String to Integer (atoi)

1题目理解 输入:一个字符串s,可能包含空格、正负号、数字,还有其他字符。 输出:将字符串转为int 规则:字符串s一开始可能有很多空格,可以忽略这些空格,直到遇到第一个非空字符。从这个字符开始…

程序编码应保持良好的规范(C#)

呵呵,这个简直是超级老生常谈了。但我还是希望能让更多的程序员能了解一些细节习惯对于程序阅读性的影响。而这个很大程度决定了程序的可移植性。1。变量赋值之间注意保留空格。有些程序员往往不注意。不好的: Body.txtVersion.Textib.Version.ToString(…

第九十二期:多少程序员注意到了「中台」的背面?

中台这个词,最近两年特别火,它的爆发源于2015年张勇在阿里发出的内部信中提到的“大中台,小前台”战略。随后吸引了很多人开始“追逐”它。也有很多人开始借着这概念来挣钱。 作者:跨界架构师 这篇文章比较长,有5200…

框架学习 Spring之依赖注入DI

依赖注入的方式有四种: 1、Setter注入(属性注入) 2、构造器注入 3、P命名空间注入 4、集合类型值注入 1、Setter注入(属性注入) Employee 员工实体类 package com.spring.pojo;public class Employee {private Integer…

图:两点之间的最短距离

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 1 问题阐述 像 Google 地图、百度地图、高德地图这样的地图软件,如果想从家开车到公司,你只需要输入起始、结束地址,地图就会给你…

spring mvc学习(10):eclipse的环境前maven配置

一.maven的安装 1解压maven压缩包到某一路径下 2配置MAVEN_HOME 3配置path到MAVEN_HOME/bin下 二eclipse集成MAVEN 方法1:直接使用自带插件 1在用户目录/.m2文件夹下面创建setting.xml文件,配置maven仓库位置 2在eclipse中直接配置maven的文件路径 方法2&…

for in / for of 要会用

for in是ES5标准,遍历index ---索引 or key --- 键. 1 for (var index in arr){} // index 0 1 2 3...arr.length-1 1 for (var key in obj){} // key obj里边enumerable的属性(可枚举的属性) for of是ES6标准,遍历value---每…

04级函授计算机等级考试练习.rar

04级函授计算机等级考试练习.rar 以下是计算机基础的练习资料:函授练习.rar posted on 2005-07-16 21:11 麦子 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/maixf/archive/2005/07/16/194254.html

162. Find Peak Element

文章目录1 题目理解2 线性扫描3 递归二分查找1 题目理解 输入&#xff1a;int[] nums并且 nums[i]!nums[i1] 输出&#xff1a;找到称为峰值的那个数字&#xff0c;返回其下标。 规则&#xff1a;峰值是指&#xff1a;nums[i-1]<nums[i] 并且 nums[i1]<nums[i]。你可以认…

spring mvc学习(11):eclipse的环境maven项目创建前期工作

1创建maven项目 2pom.xml有红色错误&#xff0c;生成web目录 3修改pom.xml配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…