【编者说】编程语言排名一直在变化,JavaScript连续7年霸榜,来看看Top20都有哪些语言吧。
【华章妹说】文末赠书
作者 | 李磊 责编 | 欧阳姝黎
出品 | CSDN
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。
1
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 上的受欢迎程度。
2
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 ,会取代哪种语言的位置,我们拭目以待。
因为数据来源和统计方法的不同,各平台对编程语言的排名都不尽相同。编程语言在单个季度的排名出现小幅度波动也是很正常的,无法说明一切。在更长的时间纬度的里,编程语言的整体趋势是一致的,这是我们每一位开发者应该了解,并不断提高自己开发能力的重要参考。
参考链接:
https://redmonk.com/sogrady/2021/03/01/language-rankings-1-21/
RECOMMEND
推荐阅读
01
《JavaScript权威指南(第7版)》
推荐理由
全球畅销25年!几十万前端人共同的选择!第7版根据ES2020全面升级,值得每位前端人珍藏!点击上图即可预购。
02
《JavaScript编程精解(原书第3版)》
推荐理由
本书是编程原理与运用规则的简练、完美融合。我喜欢游戏式的程序开发教程。本书再次点燃了我学习编程的热情。
——JavaScript之父Brendan Eich
JS之父推荐。系统介绍如何编写高效的代码,在游戏式开发中轻松掌握JS技术。从JavaScript的基本语言特性入手,提纲挈领地介绍JavaScript的主要功能和特色,每章配有总结和习题,配套码源提供下载。包含5个实战章节,帮你快速上手实际项目。
03
Python学习手册(原书第5版)
推荐理由
无论你是零基础新手,还是有编程基础的程序员,想快速入门Python并达到可以开发实际项目的水平,本书都会是你的理想选择。每章都对Python语言的关键内容做单独讲解,并且配有章后习题、编程练习及详尽的解答,还配有大量注释的示例以及图表,便于你学习新的技能并巩固加深自己的理解。
04
Effective Python:编写高质量Python代码的90个有效方法(原书第2版)
推荐理由
Python编程进阶必读,基于Python3.8,新增31条建议!掌握Pythonic编程方式,写出高质量代码。本书以使用场景为主导的精练教学方式,汇聚了90条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。通过本书,你能够了解到解决关键编程任务所用的最佳方式,并学会编写易于理解、便于维护且利于改进的代码。
05
Java核心技术(原书第11版)
推荐理由
《Java核心技术》第11版,获Jolt大奖图书,针对Java SE 9、10、11全面更新,补充了Java新版本的新特性,用更清晰明了的示例加以解释。卷I:主要介绍Java语言的基础知识的专业级详解;卷II:主要介绍软件开发需要了解的高级主题。完整讲解Java开发者学习路线。适合全体初-中级Java编程人员阅读。
06
Effective Java中文版(原书第3版)
推荐理由
“我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍,但是我需要这本书。”——Java之父James Gosling
这是一本分享经验并指引你少走弯路的经典著作,针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针,通过90条经验法则,探索新的设计模式和语言习惯用法,帮你更加有效地使用Java编程语言及其基本类库。
07
PHP和MySQL Web开发(原书第5版)
推荐理由
本书是利用PHP和MySQL构建数据库驱动的Web应用程序的权威指南。既有详细的概念说明,又有复杂而完整的代码实例,使读者能够轻松地将自己所学的理论知识付诸行动。涵盖了PHP语言的基础知识、基础编程技巧,MySQL数据库的使用基础以及实战沉淀。对于开发安全的、适用于全球用户的Web应用来说,是一本极佳的宝典。
08
《C++代码整洁之道:C++17可持续软件开发模式实践》
推荐理由
本书致力于讲述C++整洁代码之道!如果你想让自己写的代码更加整洁,那么这本书适合你阅读。本书通过一些示例帮助各个技术层次的开发人员编写出易懂的、灵活的、可维护的和高效的C++代码。即使你是一名资深的开发工程师,在本书中也可以找到有价值的知识点。
09
《TypeScript入门与实战》
推荐理由
TypeScript快速入门手册:系统、全面地介绍TypeScript编程语言的基础知识及应用,从基本语法到类型系统,从参数配置到工具集成,包含大量示例代码。
10
《TypeScript项目开发实战》
推荐理由
TypeScript进阶实践指南:通过9个实用项目,详细讲解如何使用TypeScript 3.0和不同的JavaScript框架开发高质量的应用程序。书中不仅介绍TypeScript的核心概念与技术,还涵盖Angular和React的一些新功能,以及GraphQL、微服务和机器学习等相关的新技术。
11
《C编程技巧:117个问题解决方案示例》
推荐理由
本书通过实用且信息丰富的技巧帮助你解决C编程问题,涵盖了C编程的各个方面,包括C的基础知识、运算符与表达式、控制语句、递归和用户定义的函数。每章都包含一系列技巧,你可以轻松地参考它们以快速找到想要的答案。
12
R语言编程艺术
推荐理由
著名计算机科学家兼统计学家撰写,R语言领域公认经典著作。从纯编程角度系统讲解R语言的数据结构、编程结构、语法、TCP/IP网络编程、并行计算、代码调试、程序性能优化、编程技巧以及R语言与其他语言的接口。
13
《Head First Go语言程序设计》
推荐理由
Head First系列图书新作,通过大量情景对话、图片图表,带你零基础轻松掌握Go语言编程的核心技术你将会了解到雇主希望入门级Go开发人员所知晓的惯例和技术。
14
Go微服务实战
推荐理由
结合大量实战案例,全面深入介绍Go语言知识、微服务理论,以及Go语言实现微服务模式的方法。本书是为Go语言开发者和希望进入Go微服务开发领域的读者准备的,它不是一本仅介绍微服务的书,有一半的篇幅是在介绍Go语言的知识。特别适合有Java、Python等其他编程基础而希望转到Go语言编程的读者阅读。
15
Head First Kotlin程序设计
推荐理由
零基础学Kotlin,含大量插图与情景对话,每个知识点配有实战及习题,让你轻松愉快地掌握Kotlin核心技术,是一本初学者必备的快速入门学习手册。
16
深入理解Kotlin协程
推荐理由
腾讯高级工程师、Kotlin布道师、Kotlin中文社区负责人撰写,从工作机制、实践技巧等8个维度全面讲解Kotlin协程的概念和实现。
赠书啦
机械工业出版社华章公司联合【杰哥的IT之旅】为大家送3本书,中奖的朋友可在以上17本书中任选一本,赠书包邮寄出。
参与方式:打开以下名片,回复「杰哥」,获取抽奖码。
开奖时间:3月22日12点
▲打开名片回复「杰哥」
扫码关注【图书小编辑】视频号
每天来听华章哥讲书
书讯 | 3月书讯 | 此时已莺飞草长,爱的书正在路上...
资讯 | DB-Engines 3月数据库排名:MySQL跳出“同期跌幅榜”,拿下“本月涨幅榜冠军”
干货 | 如何阅读《深入理解计算机系统》
赠书 | 【第46期】国际数学日——这三本书带你领略数学的魅力
点击阅读全文查看更多好书