风云编程python-动态排名可视化 | 带你领略编程语言20年风云变化
原标题:动态排名可视化 | 带你领略编程语言20年风云变化
作者 | 周萝卜
来源 | 萝卜大杂烩
2019已经过去,回看编程语言20年真是风云变化!
从 TIOBE 榜(热门榜)上来看,Java、C 和 Python 基本锁定了前三的位置,Java 江湖老大的地位,目前还是无人能撼动呢。
下面先来一张 TIOBE 网站的走势图,镇楼(这是个暴露年龄的词语)!
编程语言霸榜 动态排名
数据可视化
数据获取
数据获取的部分,与上一篇 DB 篇很类似,都是解析 Java 代码里的变量,抽出数据即可
defget_pl_data(name):
name_lower = [i.lower fori inname]
fori inname_lower:
print( "Request ", i)
ifi == 'c#':
i = 'csharp'
url = 'https://www.tiobe.com/tiobe-index/'+ i
res = requests.get(url).text
content = BeautifulSoup(res, "html.parser")
js = content.find_all( '')[ 9].string
src_text = js2xml.parse(js)
src_tree = js2xml.pretty_print(src_text)
data_tree = BeautifulSoup(src_tree, 'html.parser')
array_list = data_tree.find_all( 'array')
data_list = []
forarray inarray_list[ 3:]:
array_data = array.find_all( 'number')
data_list.append({ 'date': array_data[ 0][ 'value'] + '-'+ array_data[ 1][ 'value'] + '-'+ array_data[ 2][ 'value'],
'value': array_data[ 3][ 'value']})
save_data(i, data_list)
当然这里还是提前获取了前50名编程语言的列表,直接通过 pandas 的 read_html 方法就可以方便的获取
defget_pl_list:
url = 'https://www.tiobe.com/tiobe-index/'
pl_df = pd.read_html(url)
top_20 = pl_df[ 0][ 'Programming Language'].values.tolist
bottom_30 = pl_df[ 1][ 'Programming Language'].values.tolist
returntop_20 + bottom_30
最后再保存到 csv 中
withopen( 'pl_data.csv', 'a+', encoding= 'utf-8') asf:
f.write( 'name,value,daten')
ford indata:
try:
row = '{},{},{}'.format(name,
d[ 'value'],
d[ 'date'])
f.write(row)
f.write( 'n')
except:
raise
如果不出意外的话,几分钟的时间里,我们就能够拿到近20年编程语言的风云数据啦!
整体排名
我们先来看看2019年,各大编程语言的总体排名,其实从上面镇楼曲线图中也是可以看出来的,但是不是特别的直观,我们转换成柱状图来看看
可以看出虽然这一年里 Python 大红大紫,但是根据 TIOBE 的统计来看,其搜索占有率还是远远低于 Java 和 C 的,不过其第三名的位置还是比较稳固的!
而 Java 和 C,这两位语言界的大佬,已经相爱相杀了多年了,直到如今也没有完全分出高低。
由谷歌力挺的 Go 语言,似乎有些放缓了前进的步伐,第15位,不太符合其天之骄子的身份呢。
而对于世界第一语言 PHP 来说,在这个微服务兴起,前后端分离盛行的时代,活着就是最好的!
五大语言指数
下面我们来分别看一看榜单的前五大语言的排名走势情况
Java 的2019
2019 年的 Java,有一种稳中取胜的感觉,作为生态最为庞大的语言,其强大的造新能力确保了江湖地位,要说企业里后端的第一语言,绝对非 Java 莫属!
C 的2019
2019 年的 C,还是有着不错的增长的,虽然在年末的两个月表现不佳,但是这也足以确保第二的位置了,相信这门“古老”的语言在未来仍然是不可忽视的力量!
Python 的2019
随着2018年人工智能的兴起,Python 已经大火了一把,而进入2019年,这种势头仍然没有减弱,凭借着简洁易懂学习曲线平滑等特点,Python 成为了更多人的首选语言。
C++ 的2019
C ++ 这一年的表现似乎不是太好,当然在嵌入式领域,它还是老大。同时作为 C 语言的超集,前途无限光明。
C# 的2019
C# 在这一年有着非常不错的增长,隐隐有超越 C++ 的趋势,估计这还是和微软逐渐拥抱开源息息相关吧,毕竟现在的微软已经是 GitHub 上的第一大开源组织了!
6-10名走势曲线
接下来我们看下榜单上6-10名编程语言的全年走势情况
可以看出,除了 .Net 语言下滑的较为明显之外,其他的语言包括 PHP、SQL、Swift 和 JS 等都变化不大,相互之间的位置也没有太大变化,大家相安无事!
11-20名走势曲线
首先是11-15名的曲线走势
在这份榜单中,各个语言的变化就比较大了,比如说 Objective-C 最高时能达到1.8%,如果保持住的话,都可以挤进前十了。而业界一致看好的 Go 语言呢,最高也有1.4%多,只不过在几经起落之后,最终定格在0.9%,不禁令人唏嘘!
再来看看16-20名的曲线走势
五大语言占比
最后,我们来看看榜首的五大语言占比情况吧
从图中不难看出,榜首的五大语言,基本占去了搜索比重的一半以上,如果再加上 .Net 和 Java 两大语言,基本上程序猿的世界里,就是它们了。
当然了,语言火是一回事,薪资高不高又是另一回事了,简单的抓取了拉勾上每个语言前三页岗位的薪资情况,大家来体会下
项目源码:https://github.com/zhouwei713/data_analysis/tree/master/Annual_Ceremony/Programming_language
动态排名数据可视化库:
https://github.com/Jannchie/Historical-ranking-data-visualization-based-on-d3.js
最新考研调剂信息全面获取!Python帮你一手掌握
宅家秀厨艺大翻车 | 眼睛:会了。手:不,你不会!返回搜狐,查看更多
责任编辑:
风云编程python-动态排名可视化 | 带你领略编程语言20年风云变化相关推荐
- 风云编程python-动态排名可视化——带你领略编程语言20年风云变化
作者 | 周萝卜 来源 | 萝卜大杂烩 2019已经过去,回看编程语言20年真是风云变化! 从 TIOBE 榜(热门榜)上来看,Java.C 和 Python 基本锁定了前三的位置,Java 江湖老大 ...
- python动态排名可视化_动态排名可视化 | 带你领略编程语言20年风云变化
原标题:动态排名可视化 | 带你领略编程语言20年风云变化 作者 | 周萝卜 来源 | 萝卜大杂烩 2019已经过去,回看编程语言20年真是风云变化! 从 TIOBE 榜(热门榜)上来看,Java.C ...
- python与人工智能编程-Python是人工智能和机器学习的最佳编程语言,证据在此!...
人工智能与机器学习是IT行业的新兴热门领域.虽然有关其发展安全性的讨论日益增多,但开发人员仍在不断扩展人工智能的能力与存储容量.如今,人工智能已远远地超出科幻小说中的构想,成为了现实.人工智能技术广泛 ...
- 风云编程python怎么样_二十年编程语言风云,看Python如何一步步往上爬!
作者 | 周萝卜 来源 | 萝卜大杂烩 年终岁尾了,编程语言也要决出这一年的最佳语言了,会是谁呢,从 TIOBE 上来看,Java.C 和 Python 基本锁定了前三的位置,Java 江湖老大的地位 ...
- python足球数据可视化_欧洲足球,5大联赛!Python爬虫数据可视化带你解析经典赛事...
前言: R爬虫&可视化系列文章,我们来聊聊欧洲足球五大联赛.本人作为一个不会踢球的资深球迷,俗称"懂球帝",今天就与大家用数据分析一下2017-2018赛季欧洲五大联赛的各 ...
- 风云编程python基础语法(3)
目录 九.编程学习的两大瓶颈 1.知识学完就忘 2.缺乏解题能力 练习:九九乘法表 十.函数 1.函数的定义 2.定义和调用函数 3.参数的类型 4.return语句 5.变量作用域 练 ...
- 风云编程python怎么样_二十年编程语言风云,哪款是你的爱豆?
简介:2020了,编程语言也要决出2019年的最佳语言了,会是谁呢,从 TIOBE 上来看,Java.C 和 Python 基本锁定了前三的位置,Java 江湖老大的地位,还是无人能撼动呢. 下面先来 ...
- 风云编程python基础语法(7)
目录 十七.发邮件 目标 版本1.0:发一封最简单的邮件 smtplib模块 email模块 代码结构 可能出现的错误 版本2.0:给自己发完整的邮件 丰富邮件头 丰富正文内容 版本3.0:群发一封完 ...
- 风云编程python基础语法(1)
未完待续,持续更新中... 99**2 = 99^2 一.print()函数 二.数据类型 三.条件判断 四.input()函数 五.列表和字典+元组 列表list 1.格式:roommates=[' ...
最新文章
- 无需标注数据集,自监督注意力机制就能搞定目标跟踪
- 打造LINUX系统安全(早期学习笔记)
- 那些年搞不懂的多线程、同步异步及阻塞和非阻塞(二)---概念区分
- 【熊猫多模式站群开发日志】权限控制拦截器
- 语言谓词函数isprime_G?del完备性定理 —— 一阶谓词逻辑演绎系统 Part II
- 支持了Unicode及各国字符集编码识别]改善IDA6.8对中文等非英语国家的ANSI字符串显示支持不佳的问题...
- BlockingQueue原理分析(ReentrantLock、Condition的实践)
- php 字体设计,时尚前沿:15个创意的3D字体设计艺术作品欣赏
- SQL注入-盲注(布尔盲注与时间盲注)
- python django 商品进销存管理系统(毕设、课设、学习)
- 分享一种快速制作二维码标签及防伪溯源二维码的方法
- win10需要修复计算机,超好用!Win10自带修复系统 隐藏太深
- 【C#】WinForm 之 SQL Server 服务监控器(避免开机启动服务)
- 密西西比河谷州立大学:Android应用程序开发(二)
- 下一个五年,存储的生意在哪里?
- 浅谈CMMI与敏捷体系的融合
- Nand2Tetris - Week 1
- 不小心执行了rm -f 如何恢复
- 开发证书与发布证书申请和安装步骤
- 初次使用BERT的可视化指南
热门文章
- 自定义View开发时踩的坑
- 01二维矩阵中最大全为1的正方形maxSquare——经典DP问题(二维)
- 查看spark是否有僵尸进程,有的话,先杀掉。可以使用下面命令
- sphinx索引分析——文件格式和字典是double array trie 检索树,索引存储 – 多路归并排序,文档id压缩 – Variable Byte Coding...
- vue +element 搭建项目,要求既支持pc端又支持移动端
- Node初学(一)require方法
- ERROR: cannot launch node of type [robot_pose_publisher/robot_pose_publisher]: robot_pose_publisher
- 5-35 城市间紧急救援 (25分) pat 数据结构
- 对数据库进行黑盒测试操作?
- mochiweb 源码阅读(八)