2019编程语言排行榜出炉:在趋势、开源与职位需求上,Python都排第一

IEEE Spectrum 刚刚发布了第六届编程语言排行榜。在新的排名方式下,Python 再次名列第一,并且与第二名的差距正在加大。名列后几位的分别是 Java、C 语言、C++和 R 语言。git

做者 | Stephen Cass
编译 | 机器之心

这是 IEEE Spectrum 的第六次年度编程语言排行统计。今年的统计进行了重大改革,一些基础指标进行了重构,而最终的排行榜也进一步获得了简化。但其基本理念让仍然相同:将多个数据源的编程语言流行度排名结合起来,得出目前业内人们关注度最高的语言。程序员

这些信息来源包括谷歌搜索、谷歌趋势、推特、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder、IEEE Job Site 和 IEEE Xplore Digital Library。编程

对于编程语言的统计而言,人们总会面临两个主要问题:(1)理论上没有人能够审查全部程序员正在敲的代码属于哪一种语言;(2)有些时候,一种语言是另外一种的基础,有的时候两种语言所使用的领域彻底没有相关性。IEEE 的榜单致力于解决这些问题,呈现出最为准确的编程语言流行程度排行。统计者们从 8 种信息渠道获取数据,并设定了 11 种排名方式——这些指标是过滤语言排名的最优方式——而后将全部结果以不一样权重结合起来,得到了最终的排名。固然,若是你对于权重有异议,也能够在 IEEE 的可交互页面上设置本身想要的权重:小程序

在 IEEE Spectrum 网站上,你能够根据本身的需求设定权重,得到不一样的编程语言排名。框架

在 IEEE 的默认设置之下,对找工做有利的排行方式得到了更高的权重。虽然标准的变化让今年的统计结果和往年有所不一样,不过总体看来趋势仍是同样的:Python 在全部分项目中都名列榜首。Python 如此受到人们欢迎很大程度上是由于存在大量专用的工具库做为支持,尤为是在人工智能(AI)领域。Keras 是每一个进入人工智能、特别是深度学习领域的开发者所熟知的库:它提供了 TensorFlow、CNTK 和 Theano 深度学习框架的友好界面和工具包。固然,深度学习也不是 Python 的惟一应用方向,并且在 1991 年首次推出时也预料不到会对深度学习产生影响。随着微控制器上算力的急剧增加,CircuitPython 和 MicroPython 等嵌入式 Python 版本愈来愈受到制造商们的欢迎。编程语言

排在 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 语言互操做性的改进以及对于大规模并行化计算的支持优化。


搜索·进入小程序,解锁更多精彩资讯和专业内容!

相关文章
相关标签/搜索