IEEE Spectrum 刚刚发布了第六届编程语言排行榜。在新的排名方式下,Python 再次名列第一,而且与第二名的差距正在加大。名列后几位的分别是 Java、C 语言、C++和 R 语言。
这是 IEEE Spectrum 的第六次年度编程语言排行统计。今年的统计进行了重大改革,一些基础指标进行了重构,而最终的排行榜也进一步得到了简化。但其基本理念让仍然相同:将多个数据源的编程语言流行度排名结合起来,得出目前业内人们关注度最高的语言。
这些信息来源包括谷歌搜索、谷歌趋势、推特、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder、IEEE Job Site 和 IEEE Xplore Digital Library。
对于编程语言的统计而言,人们总会面临两个主要问题:(1)理论上没有人可以审查所有程序员正在敲的代码属于哪种语言;(2)有些时候,一种语言是另一种的基础,有的时候两种语言所使用的领域完全没有相关性。IEEE 的榜单致力于解决这些问题,呈现出最为准确的编程语言流行程度排行。统计者们从 8 种信息渠道获取数据,并设定了 11 种排名方式——这些指标是过滤语言排名的最优方式——然后将所有结果以不同权重结合起来,获得了最终的排名。当然,如果你对于权重有异议,也可以在 IEEE 的可交互页面上设置自己想要的权重:
排在 Python 之后的是 Java、C 语言和 C++,这是一组长期争夺第二名的语言——尽管 IEEE 调整了指标,这些语言与 Python 之间的差距还是在越拉越大。C++的分数落后于 Python 12.5 分(在所有排名中,第一名的编程语言为 100 分,排在其后的语言以头名为标准依次递减)。主要用于数学计算的语言 R 排名来到了第五。尽管 R 语言相比其他对手专业性很高,但由于大数据的应用愈发广泛,近年来它的流行程度一直在提高。
在前 10 名中,由 MathWorks 开发并用于数值计算的专用语言 Matlab 的出现着实有些出乎预料,但这简单明了地反映了编程语言在硬件工程中的突出地位——特别是那些对通过 MathWorks 的图形化 Simulink 软件包运行模拟或创建控制系统的人而言。
在第 10 名以下,还有一些值得一提的语言,其中包括在 11 位的 Arduino 和第 12 位的 HTML/CSS。在此前的统计中,部分人认为它们不应出现在榜单之中:因为不存在这样的语言,而「Arduino」实际上是某种语言运行的一系列硬件平台的名称,而这种语言应该被称为 Wiring(有时它们也被归类为 C 语言或 C++的一种)。IEEE 表示,在这方面我们应当以简单的实用主义为导向:当面对编程问题时,绝大多数 Arduino 的开发者使用诸如「Arduino Code for ......」之类的关键词来进行谷歌搜索——而不是使用其他的方法。通过选择更为常用的名字,IEEE 让统计的准确性有所提高,避免了 Arduino 和类似的微控制器上很多内容未被统计的情况。
在 HTML 上,反对意见仍然是:它不是真正的语言,因为它没有分支或者循环结构。但因为 HTML 和 CSS 在开发者中的流行程度,以及它已经占据了数以十亿计的计算机,任何关于图灵完整性的学术论点都不是最重要的,标记语言仍然是一种语言。
最后,一些较为古老的语言仍然处于活跃状态。如已经有 60 多年历史的 Fortran 仍然排在了第 38 名,这可能是因为原始科学计算语言仍然具有巨大的传统力量。Fortran 语言仍在发展,最新的 Fortran 标准是在 2018 年末推出的,其中包括和 C 语言互操作性的改进以及对于大规模并行化计算的支持优化。
原文链接:
https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019