欢迎来到 IEEE Spectrum 第六届顶级编程语言年度互动排名。今年,我们进行了重大改革,改变了一些基础指标并构建了新的简化界面。但我们的基本思想和方法仍然相同:将来自多个来源的数据结合起来,对于您感兴趣的编码类型的编程语言的流行程度进行排名。
我们采用这种方法来解决所有确定编程语言普及程度的两个基本障碍:(1)当他们敲击键盘时,没有人能真正看到世界上每个编码器的肩膀,(2)一种语言是一个编程领域的基石,在另一个编程领域可能完全无关紧要。 Spectrum从8个来源获取11个指标的数据,我们认为这些指标是受欢迎程度的良好代理,我们将结果组合在一个应用程序中,该应用程序允许您过滤语言并调整给予每个指标的权重。结果是适合您的排名。 (作为我们改革的一部分,我们已经去掉了前几年我们使用的两个指标,因为我们认为它们不再产生高质量的数据,包含来自 [IEEE 招聘网站](https://jobs.ieee.org/)的数据,并在列表中添加了一些新语言,比如 [Dart](https://dart.dev/)。)
当然,我们还内置了一些预设的权重,这些权重是针对求职者而优化的,例如,或者有兴趣进入开源项目的人。我们的默认权重针对典型的频谱阅读器进行了优化,让我们来看看它所显示的 2019 年的十大语言。
![IEEE-top-programming-languages-of-2019.jpeg](https://static.studygolang.com/190914/5a805c7139774dbe80b1481a67250eb4.jpeg)
虽然我们的基本指标的变化意味着我们在直接将今年的排名与去年的排名进行比较时必须小心,但结果的总体轮廓仍然相似,而 Python 则始终处于领先地位。[Python](https://www.python.org/) 的受欢迎程度在很大程度上受到大量可用的专用库的驱动,特别是在人工智能领域,[Keras](https://keras.io/) 库是深度学习开发人员中的重量级人物:Keras 为 [TensorFlow](https://www.tensorflow.org/) ,[CNTK](https://docs.microsoft.com/en-us/cognitive-toolkit/) 和 [Theano](http://www.deeplearning.net/software/theano/) 之类的深度学习框架和工具包提供了接口。深度学习并不是 Python 在 1991 年首次发布语言时无法预料到的唯一领域。[微控制器](https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-enough-for-an-arduino)中计算能力的急剧增长意味着嵌入式 Python 版本,如 [CircuitPython](https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-python-into-microcontrollers) 和 [MicroPython](https://micropython.org/) ,正在越来越受制造商欢迎。
接下来是 [Java](https://www.java.com/en/),[C](http://www.open-std.org/jtc1/sc22/wg14/) 和 [C++](https://isocpp.org/),这三门语言长期互相争斗,但一直 Python 是头把交椅,尽管通过我们调整后的指标,这些竞争者之间的排名差距已经扩大,C ++ 的得分比 Python 少了 12.5 分。 (在任何给定的排名中,排名最高的语言被分配为 100 分,并且排名较低的语言的分数被等比例缩放。)数字运算语言 R 排在前五位。尽管它是一种比其他语言更专业的语言,但由于世界充斥着越来越多的大数据,它近年来一直保持着它的流行程度。
进入前 10 名的 [Matlab](https://www.mathworks.com/products/matlab.html)(由 MathWorks 开发并用于数值计算的专有语言)的存在对某些人来说可能是一个惊奇,但它只是反映了该语言在硬件工程中的突出地位,特别是那些对运行模拟感兴趣的人或通过 MathWorks 的图形化 Simulink 软件包创建控制系统。
在前 10 名之下,一些值得注意的语言包括 11 名的 [Arduino](https://www.arduino.cc/reference/en/) 和 12 名的 [HTML/CSS](https://html.spec.whatwg.org/multipage/)。在过去几年中,一些读者抱怨说它们都不应出现在编程语言列表中。对于 Arduino,争论的是没有这样的语言,“Arduino” 实际上是语言运行的硬件平台系列的名称,并且这种语言应该被称为 Wiring(或者有时候是 C 或 C ++)由于历史原因)。在这方面,我们以简单的实用主义为导向:当面对编程问题时,绝大多数 Arduino 开发人员使用诸如 “Arduino Code for …” 之类的术语来搜索 Google,而不是任何替代方案。通过选择事实上的名称,我们避免大大减少为 Arduino 和类似微控制器编写的程序的流行度。
当涉及 HTML 时,实用主义也是游戏的名称,这里的反对意见是它不是真正的编程语言,因为它没有分支或循环结构。但鉴于 HTML 和 CSS 在开发人员中的广泛流行,以及他们习惯于指导数十亿台计算机每天做事,我们觉得任何关于图灵完整性的学术论点都是不重要的。标记语言仍然是一种语言。
最后,一些较老的语言仍然活着并且在踢。 特别是,尽管已有 60 多年的历史,Fortran 仍然排在第 38 位,可能是由于原始科学计算语言具有巨大的传统力量。 该语言仍在积极开发中,最新的 Fortran 标准于2018年底发布,其中包含与 C 的改进的互操作性以及对大规模并行计算的更好支持。
## 去年的排行榜
![93681ccbc8ff371a9ddc9094ac9fc1a23b6.jpg](https://static.studygolang.com/190914/1164e49370351df2c9ac92696039eac7.jpg)
去年还在第 6 为的 PHP,今年已经不在 Top 10 中了。这对 PHP 来说却是不是好兆头。
------
本文由 Go 语言中文网 根据英文 https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019 编译,对原文有增减。
有疑问加站长微信联系(非本文作者)