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. PHPCMS 第一节 新增菜单

    一.如何新增菜单 对于新手来说,一开始都有很多疑问,今天我们来开始慢慢分析,就先从这个菜单开始,如何新新增一个我下图框出来的这些呢? 操作如下图 接着就按打开的那个新增页面的提示信息填资料 模块名:就 ...

  2. AI精灵

    由于使用的CRM系统是Aras Innovator系统,所有的任务分配必须登入系统查看,故做出以下自动接受任务信息的小工具. 1.登入,实现自动记录上次登入的信息,支持多账户   登入成功后会以图标运 ...

  3. Python list 字符串 注册 登录

    #list #列表 python中 数组.array等都用列表 list表示#创建一个liststu = ['xiaoming','xiaoli','xiaohuang','alex','lily', ...

  4. 对《The future of ReactiveCocoa》的一些思考

    前言 我以为 第一次接触 swift 语言时,看到函数的表示形式如下: func fun(num: Int) -> Int { return num + 1 } let f = fun(1) 和 ...

  5. IdentityServer4之Token令牌获取流程分析

    1.asp.net core 是基于管道模式IdentityServer会在注册一个管道处理程序 IdentityServerMiddleware 类专门处理登录验证的逻辑,本次主要讲的是access ...

  6. mysql琐碎操作杂记

    1.索引相关 查看表索引 show index from `user` 查看sql的执行计划 explain select * from where user 2.存储过程相关 查看存储过程 show ...

  7. FastJson禁用循环引用检测

    我们先来看一个例子: package com.elong.bms; import java.io.OutputStream; import java.util.HashMap; import java ...

  8. git命令简单使用

    git config --global user.name 'sss' git config --global user.email 'huahua@163.com' cd d:/mywork git ...

  9. 现有.NET 开源框架浅析

    自己一直在关注框架,也喜欢捣鼓一些框架,最近我们自己一直是在用OSGI.NET 做插件式模块开发,感兴趣的可以到 http://www.iopenworks.com/   官网了解,在进行OSGI.N ...

  10. centos telnet

    yum install telnet yum install telnet-server