甲:听说最近java跌落神坛,python称霸武林了,你知道吗?

乙:不是吧,我前几天看python怎么还是第三?

丙:你们都在扯蛋,python在2018年就已经是最好的语言了!

乙:不可能吧?

甲:赌什么?
……

作为茶余饭后谈资,语言排名这是我们程序员必备的一个话题,可是因为大家获取的信息不一致就出现上面的尬聊,甚至因为这个话题而争执不休。

归根结底还是因为大家看的语言排行榜不同,而产生了不同的结论,今天猪哥就来带大家盘点,到底有哪些语言排行榜!

一、TIOBE

TIOBE 编程社区索引由荷兰 Eindhoven 的 TIOBE 公司创立和维护。TIOBE 代表着“真诚的重要性”,该索引将每项语言作为关键字,按照搜索引擎的查询数量对语言进行排名。索引每月更新一次。评级基于全球技术工程师,课程和第三方供应商的数量。流行的搜索引擎,如谷歌,必应,雅虎,维基百科,亚马逊,YouTube和百度,用于计算评级。值得注意的是,TIOBE索引与最佳编程语言或编写大多数代码行的语言无关。

简单来说就是根据搜索语言名称的次数来统计排行榜的,一个月更新一次榜单,那具体参考哪些搜索要引擎呢?

TIOBE(读:踢欧比)可以说是最重要也是比较准确的一个排行榜,有两个重要的排名榜要给大家介绍一下:

1.指数榜

就是TIOBE最主要也是编程行业中最重要的一个排名榜,它衡量目前各个语言的热度,下面是2019年3月的指数榜单以及指数曲线

2.年度语言榜

列出所有“年度最佳编程语言”奖获奖者的名人堂如下所示。该奖项授予一年内收视率上升最高的编程语言,2018年Python指数提升最大,所以当选2018年度语言。

数据涞源TIOBE官网:https://www.tiobe.com/tiobe-index/

二、PYPL

编程语言流行指数(PopularitY of Programming Language Index 简称PYPL)是通过分析在Google上搜索语言教程的频率而创建的,搜索语言教程越多,该语言就越受欢迎。这是一个领先的指标,原始数据来自Google。

TIOBE编程语言榜单是一种综合计算形式,数据来源于谷歌、必应、雅虎、维基百科、亚马逊、YouTube 和百度。而PYPL 指数的计算形式则是完全更为直接和精准。只基于 Google trends 数据。根据编程语言在 Google 上的搜索频率,来评估语言的流行度。各语言的趋势高下立判!

既然PYPL数据只来自Google,所以我觉得很难代表国内的一个流行趋势,更多的是一种国际性全球性的语言流行趋势,下面是2019年4月编程语言流行的排行榜。


数据涞源PYPL官网:http://pypl.github.io/PYPL.html

三、GitHub

GitHub是全球最大的开源软件开发与管理社区,包括Google、Facebook等众多技术巨头在内都在这里安营扎寨,GitHub也成为了一探硅谷技术趋势最好的窗口,这个20亿美元的创业公司被开发者戏称为“全球最大同性交友社区(拥有三千万开发者)”,每年GitHub都会推出“Octoverse”报告,其中列出了一些趋势,包括其网站用户中最受欢迎的编程语言。

GitHub的“Octoverse”报告有很多有趣的数据,以下数据涞源2018年度报告:

  1. 开发者数量超过3100万
  2. 企业账号超过210万
  3. 存储库数量超过 9600万
  4. Pull Request 数量超过2亿
  5. 各国开发者排行,美国、中国、加拿大分列前三
  6. 在中国,春节期间代码提交较少


以上数据涞源GitHub的“Octoverse”报告:https://octoverse.github.com/

四、StackOverflow

著名的栈溢出网站(StackOverflow)是一个问答平台。它有超过400万的用户,问答了1000多万个问题。

Stack OverFlow年度调查结果榜:每年Stack OverFlow都会让开发者参与一项调查;2018年1月,有超过10万开发者参加了长达30分钟的问卷调查。调查设计程序开发的各个方面。这个调查中有很多有趣的问答:今年,我们讨论了一些新的主题,从人工智能到编码伦理。以下是今年结果中的一些最重要的内容:

  1. DevOps和机器学习是当今软件行业的重要趋势
  2. 只有很小一部分开发人员说他们会编写不道德的代码
  3. 开发人员对人工智能提供的可能性总体上持乐观态度,但对人工智能的危险性并不一致。
  4. 在我们的调查中,Python已经在编程语言的行列中崛起,今年超越了C#,就像它去年超过PHP一样。
  5. 在评估预期工作时,不同类型的开发人员应用不同的优先级。女性表示,她们的首要任务是公司文化和职业发展机会,而男性则表示,他们的首要任务是薪酬和使用特定技术。

我看到还有一项有趣的调查令我我很意外:最爱的框架、包 或者工具的第一竟然是TensorFlow(看来猪哥后面也要出一些TensorFlow的教程了:)

以上数据涞源Stack OverFlow年度调查报告 :https://insights.stackoverflow.com/survey

五、IEEE Spectrum

IEEE Spectrum 对 48 种语言进行排行,其排序综合 9 个重要线上数据源的 11 个指标而成(今年去掉了 Dice,因为其关闭了 API),例如 Stack Overflow、Twitter、Reddit、IEEE Xplore、GitHub、CareerBuilder 等。IEEE Spectrum与其它排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果。考虑到不同 Spectrum 读者的需求,他们提供了几个预设的权重 —— 如新兴的语言、雇主需求的语言、开源的热门语言等。

