出品|开源中国
文|白开水
知名软件行业分析公司 RedMonk 发布了 2021 年 1 月(第一季度)编程语言排行榜。
RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,统计分析后进行排序,其旨在深入了解潜在的语言采用趋势。该榜单一年发布两次,这是今年第一份榜单。
目前 RedMonk 对编程语言的排序算法基本思路没有变化,但是具体过程改变了。现在使用 GitHub Archive 作为数据源对 GitHub 数据进行分析;而 Stack Overflow 部分则直接使用其提供的实用工具 data explorer,具体排序算法见官方介绍。
下面先来看看 RedMonk 2021 年 Q1 的编程语言排行榜前 20 名:
排名2021 年 1 月 2020 年 6 月 2020 年 1 月 1JavaScriptJavaScript JavaScript 2Python Python Python, Java 3JavaJava 4PHP PHP PHP 5C#, C++, CSSC++, C# C# 6 C++ 7 Ruby Ruby, CSS 8TypeScript CSS 9Ruby TypeScript TypeScript, C 10C C 11Swift Swift, Objective-C Swift 12R Objective-C 13Objective-C R Scala, R 14Shell, Scala Scala 15 Go, Shell Go, Shell 16Go 17PowerShell PowerShell, Perl PowerShell, Perl 18Kotlin 19Rust, Perl Kotlin Kotlin 20 Rust Haskell
与上一次排行榜相反,本季度的前 20 名榜单出现了较大的变动。RedMonk 分析师斯 Stephen O'Grad 指出,前 20 名中有一半经历了一定程度的变动,“这是很不寻常的” 。此外,Python 保持住了它第二名的地位,其捍卫排名的能力也值得注意。一些值得关注的点如下:
JavaScript(0):值得注意的是,JavaScript 的性能仍然非常强大。尽管有来自新兴语言的竞争、有关于碎片化的讨论、甚至有对 JavaScript 语言本身的批评,但它仍然非常受欢迎。RedMonk 方面指出,自 2018 年 1 月以来,JavaScript 的拉取请求增长了453%。仅仅从上个季度开始,它们就增长了 96%,而这还是在一个已经很庞大的提交基础上。简而言之,JavaScript 仍然是行业巨头,并且数据中没有迹象表明这种情况可能会很快改变。
TypeScript(1):TypeScript 的排名继续上升,“这本身就令人印象深刻”。RedMonk 称,自进入前十榜单以来,TypeScript 起初面临的问题是它是否能够坚持下去。现在更合适的问题则是,该语言的最终上限到底是多少。在最新的八个季度排名中,TypeScript 上升了第六位,环顾整个行业,其受欢迎程度可见一斑。
Ruby(-2):Ruby 长期以来一直处于下降状态。然而在 RedMonk 最初于 2012 年开始进行语言排行时,Ruby 是榜单第五的最受欢迎的语言,并且在大约五年的时间中一直保持着这一地位。但是自 2016 年以来,Ruby 开始一度下滑,本季度甚至已被 CSS 和 TypeScript 超越。近年来,Ruby 一直在努力解决一些性能问题,但撇开对宣称的内容与已经取得的成就存在疑问不谈,对性能的关注似乎并没有以任何实质性的方式改变这门语言在此榜单中的命运。RedMonk 指出,明确地说,有几十种甚至上百种语言会很乐意与排名第九的语言交换位置,但 Ruby 的拥护者和用户应该关注的不是这里的实际位置,而是 Ruby 的发展轨迹。“它是一门可爱的语言,拥有美丽的语法,但在竞争激烈的语言市场上,这还不够。”
Go(-1):和 Ruby 一样,Go 的排名不如它的整体轨迹更值得关注。在经历了最初的快速增长期,并在 2018 年以其第 14 位的排名达到顶峰后,Go 一直走在下降的道路上。RedMonk 认为,出现此现象的部分原因在于,相对于这个榜单上的其他一些语言来说,Go 的可寻址市场要狭窄得多。同时,其主要竞争对手 Java 一直保持着高人气语言。“但不管是静止的还是衰退的,如果 Go 有成为真正行业力量的野心,那么其路径和结构可能需要进行一些改变。”
R(1):R 是其他社区中学术界的主力军,但这种语言在单一领域(分析领域)内表现出色,在特定领域之外却基本没有多大意义。它一直是用来解决一个简单问题的几种语言之一:在今天这个碎片化的世界里,一种专门化语言的命运可能是怎样的,它能爬多高或跌多低?通常情况下,专门化的语言被更通用的语言所取代。然而,RedMonk 称,R 一直是这个规则的例外。尽管它的增长从未经历过快速或线性的发展,但该语言已经由最初 17 的排名上升至了当今的第 12 位。有趣的是,Objective C(-2)还排在它的后面。Objective C 长期以来一直是排名前十的中坚力量,但自从引入了打算取代它的 Swift 之后,它的排名一直在下降。不过其较为靠前排名还是让人出乎意料。
Kotlin (1)/ Rust(1):Kotlin 和 Rust 彼此之间没有真正的联系,只是它们之间存在一定的功能重叠。但是,Kotlin 和 Rust 的共同点是,它们在开发人员中的受欢迎程度使他们在本季度排名中分别上升了一个位置:Rust 排名第 19 位,Kotlin 排名第 18 位。
Dart(3):不到三年前,Dart 还在榜单三十几位徘徊。然而,在引入 Flutter 框架两年后,Dart 则上升了三个位置,排名第 21 位。随着 Dart 于本季度恢复上升轨迹,我们可以将注意力转向观察 Dart 是否能跻身前 20 名;如果能的话,哪些语言又有可能会被它取代呢?