将来会是Python、Java、Golang三足鼎立的局面吗?
甲:听说最近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年度报告:
- 开发者数量超过3100万
- 企业账号超过210万
- 存储库数量超过 9600万
- Pull Request 数量超过2亿
- 各国开发者排行,美国、中国、加拿大分列前三
- 在中国,春节期间代码提交较少

以上数据涞源GitHub的“Octoverse”报告:https://octoverse.github.com/
四、StackOverflow
著名的栈溢出网站(StackOverflow)是一个问答平台。它有超过400万的用户,问答了1000多万个问题。
Stack OverFlow年度调查结果榜:每年Stack OverFlow都会让开发者参与一项调查;2018年1月,有超过10万开发者参加了长达30分钟的问卷调查。调查设计程序开发的各个方面。这个调查中有很多有趣的问答:今年,我们讨论了一些新的主题,从人工智能到编码伦理。以下是今年结果中的一些最重要的内容:
- DevOps和机器学习是当今软件行业的重要趋势
- 只有很小一部分开发人员说他们会编写不道德的代码
- 开发人员对人工智能提供的可能性总体上持乐观态度,但对人工智能的危险性并不一致。
- 在我们的调查中,Python已经在编程语言的行列中崛起,今年超越了C#,就像它去年超过PHP一样。
- 在评估预期工作时,不同类型的开发人员应用不同的优先级。女性表示,她们的首要任务是公司文化和职业发展机会,而男性则表示,他们的首要任务是薪酬和使用特定技术。
我看到还有一项有趣的调查令我我很意外:最爱的框架、包 或者工具的第一竟然是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三足鼎立的局面吗?的更多相关文章
- GetNumber的实现(Python & Java & Golang)
TCO2014的编程赢取门票的题目,大致是从一个数组(大小为K),可以选取1-K个数,必须保证这n个数是从1-n,返回所有的选取方法个数. 思路:首先是得到从1开始连续的数,保存每个数的个数.然后通过 ...
- Python与Golang协程异同
背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定 ...
- paip.判断字符是否中文与以及判读是否是汉字uapi python java php
paip.判断字符是否中文与以及判读是否是汉字uapi python java php ##判断中文的原理 注意: 中文与汉字CJKV 的区别..日本,韩国,新加坡,古越南等国家也用汉字,但不是中 ...
- paip.截取字符串byLastDot方法总结uapi python java php c# 总结
paip.截取字符串byLastDot方法总结uapi python java php c# 总结 ========uapi left_byLastDot right_byLastDot 目前 ...
- paip.文件目录操作uAPI php python java对照
paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...
- 第一章.java&golang的区别之:闭包
对于golang一直存有觊觎之心,但一直苦于没有下定决心去学习研究,最近开始接触golang.就我个人来说,学习golang的原动力是因为想要站在java语言之外来审视java和其它语言的区别,再就是 ...
- vim python和golang开发环境配置
首先在-下新建目录.vim和配置文件.vimrc,.vimrc内容如下: syntax on set nocompatible filetype off set rtp+=~/.vim/bundle/ ...
- 深入浅出爬虫之道: Python、Golang与GraphQuery的对比
深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...
- 十大经典排序算法(Python,Java实现)
参照:https://www.cnblogs.com/wuxinyan/p/8615127.html https://www.cnblogs.com/onepixel/articles/7674659 ...
随机推荐
- 部署SSIS包完成远程数据更新
** 温馨提示:如需转载本文,请注明内容出处.** 本文连接:http://www.cnblogs.com/grom/p/9018978.html 笔者需要定期从服务器更新N家客户的远程服务器数据,上 ...
- Beta 冲刺day2
1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:昨天主要是在确认需求方面花了一些时间,后来终于确认了企业自查风险模块的需求问题 今天解决的进度:根据昨天确认下来的需求,我们基本上完成了 ...
- lintcode 在O(1)时间复杂度删除链表节点
题目要求 给定一个单链表中的一个等待被删除的节点(非表头或表尾).请在在O(1)时间复杂度删除该链表节点. 样例 Linked list is 1->2->3->4, and giv ...
- 创建servlet的三种方式
第一种方式,实现Servlet接口 package com.example.servlet; import java.io.IOException; import javax.servlet.Serv ...
- python_函数默认参数设计
>>> def printMax(a,b): if a>b: print(a,'is the max') else: print(b,'is hte max') >> ...
- Hadoop是一种开源的适合大数据的分布式存储和处理的平台
"Hadoop能做什么?" ,概括如下: 1)搜索引擎:这也正是Doug Cutting设计Hadoop的初衷,为了针对大规模的网页快速建立索引: 2)大数据存储:利用Hadoop ...
- RabbitMQ入门:认识并安装RabbitMQ(以Windows系统为例)
最近在学习Spring Cloud,其中消息总线Spring Cloud Bus是必不可少的,但是Spring Cloud Bus目前只支持RabbitMQ和kafka,因此学习RabbitMQ势在必 ...
- nginx cache的玩法
一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在 ...
- difference between collection and association mapping in mybatis 3
Mybatis处理“一对多”的关系时,需要用到associasion元素.处理”多对一“用collection元素来实现(这两个元素在之前mapper文件中提到过). 本例子中,假设一名User可以有 ...
- 一次故障解决过程梳理:mysql varchar text timestamp
CHAR 类型的一个变体是 VARCHAR 类型,char(M),M是指字节长度,和varchar(M)一样 故障原因:mysql主键设置为int(9),但数据量已经大于int(9)的范围了 tips ...