今年的榜单中 Python 卫冕成功,并且与第 2 名的距离拉得更远了一些,如今人工智能、大数据等重数据领域的浪潮未息,预估 Python 还会继续火下去。

IEEE Spectrum 2018 编程语言 Top 10 如下:

再看看就业市场对编程语言的需求,前 10 名如下图所示:

以上数据涞源IEEE Spectrum官网 :https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018

总结

这里猪哥只给大家列举了这五个重要的编程排行指标,其重要性根据顺序依次下降。从这几个排行指标我们可以发现Python已然成为了最流行的语言,但是根据TIOBE和咱们在实际求职中就能感受到目前称霸的仍然是Java。

我们在选择一门编程语言的时候,需要考虑的不仅仅是当前就业需求,还应该考虑到就业竞争和行业前景,可以说现在Java工程师的竞争比Python工程师的竞争要激烈太多了,而且从事Java的开发也非常多,受供求关系影响Java程序员将来会越来越贬值,而反观python开发目前国内起步晚竞争力小,而且政府也在大力支持发展人工智能,Python的路还很长。

《新一代人工智能发展规划》是为抢抓人工智能发展的重大战略机遇,构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国,按照党中央、国务院部署要求制定。由国务院于2017年7月8日印发并实施。 ——百度百科

最后不得不聊的就是最近大火的go语言,我们简单看看go适合做什么:

Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,主要用作服务器编程、web开发、网络编程云平台等

我们可以看到go语言优势其实和java的优势很像,而python的优势在于数据处理和人工智能等方向,所以go只可能吞噬Java的份额,很难撼动Python的奶酪,所以将来会是Python、Java、Golang三足鼎立的局面吗?

将来会是Python、Java、Golang三足鼎立的局面吗?的更多相关文章

  1. GetNumber的实现(Python & Java & Golang)

    TCO2014的编程赢取门票的题目,大致是从一个数组(大小为K),可以选取1-K个数,必须保证这n个数是从1-n,返回所有的选取方法个数. 思路:首先是得到从1开始连续的数,保存每个数的个数.然后通过 ...

  2. Python与Golang协程异同

    背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定 ...

  3. paip.判断字符是否中文与以及判读是否是汉字uapi python java php

    paip.判断字符是否中文与以及判读是否是汉字uapi python java php   ##判断中文的原理 注意: 中文与汉字CJKV 的区别..日本,韩国,新加坡,古越南等国家也用汉字,但不是中 ...

  4. paip.截取字符串byLastDot方法总结uapi python java php c# 总结

    paip.截取字符串byLastDot方法总结uapi python java php c# 总结 ========uapi   left_byLastDot   right_byLastDot 目前 ...

  5. paip.文件目录操作uAPI php python java对照

    paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...

  6. 第一章.java&golang的区别之:闭包

    对于golang一直存有觊觎之心,但一直苦于没有下定决心去学习研究,最近开始接触golang.就我个人来说,学习golang的原动力是因为想要站在java语言之外来审视java和其它语言的区别,再就是 ...

  7. vim python和golang开发环境配置

    首先在-下新建目录.vim和配置文件.vimrc,.vimrc内容如下: syntax on set nocompatible filetype off set rtp+=~/.vim/bundle/ ...

  8. 深入浅出爬虫之道: Python、Golang与GraphQuery的对比

    深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...

  9. 十大经典排序算法(Python,Java实现)

    参照:https://www.cnblogs.com/wuxinyan/p/8615127.html https://www.cnblogs.com/onepixel/articles/7674659 ...

随机推荐

  1. java基本数据类型及其包装类

    1.String类 String s1 = "hello world"; String s2 = "hello world"; String s3 = s1 + ...

  2. Vue--学习过程中遇到的坑

    在这里总结一下学习Vue遇到的易错点,持续更新 1.实例化一个Vue对象: 通过new Vue({ el:'#id', data:{ a:'字符串1', b:‘字符串2’ }) 这里的Vue必须大写V ...

  3. python笔记:#013#高级变量类型

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  4. 安装Redis 编译make gcc: error trying to exec 'cc1': execvp: 没有该文件或目录的错误

    Linux(Redhat) make: gcc: error trying to exec 'cc1': execvp: 没有该文件或目录的错误 排查错误: 1.检查gcc.gcc-c++是否安装rp ...

  5. Python3实现ICMP远控后门(上)_补充篇

    ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...

  6. Maven分模块以及打war包

    我们如何进行模块化开发呢? 我们使用上面的例子进行演示,先进行合理的优化,我们希望dao和service作为通用的底层工具来使用,把它们合并成一个核心模块(core),build成core.jar,简 ...

  7. WinForm

    参考文章:http://blog.csdn.net/clb929/article/list/7 用三层架构来做winform程序: http://blog.csdn.net/clb929/articl ...

  8. 【转】javascript 浮点数运算问题

    大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,来看一个例子 alert(45.6*13); 结果居然是592.800000000001,当然加法之类的也会有这个问题 那这是j ...

  9. java中new关键字和newInstance()方法的区别

    1> new是一个关键字,可以说是一个指令: newInstance()是一个方法,Class对象的一个方法. 2> new主要作用是在内存中生成一个实例,而这个类可以没有提前加载到内从中 ...

  10. js万年历,麻雀虽小五脏俱全,由原生js编写

    对于前端来说,我们可能见到最多的就是各种各样的框架,各种各样的插件了,有各种各样的功能,比如轮播啊,日历啊,给我们提供了很大的方便,但是呢?我们在用别人这些写好的插件,框架的时候,有没有试着问一问自己 ...