摘要:本文根據Stack Overflow流量分析了Python及其他一些程式語言的發展情況,同時也對高收入國家與非高收入國家的情況進行了對比。以下是譯文。
我們最近的研究表明,富裕國家(世界銀行定義為高收入國家)喜歡研究的技術與其他國家的不同。其中,我們看到最大的差異是Python語言。當我們關註高收入國家的時候,甚至可以看到Python的增長速度甚至比Stack Overflow Trends或者其他一些全球軟體開發排名顯示的還要快。
在這篇文章中,我們將探討過去五年中Python語言不尋常的增長速度,正如在高收入國家的Stack Overflow流量中所示的那樣。 “增長最快”一詞可能很難精確定義,但是我們認為Python確實是增長最快的主流程式語言。
本文提到的大部分數字都來自高收入國家,比如美國、英國、德國、加拿大和其他類似的國家,他們加起來佔了Stack Overflow 64%的流量。其他一些國家,如印度、巴西、俄羅斯和中國,也為全球軟體開發生態系統做出了巨大的貢獻。儘管這些國家的Python也在增長,但本文幾乎不涉及這些經濟體。
需要強調的是,使用某種語言的使用者數並不能用來衡量該語言的質量:我們現在正在講的是開發人員使用的程式語言,而不是處方。
Python在高收入國家的增長情況
你可以在Stack Overflow Trends上看到,Python在過去幾年裡一直在迅速增長。但是對於這篇文章,我們將重點關註高收入國家,並且分析的是Stack Overflow上問題的訪問情況,而不是使用者提的問題。
有關Stack Overflow問題檢視的資料可以追溯到2011年底,在這段時間內,我們可以看一下Python相對於其他五種主流程式語言的增長情況。這是目前高收入國家中Stack Overflow訪問量前十的標簽中的六個;另外還有這四個沒包括在內,分別是CSS、HTML、Android和JQuery。
2017年6月,Python第一次成為高收入國家Stack Overflow訪問量最大的標簽。它在美國和英國是訪問量最大的標簽,在大部分其他高收入國家中也是排在前兩名(另外一個要麼是Java要麼是JavaScript)。這尤其令人印象深刻,因為在2012年,Python的訪問量小於其他五種語言,而到現在其訪問量已經增長了2.5倍。
產生這種現象的部分原因是Java流量的季節性因素。由於Java是本科重點課程,所以它的流量會在秋季和春季上升,而在夏季下降。但是它會在年底再次趕上Python嗎?我們可以嘗試使用名為“STL”的模型來預測未來兩年的增長情況,這個模型能將增長情況與季節性趨勢相結合,從而預測未來的值。
根據這個樣式的預測,Python可能會在今年秋天保持領先地位或被Java反超,但到了2018年,Python肯定會成為最受歡迎的標簽。STL還暗示JavaScript和Java在高收入國家中的流量將保持相似的水平,就跟最近兩年的情況差不多。
從整體上來看,有哪些標簽增長得最快?
以上我們只看了六種主流語言,那麼目前在高收入國家中還有哪些目前增長最快的技術呢?
我們用2017年和2016年的流量佔比來定義增長率。在這個分析中,我們只考慮程式語言(比如Java和Python)和平臺(比如iOS、Android、Windows和Linux),不包括類似Angular的框架和類似TensorFlow的庫。
由於這個漫畫中描述的“增長最快”存在問題,因此,我們使用平均差異圖來比較各個語言的增長率與整體平均增長率。
Python憑藉著27%的年增長率在所有標簽中獨佔鰲頭,它既是流量最大也是增長最快的標簽。擁有類似增長率的第二大標簽是R語言。我們可以看到,其他大多數大標簽的流量在高收入國家都保持穩定,而Android、iOS和PHP的訪問量則略有下降。(我們在之前一篇Flash之死的帖子中研究了一些流量減少的標簽,如Objective-C、Perl和Ruby)。我們還註意到,在函式式程式語言中,Scala是流量最大並且增長非常迅速的語言,F#和Clojure則較小並且還在不斷下降,而Haskell則位於它們之間並保持著穩定。
在上圖中有一個重要的東西被遺漏了:TypeScript的流量去年竟然增長了142%,這足以讓我們對它進行單獨處理,以避免超過現有的範圍。你還可以看到,其他一些較小語言(例如R、Go和Rust)的增長速度與Python差不多或更快,而且也有許多標簽,例如Swift和Scala,它們的增長情況也很驚人。與Python相比,他們的流量變化情況怎麼樣呢?
像R和Swift這樣的語言的發展情況確實很驚人,而TypeScript在更短的時間內表現出了更快速的擴張。如圖所示,當標簽一開始相對較小時,則後期越容易出現較快地增長。
請註意,我們的意思並不是說這些語言可以與Python“抗衡”。相反,我們正在解釋的是為什麼要把它們單獨拿出來分析,這些都是較低流量的標簽。Python有著一個與眾不同的情況,它是Stack Overflow中最受歡迎的標簽之一,也是增長最快的一個。
其他地區的情況
到目前為止,我們一直都在分析高收入國家的發展趨勢。那麼,在像印度、巴西、俄羅斯、中國等其他一些國家中,Python的增長情況如何呢?
它依然是增長最快的程式語言。
在非高收入國家中,Python仍然是增長最快的主流程式語言;它只是最開始的水平比較低,並且是在兩年後才開始增長(從2014年開始,而不是2012年)。事實上,非高收入國家的Python同比增長率略高於高收入國家。
本文中有關高收入國家標簽流量增減的許多結論也都適用於其他地區,並且這兩者的增長率存在著0.979的相關性。在某些情況下,你會看到類似於Python的“滯後”現象,即某個技術在高收入國家的接受度發展水平比其他地區要早一到兩年。
下一步工作
我們不希望挑起所謂的“語言之戰”。一種語言的使用者數量並不代表著它的質量,而且肯定無法告訴你哪種語言更適合某種特定情況。不過,考慮到這個觀點,我們認為有必要瞭解一下有哪些語言建起了開發者生態系統,以及生態系統當前的發展情況。
————近期開班————
馬哥聯合BAT、豆瓣等一線網際網路Python開發達人,根據目前企業需求的Python開發人才進行了深度定製,加入了大量一線網際網路公司:大眾點評、餓了麼、騰訊等生產環境真是專案,課程由淺入深,從Python基礎到Python高階,讓你融匯貫通Python基礎理論,手把手教學讓你具備Python自動化開發需要的前端介面開發、Web框架、大監控系統、CMDB系統、認證堡壘機、自動化流程平臺六大實戰能力,讓你從0開始蛻變成Hold住年薪20萬的Python自動化開發人才。
10期面授班:2018年03月05號(北京)
11期網路班:2018年03月17號(網路)
掃描二維碼領取學習資料
更多Python好文請點選【閱讀原文】哦
↓↓↓