咱們最近討論過,那些被世界銀行定義爲高收入水平的發達國家,在選擇使用什麼類型的技術方面,和世界上的其餘地方每每有着較大的區別。這類區別中,差別最大的例子之一,就是 Python 編程語言。若是隻統計高收入國家的數據,這幾年間 Python 的增加量遠超過諸如 StackOverflow 趨勢工具中顯示的全球軟件開發工具的增加狀況。python
今天,咱們將深刻挖掘一下近五年裏 Python 編程語言爆炸性增加的細節數據,主要以高收入國家用戶產生的 StackOverflow 流量爲指標。固然,咱們很難精肯定義像「增加速度最快」這樣的說法,但咱們仍是找到了 Python 是近年來增加速度最快的主要編程語言的決定性證據。web
除非特別代表,本文如下討論的全部數據均僅統計高收入國家範圍內;這些流量主要來自好比美國、英國、德國、加拿大等發達國家,佔了 StackOverflow 總訪問量的約 64%;其餘一些國家,好比印度、巴西、俄羅斯和中國固然也爲全球軟件開發生態系統作出了巨大的貢獻,限於篇幅本文對此再也不詳細討論,但咱們也能看到, Python 在這些國家中也表現出增加的趨勢。django
這裏要先強調一點,某種語言的用戶數量並不能用於衡量某個語言的質量:咱們只是單純描述開發者使用編程語言的狀況,並無對此作出任何評判。編程
從 StackOverflow 趨勢工具上,咱們能看到近幾年 Python 的增加勢頭一直很是迅猛。但若是光考慮高收入國家的狀況又如何呢?咱們的統計口徑是每一個問題的閱讀量,而不是回答數量——雖然兩者結果相似,但閱讀量的每個月干擾較小,特別對較小的標籤更是如此。框架
對於 StackOverflow 問題的閱讀量,咱們能得到的統計數據是從2011年底至今。在此範圍內,咱們將 Python 和其餘5中主要的編程語言進行對比。(注意:這個統計範圍比趨勢工具分析的範圍要小,趨勢工具的數據是從2008年至今。)這些編程語言是目前 StackOverflow 上高收入國家的用戶訪問量最多的10大標籤中的6個 —— 其餘4個沒有列入對比的是 CSS 、 HTML、Android、和 JQuery。編程語言
從數據上來看,2017年6月,Python 首次超過 Javascript,成爲 StackOverflow 上閱讀量最高的標籤。其中, Python 在美國和英國是國內閱讀量第一,在其餘幾個高收入國家則略微小於 Java 或者 Javascript ,屈居亞軍。這但是至關引人注目的成就,要知道在2012年,它比其餘5個編程語言都低,而短短的幾年內就增長了2.5倍。固然這部分緣由是因爲 Java 每季度的訪問變化規律:因爲在大學課程中 Java 的佔比至關大,因此 Java 的閱讀量在每一個學期期中和期末階段會迎來一個高峯,而到了暑假期間則相對回落。在今年末 Java 是否有可能再度反超 Python 呢?咱們用了個趨勢分析模型「STL」,將季度性的變化和整體的增加趨勢進行整合,並對接下來兩年的增加趨勢進行了預測:函數式編程
根據這個模型,Python 有可能繼續保持領先,也有可能在今年秋季被 Java 暫時超過(這些都在模型預期的變更範圍內),但很明顯,在2018年 Python 將毫無疑問成爲閱讀量排行第一的標籤。 STL 模型還推測, Java 和 Javascript 將會繼續保持在比較類似的水平,正如它們前兩年中的趨勢同樣。函數
上述數據都僅限在訪問最多的6大編程語言中。但在目前各類技術百花齊放的時候,到底誰纔是當下在高收入國家裏增加最快的技術呢?工具
咱們決定以2016年度和2017年度的閱讀量增加率爲指標,分析了各大編程語言( Java 和 Python 之類)以及各類平臺(好比 iOS、Android、Windows 和 Linux)的數據,不過沒有包括相似 Angular 這樣的框架或者 Tensor Flow 這樣的工具(雖然它們不少也展示出了不俗的增加勢頭,也許咱們以後會另文討論)。學習
因爲在不一樣體量和增加數量上的差別,單純的增加率數字是不具備可比性的。所以,咱們使用了一張平均差圖來對比每一個標籤的總量和增加率。
如圖所示,擁有 27% 年增加率的 Python 可謂獨佔鰲頭:基數大的標籤中增加最快,增加快的標籤中總量最大。與其增加率相似,總量排在第二大的是 R 語言。在高收入國家,大部分總量較大的標籤的流量都保持相對穩定,除了 Android 、iOS 和 PHP 有些微的減小。以前咱們還討論過的 Objective-C 、 Perl 和 Ruby 都有比較明顯的縮減。各類函數式編程語言中, Scala 是總量最大增加狀況也最好的,而 F# 和 Clojure 則總量很低,又呈減小趨勢,只有 Haskell 保持居中穩定態勢。
不過上圖中有一個特殊的成員沒法顯示,那就是 Typescript 。它的相關問題閱讀量在去年增加了 142% 以致於無法擺在圖上。同時,你還能看出有許多相對較小的語言的增加速度也和 Python 持平或更高(好比 R、 Go 和 Rust),而 Swift 和 Scala 也顯示出了使人印象深入的增加勢頭。那麼他們的總閱讀量狀況和 Python 相好比何呢?
相似 R 和 Swift 這些語言的增加速度確實頗爲可觀, TypeScript 更是在這麼短的時間內翻了一番多。這些較小的編程語言的發展,幾乎都是從徹底默默無聞,到現在在軟件生態系統中佔有了不可忽視的份額。但根據這張圖表咱們能夠看出,對於總量相對較小的語言,要更快地擴張仍是相對容易的。
請注意咱們並非把這些語言和 Python 進行對比,只是嘗試解釋這些語言的增加速度和總量的關係——這些語言都還有很是廣闊的前景。但在目前的統計數據中, Python 確實是獨樹一幟:它既是這些語言中總閱讀量最大的,也是增速最快的之一。(事實上,它的增速還在加快!從2013年以來,每一年的平均增加率都在提升。)
至此,咱們已經分析了高收入國家中 Python 語言的相關趨勢。在全球的其餘國家,好比印度、巴西、俄羅斯和中國, Python 是否是也有着相似的增加狀況呢?
答案是確定的。
在其餘國家和地區, Python 依舊是增加最快的主要編程語言,它原先也仍是保持着較低的水平,比高收入國家遲了兩年(2014年)纔開始高速增加。事實上,在非高收入國家的用戶中, Python 相關標籤的閱讀量年增加率甚至比高收入國家的還稍微高一點點。雖然上圖沒有顯示,但另外一門使用量和GDP呈正相關關係的編程語言: R 語言的訪問量在這些國家裏也呈增加趨勢。
本文中,關於問題標籤閱讀量增減狀況(而不是絕對的排行)的許多結論都是基於高收入國家的數據,但在其餘國家和地區也一樣成立。在這兩種不一樣區域間的增加率數據的斯皮爾曼相關係數達 0.979。在部分狀況下——好比在 Python 語言的增加——你能夠看到存在某種像是「延遲」的現象:當一種技術在高收入國家中普遍普及後一兩年,才逐漸擴展到全球範圍。
咱們寫這篇文可不是爲了引戰。某種語言的用戶量並不能表明它的質量,固然也不能告訴你對於某種特定狀況用哪一種語言來解決更好。帶着這樣的觀點,咱們相信,經過相似研究,咱們能夠了解到當前的軟件開發生態是由哪些語言組成的,以及據此推測整個產業將會往什麼方向改變。
你們在學python的時候確定會遇到不少難題,以及對於新技術的追求,這裏推薦一下咱們的Python學習扣qun:784758214,這裏是python學習者彙集地!!同時,本身是一名高級python開發工程師,從基礎的python腳本到web開發、爬蟲、django、數據挖掘等,零基礎到項目實戰的資料都有整理。送給每一位python的小夥伴!每日分享一些學習的方法和須要注意的小細節
點擊:python技術分享