RedMonk 编程语言排行榜:JS持续霸榜,Dart 快速上升!
2021 年的编程语言发生了哪些变化?在 GitHub 和 Stack Overflow 上什么语言的讨论度最高?知名软件行业分析公司 RedMonk 对 GitHub Archive 和 Stack Overflow 数据工具进行分析后,发布了 2021 年 1 月(Q1 季度)编程语言排名,解析了目前主流编程语言的最新变化。
主要包含这几点:
编程语言的排名在近期发生了一系列的变化,未来可能还会有更大的变动;
JavaScript 从 2014 年来连续 7 年称霸榜首,并将保持第一的领先态势;
Ruby 排名下降,已被 CSS 和 TypeScript 超过;
TypeScript、R 语言、Kotlin 和 Rust 排名提高,Dart 快速上升,有望进入 Top 20。
2021 编程语言 Top 20
1、JavaScript
2、Python
3、Java
4、PHP
5、C#/ C ++ / CSS(并列)
8、TypeScript
9、Ruby
10、C
11、Swift
12、R
13、Objective-C
14、Shell / Scala(并列)
16、Go
17、PowerShell
18、Kotlin
19、Rust / Perl(并列)
此前 RedMonk 编程语言的 Top 20 一直非常稳定,与之形成鲜明对比的是,这个季度的排名发生了很大变化。近半数语言的排名都有不同程度的上升或下降,这一点非同寻常。
受某些宏观因素的影响,编程行业一直在变化,语言的排名的也会随之产生变化。去年某些行业受 COVID-19 冲击,其使用的编程语言也经历了一段低谷,几个季度后行业回暖,编程语言的使用率恢复到正常水平,像这类从动荡到稳定的循环始终在发生。
但如果某种语言的排名持续上升或下降,则预示其中蕴含着重大的趋势,这些改变可能会对整个编程世界带来影响。
下图是编程语言排行在 GitHub 和 Stack Overflow 上的对比。横轴是编程语言在 GitHub 上的受欢迎程度,纵轴是编程语言在 Stack Overflow 上的受欢迎程度。
JavaScript稳居榜首,Dart快速上升
Web 的火热,强大的 JavaScript 稳居榜首
如果说今年编程语言排名的主基调是「变化」,那 JavaScript 的发展就是以不变应万变。尽管行业中有一些新兴语言不断向 JavaScript 发起挑战,且 JavaScript 本身也存在各种碎片化的问题,但这不影响它继续成为当前最受欢迎的语言。
自 2018 年 1 月以来,JavaScript 带来的相关搜索就增加了 453%,仅在上个季度,这个数字就达到了 96%,还是在其已有的庞大基础上的增长。简而言之,在 RedMonk 的编程语言排名中,JavaScript 仍然是毫无疑问的第一语言。
得益于 Web 开发的火热和自身的强大性能,JavaScript 自 2014 年 Q1 来便位居榜首,且没有迹象表明它的排名会发生变化。
2012 年至今的 RedMonk 语言排名
连续两年排名上升,TypeScript 潜力无限
说到 JavaScript 的强大性能,就不得不提连续 2 年排名上升的 TypeScript 。最近几年为数不多能冲进前 10 名的语言,除了仅维持了一个季度就回到第 11 位的 Swift 之外,就只剩 TypeScript 了。
TypeScript 并没有抛弃 JavaScript 的语法另起炉灶,而是在更简单易学的基础上,做成了 JavaScript 的超集。TypeScript 最初的问题是能否维持在 Top 10 ,现在则变成了它的上限在哪里。在最近八个季度中,TypeScript 总共上升了 6 个名次,TypeScript 在整个行业中的受欢迎程度,已经是显而易见的了。
性能问题成为瓶颈,Ruby 排名持续下滑
在 2012 年,Ruby 在最受欢迎的语言中排名第五,并在 5 年里持续保持这一地位。但自 2016 年以来,Ruby 的排名一直在下滑,在这个季度它已被 CSS 和 TypeScript 超过了。
Ruby 在最近几年不断努力解决它的性能问题,但对性能的关注似乎没有改变该语言的命运。Ruby 的倡导者和用户应该关注的不是 Ruby 现在的排名,而是它今后的发展趋势。这是一门可爱的语言,拥有优美的语法,但在竞争激烈的语言市场中,这些优点还远远不够。
好用但小众,Go 语言略微下降
与 Ruby 一样,Go 的整体态势比排名更值得关注。经过最初的快速增长之后,Go 语言在 2018 年排名第 14 位,达到顶峰,随后便保持在比较稳定的位置,略有下降。
相比于排行榜上的其它语言,Go 语言更窄的受众群体可能是其稳定下降的原因。作为 Go 语言的主要竞争对手,Java 仍然保持较高的使用率,并未经过这么多年的发展而逐渐消失。如果 Go 语言想要成为行业的主流,那它在路径和结构上可能还需要一些改变。
专注学术领域,R 语言反超 Objective C
R 语言在学术研究领域非常流行,表现也很出色,但它在学术研究之外的领域却没什么影响力。R 是一种用来解决简单问题的语言,但在今天这个碎片化的时代,功能单一的语言,似乎注定不会大范围流行开来。
通常来说,专业型语言的性能要好于通用型语言,就像 Java 与 Go 的对比,但 R 语言是这条规则的例外。尽管 R 语言从未经历过快速增长,但在许多年前, R 语言的排名还在第 17 位,如今来到了第 12 位,甚至超过了下降两名的 Objective C ,这非常有趣。
越来越受喜爱的 Kotlin 和 Rust 上升 1 名
Kotlin 和 Rust 之间没有直接联系,只是在功能上有一部分重叠。Kotlin 是一种基于 JVM 的语言,有更现代的语法,可以与 Java 进行自由混合,而 Java 有很好的后段开发基础,也是 Android 开发的首选。
Rust 是一种强安全意识的语言,已被 Mozilla 等组织广泛使用,经常也被认为是 Go 的替代语言。Kotlin 和 Rust 的共同点是,它们在开发人员中的受欢迎程度使它们在本季度的排名中分别上升了一个位置:Rust 排名第 19,Kotlin 排名第 18。
Dart 语言上升 3 名,有望进入 Top 20
三年前,Dart 还在三十名左右徘徊,在 Flutter 框架推出的两年后,Dart 排名上升了 3 位,来到了 21 名,Flutter 框架显然对这种语言的流行产生了实质性的帮助。
虽然 Dart 还有一些不足之处,语法也不如 Kotlin 简洁,但仍在不断发展中,接下来它能否进入 Top 20 ,会取代哪种语言的位置,我们拭目以待。
小结
因为数据来源和统计方法的不同,各平台对编程语言的排名都不尽相同。编程语言在单个季度的排名出现小幅度波动也是很正常的,无法说明一切。在更长的时间纬度的里,编程语言的整体趋势是一致的,这是我们每一位开发者应该了解,并不断提高自己开发能力的重要参考。