从机器语言到汇编语言到高级编程语言,随着计算机的普及,开发者与计算机之间的沟通也从“繁文”趋于“白话文”,编程语言自身也逐渐向更高的性能、安全等方向不断发展。同时,作为开发者的最有效工具,编程语言的使用率一定程度上反应了不同领域的发展现状。
日前,IEEE Spectrum 在分析 CareerBuilder、GitHub、Google、Hacker News、IEEE、Reddit、Stack Overflow 和 Twitter 八大主流网站中开发者对编程语言的使用情况后,最新发布了 2021 年度编程语言排行榜,通过剖析 55 种编程语言的流行度,以此希望呈现开发者工具的最真实应用现状。
Python 夺冠,但它并不适合所有人
在众多编程语言中,近几年来,Python 的发展势如破竹,就连早已宣布退休的 Python 之父 Guido van Rossum 也于去年 11 月加入微软开发者部门,旨在依托开源,保障大家可以更好地使用 Python。因此,Python 在 IEEE Spectrum 所发布的 2021 年度编程语言排行榜中再次摘得桂冠也属意料之中。
“学习 Python。这是我们可以从其在 IEEE Spectrum 年度顶级编程语言交互式榜单中持续占据主导地位的最大收获。”IEEE 官方如此评价道。
凭借简单的编码、可扩展、GUI 编程支持、面向对象、可移植等优势,Python 主要被开发者用于 Web 应用程序、桌面应用程序、媒体工具、网络服务器以及机器学习等场景中。
同时,Python 拥有丰富的库支持,如果你掌握了 Python 的基础知识,就可以迅速了解很多项目如嵌入式、AI 系统的来龙去脉。
IEEE Spectrum 编程语言排行榜 TOP55
当然,Python 的流行并不意味着每位开发者都必须上手去学习。根据编程语言自身特性的不同,每种语言的适用范围也有所不同。据调查显示,作为同样适用于 AI、数据分析等领域的 R、SQL、 MATLAB 等语言而言,因其更适合解决一些特定的问题,它们的使用率也正在逐步上涨。
与此同时,相较去年,C、C++、Java 和 JavaScript 等老牌编程语言的得分在今年均有所上涨,而每年行业中不时出现的唱衰论对这些语言自身的发展影响并不大,因为在一些企业级应用、或是游戏开发、前端领域中,这几种语言所编写的应用仍占据主导地位。事实上,出于性能原因,Python 本身及它的一些库的重要部分都是用 C 语言来编写的。
因此对于开发者究竟该如何选择编程语言这一问题,不久前,Java 之父 James Gosling 在采访时也做出了回答,其表示:
我学的第一种编程语言是 PDP-8 汇编代码,随后是 Fortran。
大家可以去学习任何语言,有些人的接受能力更强,但这很大程度上取决于一个人最终的职业道路。如果你想成为一个软件开发人员,你要构建大型的、高性能的系统,运行在JVM上的语言最值得去学习,例如 Scala 和 Kotlin,Clojure 也很有趣。如果你是物理专业的学生,Python 是个不错的选择。
其实选哪一种语言都无关紧要,很多人都只是坚持他们学到的第一种语言,如果你能让人们反复学习各种语言,那肯定是最好的。我认为每个大学都应该为学生开设一门“比较编程语言”的课程。用五种不同的程序语言完成作业,这能加快学习进度,并且他们会发现这些语言的区别真的不大,同时也能让他们自己去思考,哪一种语言更好。很久以前我上过一门课,每次作业我都用最不合适的语言,例如,用 Cobol 语言进行数值计算,以及 Fortran 中的符号操作。令人惊讶的是,我的成绩依然是 A。
编程语言变化
编程语言的选择只要是适合自己的就好,正因此,今年 IEEE Spectrum 的年度编程语言榜单也是交互式的,即开发者可根据自己的喜好或者场景,查看不同的榜单。
不过,在一些特殊时期,有些语言的波动会比较大。譬如通过 Twitter 的指标我们发现,上古编程语言 COBOL 从上次的第七位下降到了如今的第 34 位,这是因为过去一年间,在面对 Covid 大流行时,国外政府的不少管理软件采用的是 COBOL 语言编写,亟需大量的 COBOL 程序员进行维护,因此,在 2020 年期间,COBOL 一度成为 Twitter 上热门话题。
另外,IEEE Spectrum 默认排名中,微软的 C# 从去年的第 25 位上升到了今年的 7 位,在剖析其背后原因时,IEEE 官方表示或与 C# 9.0 于去年年底发布有关,同时,即将发布的 Windows 11 也对 C# 有深度的应用。
就业需求编程语言排行榜
从就业与招聘需求的角度来看,该榜单与整体编程语言趋势榜单相差不大,其中 Python 依然位居榜单第一,其次分别为 C、Java、C++、Go。
开源项目中编程语言排行榜
在开源领域,Python、Java、JavaScript 位居前三甲。从应用场景来看,Python 主要应用在框架与库的创建中,Java 则更多聚焦于工具层面,JavaScript 应用于前端项目中。
更多报告内容可参考:https://spectrum.ieee.org/top-programming-languages-2021
|