甲: 听说最近 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/
四, Stack Overflow
著名的栈溢出网站 (Stack Overflow) 是一个问答平台. 它有超过 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 三足鼎立的局面吗?
来源: http://developer.51cto.com/art/201903/594255.htm