IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜。

据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow、Twitter、Reddit、IEEE Xplore、GitHub、CareerBuilder 等,对 48 种语言进行排行。

与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果。考虑到典型的 Spectrum 读者需求,他们提供了几个预设的权重 —— 如新兴的语言、雇主需求的语言、开源的热门语言等。大家可以定义自己的排行榜:http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017

读者可以自行调整权重

跟据 Spectrum 读者的需求,IEEE Spectrum 给出的编程语言排行榜如下:

Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名。但排在前四名的语言 Python、C、Java 和 C++都拥有广大的用户群体,并且他们的用户总量也十分相近。实际上,Diakopoulos 在对公司招聘所要求的基本语言分析中,C 语言的需求甚至还要在 Python 之前。

C# 已经重新进入前五名,它重新夺回了去年被 R 语言抢夺的位置。Ruby 已经下跌到 12 位,因此苹果的 Swift 才有机会和谷歌的 Go 语言一同进入前十大语言。这一点十分令人惊奇,因为 Swift 语言早两年才首次登入该排行榜,当然它是在前十以外的,相对于 Swift 的上升,苹果的 Objective-C 跌到了第 26 名。

然而今年是第二年没有新语言进入排名,我们似乎已经开始进入巩固代码的阶段,开发者同样需要时间消化那些为云服务、移动端和大数据应用等创造的新工具。

而谈到稳定的编程语言,Fortran 仍然出现在排名的中间位置(第 28 位),Lisp 和 Cobol 分别仍然保持在第 35 位和第 40 位。这说明即使有些语言已经非常古老,但它们仍然维持一个稳定的用户群体。

如果我们从语言用户增速来看,Python 仍然是最快的。接下来就是 C、C++和 Java,但我们看到 Swift 增速排到了第五名。Swift 是苹果发布的最新语言,它可以开发 iOS 和 OS X 软件。该语言和已存在 Objective-C 代码相匹配,并且近年来也已经开源来吸引开发者。

开源语言的排行榜

如下我们可以看到 HTML 排名从第 11 上升到第 8 已经进入和前10大开源语言,因此这里我们再一次反对「HTML 只是一种标记语言,它不是编程语言」这一言论。因为 HTML 是开发者用于给计算机指令而完成一些任务的语言,所以我们还是将 HTML 作为一种编程语言。并且当 HTML 和 CSS 结合时,它们可以完成非常复杂的任务,所以我们有必要将它纳入其中。

用人单位更需要什么语言的工程师?

在下图中,我们可以看到 Java 和 C 是招聘上最受欢迎语言,它们甚至都超过了 Python。这可能是因为 Java 能应用于多平台,并且在企业级网页应用和移动端应用开发中占据了极其重要的地位,同时各种互联网公司的产品都需要使用 Java 来实现。

下面的排名是按照设计自由度排列的,我们可以对这些语言进行定制化的程度越高,排名越靠前。

▼ 直接点击,测试开发社区

▼ 直接点击,查看每日趣闻

每日更新,更多好看

公司更需要会哪种语言的工程师?​IEEE Spectrum榜单发布的更多相关文章

  1. 2017年度最具商业价值人工智能公司TOP50 榜单发布

    2017年度最具商业价值人工智能公司TOP50 榜单发布 未来最有赚钱潜力的50个人工智能项目都在这里了. 经过了60年的发展,人工智能在2017年,正式走向应用的元年. 从今年起,人工智能首次被写入 ...

  2. 2017中国人工智能公司榜单发布,颠覆AT的AI独角兽全在这

    每年12月,创业邦研究中心评选并报道“中国创新成长企业100强”,这个榜单我们已经连续做了8年,是中国最有潜力的创业新贵榜,受到了业内广泛认可.从2015年开始我们发现,人工智能上榜企业明显增多,20 ...

  3. 让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由WeTest质量开放平台团队发表于云+社区专栏 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样 ...

  4. TypeScript和JavaScript哪种语言更先进

    TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...

  5. 尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言

    “尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言”. 无论C++还是Java 都属于杂合语言.但在 Java 中,设计者觉得这种杂合并不象在 C++里那么重要.杂合语言 允许采用 ...

  6. 机器学习的5种语言(选自info world)

    摘要:机器学习目前炙手可热,本文搜集了Java.Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备和机器学习打交道的数据科学家们不能错过了 [编者按] 机器 ...

  7. [转自老马的文章]用MODI OCR 21种语言

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2007.12.08更新:2012.07.09按照<MODI中的OCR模块>一文相关内容进行修订2012.07.0 ...

  8. 用MODI OCR 21种语言

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2007.12.08更新:2012.07.09按照<MODI中的OCR模块>一文相关内容进行修订2012.07.0 ...

  9. 30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类

    30个深度学习库:按Python.C++.Java.JavaScript.R等10种语言分类 包括 Python.C++.Java.JavaScript.R.Haskell等在内的一系列编程语言的深度 ...

随机推荐

  1. Spring AOP中使用args表达式访问目标方法的参数

    Spring AOP 的使用过程理解 首先,aop的使用场景介绍: 1.处理一些通用的非功能性的需求,不影响业务流程,比如说打印日志.性能统计.推送消息等: 2.aop无法拦截static.final ...

  2. JavaScript面试题(珍爱生命,远离面试)

    1.使用 typeof bar === "object" 判断 bar 是不是一个对象有神马潜在的弊端?如何避免这种弊端? 使用 typeof 的弊端是显而易见的(这种弊端同使用 ...

  3. selenium自学记录2014.12.26

    现在还是有点病急乱投医的感觉,不知道到底该从何学起,到底怎么学 手头上有的资料是 <零成本实现Web自动化测试-基于Selenium和Bromine> <Selenium测试实践-基 ...

  4. Hardy-Weinberg laws

    I.3 Diploids with two alleles: Hardy-Weinberg laws 假设子代是Aa,AA,aa的概率分别是PAa,PAA,Paa,A的基因概率是P1,a的基因概率是P ...

  5. Opencv笔记(十一)——图像模糊(平滑)

    学习目标: 使用自定义的滤波器对图像进行卷积(2D 卷积) 学习使用不同的低通滤波器对图像进行模糊 一.2D卷积 卷积不是很了解的可以看我上一篇博客,与语音信号一样,我们也可以对 2D 图像实施低通滤 ...

  6. Tokyocabinet/Tokyotyrant文档大合集

    1. 前言 这里不是我个人原创,是我对网络上整理到的资料的再加工,以更成体系,更方便研究阅读.主要是对其中跟主题无关的文字删除,部分人称稍做修改;本人无版权,您可以将本页面视为对参考页面的镜像.第二部 ...

  7. Maven配置阿里云问题

    现在我们经常会与Maven打交道,无论是工作还是自己的练笔,因为它真的是太强大了.它可以帮助我们管理版本,jar包等等. 但是由于国内的环境问题,我们需要有一个仓库,有些公司会自己搭建私服,那对个人来 ...

  8. SpringBoot1.X /2.X使用@Component注解注入为java.lang.NullPointException 问题小结

    问题简述: 我们在使用Spring系的产品的时候总是想当然的以为所有指定的Bean都会让Spring来管理,其实不然,即使是Spring出品的产品也不全是的哦,以下是我遇到的一个使用@Componen ...

  9. Ubuntu虚拟环境的搭建

    转载:https://blog.csdn.net/weixin_43078957/article/details/86006240 虚拟环境的搭建1.pip install virtualenv这个要 ...

  10. 1)session总结

    (1)session的由来: HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众 ...