首页 > 技术文章 > 二十年编程语言风云,哪款是你的爱豆?

developer2020 2020-01-03 15:02 原文

简介: 2020了,编程语言也要决出2019年的最佳语言了,会是谁呢,从 TIOBE 上来看,Java、C 和 Python 基本锁定了前三的位置,Java 江湖老大的地位,还是无人能撼动呢。

原创: 周萝卜 萝卜大杂烩

2020了,编程语言也要决出2019年的最佳语言了,会是谁呢,从 TIOBE 上来看,Java、C 和 Python 基本锁定了前三的位置,Java 江湖老大的地位,还是无人能撼动呢。

下面先来一张 TIOBE 网站的走势图,镇楼(这是个暴露年龄的词语)!

二十年编程语言风云,哪款是你的爱豆?

 

数据获取

数据获取的部分,与上一篇 DB 篇很类似,都是解析 JavaScript 代码里的变量,抽出数据即可

def get_pl_data(name):    name_lower = [i.lower() for i in name]    for i in name_lower:        print("Request ", i)        if i == '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('script')[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 = []        for array in array_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 方法就可以方便的获取

def get_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()    return top_20 + bottom_30

最后再保存到 csv 中

with open('pl_data.csv', 'a+', encoding='utf-8') as f:            f.write('name,value,date\n')            for d in data:                try:                    row = '{},{},{}'.format(name,                                            d['value'],                                            d['date'])                    f.write(row)                    f.write('\n')                except:                    raise

如果不出意外的话,几分钟的时间里,我们就能够拿到近20年编程语言的风云数据啦!

文章进行了部分删减,整体语言指数与图解内容请点击:https://developer.aliyun.com/article/741509?utm_content=g_1000098137

关键字:JavaScript 前端开发 Java Go PHP C# C语言 C++ iOS开发 Python

推荐阅读