天天看點

二十年程式設計語言風雲,哪款是你的愛豆?

原創: 周蘿蔔 蘿蔔大雜燴

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年程式設計語言的風雲資料啦!

整體排名

我們先來看看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 和 JavaScript 兩大語言,基本上程式猿的世界裡,就是它們了。

二十年程式設計語言風雲,哪款是你的愛豆?

當然了,語言火是一回事,薪資高不高又是另一回事了,簡單的抓取了拉勾上每個語言前三頁崗位的薪資情況,大家來體會下

二十年程式設計語言風雲,哪款是你的愛豆?

最後還是以一個視訊結束,20年語言風雲榜,你值得擁有!

視訊點選這裡