RedMonk 2020 年 Q3 编程语言排行公布,Python 第二、Rust 进入前二十
共 2576字,需浏览 6分钟
·
2020-07-28 18:30
作者:芒果果丨 来源:SegmentFault 思否
知名软件行业分析公司 RedMonk 发布了 2020 年第三季度半年度编程语言排行,这是 RedMonk 今年发布的第二份榜单,上一次是今年 3 月发布的第一季度编程语言排行。
RedMonk 榜单的排名过程做了一些调整,虽然具体的收集方式已经改变,但基本过程仍然是一样的。RedMonk 从 GitHub 和 Stack Overflow 提取语言排名,并将它们结合起来进行分析。这种排名方法要关联语言讨论和使用情况,来提取对潜在的未来采用趋势的见解。
2020 第三季编程语言排行
前二十名排名如下:
1 JavaScript
2 Python
3 Java
4 PHP
5 C ++
5 C#
7 Ruby
7 CSS
9 TypeScript
10 C
11 Swift
11 Objective-C
13 R
14 Scala
15 Go
15 Shell
17 PowerShell
17 Perl
19 Kotlin
20 Rust
本季度的排名总体上变化较小。
这是否是相对语言轨迹正常起伏的一部分,目前尚不清楚,但 RedMonk 已经运行了下面讨论的一些初步数据,并将密切关注趋势的发展。
Python(0):本季度排名中最引人注目的“赢家”是Python,是第一个独占前两名的非 java 或 JavaScript 语言。
在过去的几年里,这门语言的多功能性被低估了,就像鼎盛时期的 Perl 一样,Python 是成千上万个小项目的粘合剂,也是无数个人脚本的基础,包括一些为这些排名检索数据的脚本。
Java (- 1) : 排名中个别名次之间的差别很小,任何一个季度的排名都只是一个快照,受到暂时的波动影响。但是值得注意的是,自 2012 年执行这些排名以来,这是我们第一次将 Java 排在第一或第二以外。
即使其他报告过早或错误地称其为死语或注销该语言,它在这些数量级排名中的强劲表现证实了我们定性地观察到的结果,即由于 Java 能够发现和满足新的用例,它仍然被广泛使用。
然而,在开发者时间和关注度方面,Java 从来没有像今天这样面临过如此激烈的竞争,尽管它已成为企业的多年支柱,但它传统的优势地位并没有得到保证。因此,在接下来的几个季度里关注 Java 将是一件非常有趣的事情,它将决定这种运行是一种暂时的偏离,是一种新的现状,还是一种长期流行程度下降的早期指标。
Rust (+ 1) : 说到与 Java 竞争开发人员时间和注意力的语言,Rust 的排名正在稳步提升。五年前的这个季度,Rust 在这些语言中排名第48位,落后于 Haskell,Matlab,Clojure 和 Groovy 将近三十位。
截止到本季度,它已经超越了它们,并且似乎还有更多的增长潜力。它对安全应用程序的构建的关注尤其重要,并且越来越重要,并且有助于 Rust 在越来越多的知名项目中的使用。
Kotlin(0),Dart(0),Julia(0):这三种语言在本季度没有名次上的变化。如果跟以往相比的话,Kotlin 在五年前排名 68,比 Rust 还落后 20 位,但此刻比 Rust 高一名。
然而,撇开这种历史性的增长不谈,对于我们最近在这些排行榜上名列前茅的许多公司来说,这种增长并没有带来什么变化。这三种语言在最近的发展轨迹中都停滞不前了。
我们跟踪的 Stack Overflow 标签与我们上次运行时相比增长率为负(- 16%) ,但是调查语言中 GitHub 的请求增长率为11% 。从历史上看,这并不是一种反常的模式,因此似乎不会对代码贡献和讨论产生过大的影响。
TypeScript (0) : 与 Python 或这里提到的其他几种语言一样,在 TypeScript 的运行方面没有什么需要报告的。
但是,考虑到它在第 9 位的位置,这本身就很值得注意。TypeScript 的问题是该语言的潜在上限,它会排在前 10 名的后半部分吗?还是可以推动前五名?我们将拭目以待。
排名流程
分析中 GitHub 部分使用的数据源是 GitHub Archive。通过提取请求的方式来查询语言,其方式类似于 GitHub 用于组装 octverse 状态的方式。查询被设计成与前一个过程尽可能相似。
语言是基于基本存储库语言的。虽然下面继续列出了一些注意事项,但它确实具有与先前的方法相结合的好处。
排除了分叉回购。
使用聚合历史来确定排名(尽管基于表结构的变化,这不再能够通过单个查询来完成)。
对于 Stack Overflow,只需使用其有用的数据浏览器工具收集所需的指标。
其他注意事项
要包含在这个分析中,必须在 GitHub 和 Stack Overflow 中都可以观察到一种语言。
这里没有说这些排名代表了更广泛的普遍用法。它们只不过是对两个人群之间相互关系的检验,我们相信这两个人群可以预测未来的使用情况,因此它们具有价值。
有许多潜在的社区可以被调查来进行这种分析。和 Stack Overflow 在这里首先使用是因为它们的大小,其次是因为它们公开了分析所需的数据。然而,我们鼓励有关各方使用其他来源进行自己的分析。
所有的数字排名都应该有所保留。我们在这里严格按照数字排名是为了引起兴趣。一般来说,数字排名远不如语言的层次或分组相关。在许多情况下,列表中的一个点与下一个点是无法区分的。然而,在情节上语言层次的分离,通常代表了相对受欢迎程度的巨大差异。
此外,排名越下降,到年可用于语言排名的数据就越少。除了语言的顶层,根据快照的不同,需要评估的数据量很小,并且语言的实际位置随着列表的进一步深入而变得不那么可靠。
那些在 Stack Overflow 之外拥有社区的语言,如 Mathematica,在这个轴上的代表性不足。衡量100个不同社区站点的过程是不可能的,一方面是因为许多站点没有可用的公共指标,另一方面是因为不同社区站点之间的相互衡量在统计学上是不正确的。