華文網

Python成為增長最快的程式設計語言!沒有之一!

根據 Stack Overflow 最近公佈的報告,Python憑藉著27%的年增長率,上榜訪問量增長最快的主流程式設計語言。

在 Stackoverflow 上,主流程式設計語言如 Java、Javascript、C#、php 和 C++ 的問題訪問量過去幾年基本沒太大的變動,只有 Python 一路呈上升趨勢。

Python為什麼增長這麼快

為什麼 Python 增長的這麼快?它有很多的用途,從 Web 開發到資料科學,再到 DevOps,越來越多的應用是使用 Python 開發的。

▲2017 年 6 月Python 首次成為高收入國家訪問量最高的標籤,Python 的年增長率達到了 27%

快速增長的 Python 主要是因為資料科學、機器學習以及學術研究。

比如電子、製造業、軟體、政務,尤其是高校對Python最為關注。Python 在各個行業的增長幾乎是差不多的。

這也恰好說明了,資料科學和機器學習對於各行各業來說,變得越來越常見,而且 Python 在這兩個領域已經成為了最為普遍的選擇。

Python能夠做哪些工作

每個領域都有一些比較著名的庫,從庫所對應標籤的訪問量可以理清Python在這些領域的增長。

Python 在系統管理員和 DevOps 工程師中非常的流行,他們會同時訪問Linux,Bash 和 Docker 等領域的問題。同樣,很多 Python web 應用並不是基於 Django 或者 Flask 的,這些開發者很可能去訪問 JavaScript、HTML 和 CSS ,而我們不能簡單的計算 Linux、bash、javascript 這些標籤的增長並且假定它們和Python相關。因此,我們想要計算一下,與 Python 標籤一起訪問的標籤有哪些。

我們僅考慮今夏(2017年 6-8 月期間)的訪問量,

這樣做可以減小學生們帶來的流量影響,專注於最近的流量資料,同時還可以減少計算量。此外,我們僅考慮註冊用戶,且該用戶在這段時間內應該至少訪問過50個問題。我們基於兩點判斷一個用戶是Python使用者:第一,他最多訪問的標籤是Python,第二,Python問題在他流覽的所有問題中,占比至少要達到20%。

流覽Python標籤的人,通常還會流覽什麼標籤呢?

對於一個 Python 開發者來說,訪問最多的標籤是 Pandas(優勢非常明顯),這些流量代表了使用 Python 做 資料科學,這點我們絲毫不感到意外。訪問量第二多的標籤是JavaScript,這些流量代表了使用 Python 做 Web 開發的程式師。這證實了我們的猜想:我們應該考慮的是與Python標籤一起訪問的那些標籤,而不僅僅是與 Python 相關的標籤的增長(這兩者是有區別的)。

我們還能看到其他的一些“技術簇”(“clusters” of technologies)。這些聚在一起的標籤,表現出了一定的相關性,借此我們可以分析出它們之間的關係:比如說Python程式師是不是更加傾向於訪問某些特定的標籤。通過過濾出一組具有較高的皮爾森相關係數( Pearson correlation)的標籤,我們可以在圖表中看到三組關係:

我們可以看到一些較大的“技術簇”,它表明了Python可以解決的一類問題。在圖片的中上部分我們可以看到有關資料科學和機器學習相關的內容:有pandas,NumPy和Matplotlib,並且你可以發現它們和R語言,Keras以及TensorFlow息息相關。它下面的一個“技術簇”表現了有關web開發領域的一些關係,這裡有JavaScript, HTML, CSS, Django, Flask 和 JQuery。另外還有兩個“技術簇”,左邊是與系統管理/DevOps相關的(以linux和bash為中心),右邊是與資料工程相關的(包括Spark, Hadoop, 和 Scala)

話題的增長

我們發現,Python相關的訪問流量可以被歸納為一些特定的話題。這使得我們可以獲知,Python訪問量的增長,與哪些話題息息相關。

想像一下,我們正在研究一個使用者的歷史紀錄並發現Python是他最常訪問的標籤。我們怎麼才能進一步判斷出這個使用者的細分屬性呢?是web開發者?資料科學家?系統管理員?還是其他角色?為了達成這一目標,我們還需要去研究他訪問量第二多的標籤,第三多的標籤,以此類推。沿著這條路走下去,最終我們會在上述“技術簇”模型中,找到屬於這位程式師的位置。

因此,我們提出了一種簡單的方法,通過對以下九個標籤的訪問統計 ,我們將某個使用者歸類到某個話題中。

資料科學:Pandas, NumPy 或 Matplotlib

Web 開發者:JavaScript, Django, HTML

系統管理員/DevOps:Linux, Bash 或 Windows.

無法歸類:上述 9 個標籤的訪問量,沒有任何一個能夠佔據該用戶5%以上的流量。

雖說並不是特別精確,但是該方法可以讓我們快速的估計出每個領域對Python增長的影響力。我們也嘗試使用了更加嚴謹的計算手段,比如說潛在狄利克雷分佈(Latent Dirichlet Allocation),得到的結果是相似的。

Python的流行趨勢

考慮到我們現在主要研究的是用戶而不是問題,我們首先為您展示Stack Overflow全體註冊使用者訪問上述話題的比例變化趨勢(不論其是否訪問了Python話題)

我們可以看到,Web開發和系統管理員這兩大類在過去的三年中增長平緩,但是Python程式師訪問資料科學相關技術的占比卻飛速增長。這就說明,Python的流行主要還是由資料科學以及機器學習驅動的。

