IEEE Spectrum 2022 年度编程语言排行榜现已发布。该榜单一年发布一次,今年是第九年。此次的榜单改进和简化了交互式排名工具,并在内部进行了其他改动;但总体仍是结合来自不同来源的多个指标,来估计不同语言的相对流行度。
Python 仍然位居榜首,紧随其后的是 C 语言。但公告指出,事实上 C 和类似 C 的大型语言(C++和 C# )的综合流行度在一定程度上已超过了 Python。Java 和 Javascript 也依然备受欢迎,后者则主要是受到网站和浏览器内工具日益复杂的推动。
与此同时,SQL 的受欢迎程度正不断上升,其在榜单的 Jobs ranking 中已位列第一(该排名仅关注 IEEEJob Site 和 CareerBuilder 的指标)。在调研过程中查阅了大量的 job listings 后,研究人员认为,SQL 的热门并不是因为很多雇主只需要 SQL coders,而是他们想要应聘者可以在掌握一种特定的语言同时再掌握 SQL。
“而他们中的很多人都希望加上 SQL ......它可能不是最迷人的语言,也不是你将用来实现下一个伟大算法的语言,但拥有一些 SQL 经验可以为你提供更多可选择的宝贵机会。”
Job listings 并不是 IEEE Spectrum 榜单关注的唯一指标,其一共关注九个指标,资源包括有 GitHub、谷歌、Stack Overflow、Twitter 和 IEEE Xplore。原始数据根据所提供的不同排名进行标准化和加权,例如,Spectrum 的默认排名在很大程度上偏重于 IEEE members 的兴趣,而 Trending 则更重视论坛和社交媒体的指标。相关的资料来源完整清单可在这里查看。
此前,IEEE Spectrum 曾提供了可以让读者自己选择参数组合时的权重,得到不同的排序结果的选项。但事实上,该功能的利用率并不高;目前他们已经取消了这个功能,从而使得能够预先计算预设排名,而不是提供一个包含所有指标数据的应用程序,然后在浏览器中即时计算出排名。
值得一提的是,搞此类的排行榜经常会遇到很多争议性问题;其中就包括编程语言的划分,譬如 HTML/CSS 就是一个很有争议性的选项。但 IEEE Spectrum 方面认为,通常来说 HTML/CSS 确实是一种编程语言;因为其源代码中的 tags 主要是为了执行诸如“present this text in a table format”或“make this heading larger than the body text”。
还有一个问题是如何决定一种语言的超集或子集已经变得足够独特,从而可以单独列出来考虑?对此,IEEE Spectrum 则主要以实用主义为考量。
“你可以争辩说 Arduino 微控制器是用 Java(或 C++)的子集编程的,但如果有人在编写 Arduino 项目时寻求帮助,给他们一本关于 Java 的书的用处有限。另一方面,有很多书籍的标题类似于《Writing Arduino Programs Made EZ》,因此 Arduino 语言被单独列出。另一方面,将 MicroPython 和 CircuitPython 放在 Python box 中似乎没有多大意义,至少目前是这样。分类不断发展。例如,之前我们将 Typescript 与 JavaScript 组合在一起,但采用率已经增长到足以将其拆分出来更有意义。”
完整排行信息可以查看 IEEE Spectrum 官网。