近日,RedMonk公布了最新的编程语言排名,JavaScript 排名第一,Python 和 Java 分别排名第二、第三。
2021 年 1 月编程语言总体排名
排名前 20 的编程语言(并列语言按字母顺序排序):
JavaScript
Python
Java
PHP
C#
5.C++
5.CSS
TypeScript
Ruby
C
Swift
R
Objective-C
Shell
14.Scala
Go
PowerShell
Kotlin
Rust
19.Perl
RedMonk 官方在博客写道,上次统计排名中,前 20 名编程语言的排名相当稳定。对综合指标来说,这样的结果很平常。但是本季度,最终排名发生很大的变化。前 20 名编程语言,有一半经历一定程度的波动,这非常不寻常。
很难把这种现象明确地归因于某种更高层面的宏观趋势,但这样的数据与一个行业是相吻合的:整个行业已经从疫情爆发初期的大封锁造成的混乱中开始恢复过来,此前的两个季度里,大家逐渐习惯了新形势。
如果这种趋势持续下去,那么它会演变成巨大的影响。
值得一提的是,Python 保住了第二名位置。Java 紧随 Python 之后,与后者的差距比自己与身后的 PHP 之间的差距更小——但是 Python 捍卫其排名新纪录的实力还是给人留下了深刻印象。
本期排名中最重要的几大要点(括号中的数字是自上期以来语言排名的净变化)
JavaScript(0):本文关注的主要是变化,因此讨论 JavaScript 似乎没什么意义,毕竟 JavaScript 的排名没有变化。但值得注意的是,JavaScript 的影响力还是那么稳固。尽管有来自众多新兴语言的竞争压力、关于 JS 碎片化的所有讨论,甚至有对 JavaScript 语言本身的批评,它仍然非常受欢迎。以数据为例,自 2018 年 1 月第一季度的排名以来,JavaScript 拉取请求增长了 453%。仅从上一季度到现在,这个数字就增长了 96%,这还是基于相当庞大的提交基础获得的增幅。简而言之,JavaScript 仍然(尽管存在负面因素)占据着统治地位,这一点在业内没有其他选手能比拟,并且数据中没有迹象表明这种情况很快就能改变。
TypeScript(1):谈到 JavaScript 的影响力,TypeScript 在我们的排名中名次继续上升。这样的结果令人印象深刻。Swift 是最近唯一能前进到 10 名以内的新语言,但也只待了一个季度,然后就退回了 11 位,自 2018 年以来名次一直保持相对稳定。TypeScript 面临的最初问题是它是否能够坚持下去。现在更常见的问题是这种语言的最终上限能到什么级别。TypeScript 在最近的八个季度排名中有 6 次上升,在整个行业中,它的受欢迎程度显而易见。而与它增长势头同样有趣的话题是,它的成长抢了谁的饭碗。
Ruby(-2):以前我们就讨论过,Ruby 的势头长期处于下降状态,只不过趋势比较温和。但从本季度的排名来看,它是否还能温和下滑已经是个问题了。当我们在 2012 年开始做排名时,Ruby 是名次第五的最受欢迎语言,并且这一水平保持了五年左右。但自 2016 年以来,Ruby 一直在逐渐下滑,本季度它已被 CSS(是的,我们知道你们中的许多人不认为它应该参与排名)和上面的 TypeScript 都超过了。近年来,Ruby 一直在努力解决它存在的一些性能问题,但且不说他们的宣传与实际成果有多少一致,对性能的这种关注似乎并没有改变从我们的排名中反映出来的命运。需要明确的是,Ruby 所处的第 9 位名次对于几十乃至几百种语言来说都是非常好的成绩了,但 Ruby 的用户和粉丝更应该关心的不是它的排名而是它的趋势。这是一门可爱的语言,语法优美,但在竞争激烈的语言市场中实力还远远不够。
Go(-1):与 Ruby 一样,Go 的排名相比其趋势来说也并不值得关注。经过早期的快速增长之后,Go 在 2018 年排名第 14 位,那也是它的巅峰时刻。之前,Go 一直是排名最稳定的语言,基本看不出下滑趋势。但这次的排名之所以会是这样,Go 相对其他一些语言更为狭窄的市场定位应该可以解释一部分原因。作为后端应用程序组合的主要竞争对手,Java 仍然是一种至关重要且使用率很高的语言,经过这么多年的流行也并没有消失淡出,这对 Go 来说并不是好事情。但不管它的地位是稳固的还是开始衰落,如果 Go 雄心勃勃想要成为真正的行业主导力量,那么它的路径和结构可能需要做一些改变了。
R(1):我们经常会讨论 R 的命运这一话题。R 的学术标签非常明显,只在单个领域(分析)中表现出色,并且在这一领域之外基本没有存在感。看到 R 和其他几种语言,很容易冒出一个问题:在当今碎片化的世界中,一种用途特殊的语言会有怎样的命运?它会走上多高的山峰,或者落到怎样的境地?通常,专用语言的表现比不上通用语言——就像上面提到的 Java 与 Go 的对比。但是,R 是这条规则的例外。尽管它从未经历过爆发式或线性增长,但在许多年前我们开始做排名时,这种语言的名次才是第 17 位。这太有趣了;更重要的是它超越了 ObjectiveC(-2)来到了今天的 12 位。自前十常客 Objective C 的指定继任者 Swift 诞生以来,前者的名次一直在缓慢下滑。不管怎样,看到一种专注于统计分析的语言名次能超越 2014 年前绝大多数 iOS 应用的编写语言,还是很令人震惊的。
Kotlin(1)/Rust(1):Kotlin 和 Rust 之间没有真正的联系,只是它们之间存在一定的功能重叠。Kotlin 是一种基于 JVM 的语言,具有现代语法,可以与 Java 自由混合;Java 是一种具有良好后端应用实力的语言,但它也是 Android 上的一等公民。Rust 是一种安全意识很强的语言,已被 Mozilla 等组织广泛使用,但也经常被认为是 Go 的替代语言。说到 Mozilla,他们将所有 Rust 商标和基础设施资产转移到了新的 RustFoundation,也就是这种语言的管理组织。该语言还得到了 AWS、谷歌、华为和微软的支持。Kotlin 和 Rust 的共同点是,它们在开发人员中的受欢迎程度让它们在本季度排名中都上升了一个位置——Rust 排名第 19,Kotlin 排名第 18。迄今为止,Kotlin 一直处于领先状态,但 Rust 新的专职基金会是否会完全改变这种情况是值得关注的。
Dart(3):不到三年前,Dart 一直处于低迷状态,徘徊在 30 名开外。但在 Flutter 框架推出两年后,Dart 排名上升了 3 位,排在我们的前 20 名之外。当时人们质疑 Dart 是不是已经来到了巅峰,但本季度的成绩否定了这种质疑。显然,Flutter 对这种语言的流行程度产生了实质性的影响,它可以编译为世界上最受欢迎编程语言的能力同样是一项优势。虽然排到 21 位已经是很难的成绩了,但本季度 Dart 大幅上升的名次使我们产生了期待,可以观察一下 Dart 接下来是否能跻身前 20 名,如果能做到的话过程中又会发生什么事情。
说明:
说明:RedMonk 编程语言排名是由 MongoDB 发布,每季度发布一次。RedMonk 排名最早始于 2010 年末。流程:从 GitHub 和 Stack Overflow 提取编程语言排名,然后将两份排名结合在一起,试图同时反映编程语言在代码(GitHub)和讨论(Stack Overflow)两方面的名次。
评论