通過計算Python程式師在2016和2017兩年中訪問某個標籤點流量,我們還可以研究一下每個單獨標籤的增長水準。比方說,可能出現的情況是:Javascript標籤的流量總體平穩,但若僅考慮Python程式師對此標籤的訪問,Javascript標籤的訪問占比可能會下降。當我們計算出每個標籤的增長速率後,我們可以在網路圖表中展現出某個話題的增長或萎縮。

這些工作有利於證明我們的猜想:Python的增長主要和資料科學以及機器學習相關,圖表中大多數的技術簇都在向橙色演變,這說明這些標籤開始成為Python生態系統的主角了。

Python在行業的增長

Python的流量都來自哪些類型的公司呢?

我們僅關注Python增長速度最為顯著的兩個國家:美國和英國。在這倆國家中,我們可以將流量按照行業歸類(就像我們對比AWS和Azure一樣)

訪問Python最多的是學術界(優勢明顯),包括各類科研院校。

至於其他行業,我們發現Python在政府部門非常流行,增長迅速。同時,Python在電子和製造業也被廣泛使用。

過去一年裡,Python在各行業的增長幾乎是差不多的,至少在英美兩國是這樣。各個行業訪問Python的流量增長了2-3個百分點(對於原本使用Python不多的行業,這樣的增長是非常顯著的,比如之前提到的保險和零售業),在金融領域(該領域是SO網站訪問量占比較大的行業之一),Python的訪問量從2016年排名第四升至2017年的排名第二。

(本文分析針對世界銀行所公佈的高收入國家進行)

我們可以看到一些較大的“技術簇”,它表明了Python可以解決的一類問題。在圖片的中上部分我們可以看到有關資料科學和機器學習相關的內容:有pandas,NumPy和Matplotlib,並且你可以發現它們和R語言,Keras以及TensorFlow息息相關。它下面的一個“技術簇”表現了有關web開發領域的一些關係,這裡有JavaScript, HTML, CSS, Django, Flask 和 JQuery。另外還有兩個“技術簇”,左邊是與系統管理/DevOps相關的(以linux和bash為中心),右邊是與資料工程相關的(包括Spark, Hadoop, 和 Scala)

話題的增長

我們發現,Python相關的訪問流量可以被歸納為一些特定的話題。這使得我們可以獲知,Python訪問量的增長,與哪些話題息息相關。

想像一下,我們正在研究一個使用者的歷史紀錄並發現Python是他最常訪問的標籤。我們怎麼才能進一步判斷出這個使用者的細分屬性呢?是web開發者?資料科學家?系統管理員?還是其他角色?為了達成這一目標,我們還需要去研究他訪問量第二多的標籤,第三多的標籤,以此類推。沿著這條路走下去,最終我們會在上述“技術簇”模型中,找到屬於這位程式師的位置。

因此,我們提出了一種簡單的方法,通過對以下九個標籤的訪問統計 ,我們將某個使用者歸類到某個話題中。

資料科學:Pandas, NumPy 或 Matplotlib

Web 開發者:JavaScript, Django, HTML

系統管理員/DevOps:Linux, Bash 或 Windows.

無法歸類:上述 9 個標籤的訪問量,沒有任何一個能夠佔據該用戶5%以上的流量。

雖說並不是特別精確,但是該方法可以讓我們快速的估計出每個領域對Python增長的影響力。我們也嘗試使用了更加嚴謹的計算手段,比如說潛在狄利克雷分佈(Latent Dirichlet Allocation),得到的結果是相似的。

Python的流行趨勢

考慮到我們現在主要研究的是用戶而不是問題,我們首先為您展示Stack Overflow全體註冊使用者訪問上述話題的比例變化趨勢(不論其是否訪問了Python話題)

我們可以看到,Web開發和系統管理員這兩大類在過去的三年中增長平緩,但是Python程式師訪問資料科學相關技術的占比卻飛速增長。這就說明,Python的流行主要還是由資料科學以及機器學習驅動的。

通過計算Python程式師在2016和2017兩年中訪問某個標籤點流量,我們還可以研究一下每個單獨標籤的增長水準。比方說,可能出現的情況是:Javascript標籤的流量總體平穩,但若僅考慮Python程式師對此標籤的訪問,Javascript標籤的訪問占比可能會下降。當我們計算出每個標籤的增長速率後,我們可以在網路圖表中展現出某個話題的增長或萎縮。

這些工作有利於證明我們的猜想:Python的增長主要和資料科學以及機器學習相關,圖表中大多數的技術簇都在向橙色演變,這說明這些標籤開始成為Python生態系統的主角了。

Python在行業的增長

Python的流量都來自哪些類型的公司呢?

我們僅關注Python增長速度最為顯著的兩個國家:美國和英國。在這倆國家中,我們可以將流量按照行業歸類(就像我們對比AWS和Azure一樣)

訪問Python最多的是學術界(優勢明顯),包括各類科研院校。

至於其他行業,我們發現Python在政府部門非常流行,增長迅速。同時,Python在電子和製造業也被廣泛使用。

過去一年裡,Python在各行業的增長幾乎是差不多的,至少在英美兩國是這樣。各個行業訪問Python的流量增長了2-3個百分點(對於原本使用Python不多的行業,這樣的增長是非常顯著的,比如之前提到的保險和零售業),在金融領域(該領域是SO網站訪問量占比較大的行業之一),Python的訪問量從2016年排名第四升至2017年的排名第二。

(本文分析針對世界銀行所公佈的高收入國家進行)