IEEE Spectrum排行榜第一,Skill UP排名第一的開發(fā)工具,Stack Overflow年度調(diào)查中程序員最感興趣的選擇,Stack Overflow 6月份訪問量最多的編程語言......沒錯兒,這些盛譽都指向了一個編程語言——Python。從DevOps到機器學習再到數(shù)據(jù)分析,Python的身影可謂無處不在,為什么Python能夠做到如此地位并獲得這么多的榮譽呢?本文采訪了Stack Overflow的數(shù)據(jù)科學家David Robinson,聽聽看他是如何解讀Python的?
▲David Robinson
問:您曾在文章中表示:“Python是增長速度最快的編程語言”。我們看到在2017年6月Python首次超過其它編程語言成為Stack Overflow中高收入國家訪問量最多的編程語言,但是在幾年之前,Python的訪問量還不敵其它五大主流編程語言(Java,C#,C ++,JavaScript和PHP),這種轉(zhuǎn)變是如何發(fā)生的?Python又是憑何超過Java?
David Robinson:Java和Python通常在不同的環(huán)境中使用,所以它們的競爭不是二者之間的競爭,而是在各自領(lǐng)域份額大小的競爭。Python的成長來自于數(shù)據(jù)科學和機器學習的巨大擴展,它是R語言之外,最受歡迎的選擇。Java獨立于Android、桌面和企業(yè)級軟件的移動開發(fā)。他們直接“競爭”的唯一區(qū)域是用于網(wǎng)頁開發(fā)的地方(而兩者在這方面都相當穩(wěn)定)。
問:Python明年有沒有可能成為訪問量最大的語言?
David Robinson:根據(jù)目前的趨勢,Python至少在高收入國家內(nèi),絕對有望成為2018年訪問量最大的語言,事實上它已經(jīng)是美國和英國2017年訪問量最大的編程語言。但是,也不排除會出現(xiàn)其它因素改變未來的趨勢。
問:軟件工程和機器學習顧問Adam Geitgey曾明確表示如果要學習機器學習,那么Python幾乎是必須學習的。這是Python快速成長的原因嗎?
David Robinson:我們的分析表明,機器學習的發(fā)展以及Python在機器學習領(lǐng)域的首選地位,是Python發(fā)展的主要原因。
問:對于那些使用R語言的程序員,你認為他們應該考慮學習Python,還是完全放棄R?
David Robinson:其實上述兩種說法,我都不太認同。這兩種語言在現(xiàn)實環(huán)境中擁有不同的優(yōu)勢,在各自的領(lǐng)域都有很大的發(fā)展空間。R語言也是Stack Overflow中流量增長最快的語言之一,它在更具體的數(shù)據(jù)分析領(lǐng)域獨領(lǐng)風騷,我曾使用過R語言工具,它其中有很多令人興奮的功能。
問:Python受歡迎的另一個原因可能是DevOps。據(jù)Richard Gall介紹,在今年的Skill Up調(diào)查中,Packt發(fā)現(xiàn)Python是DevOps中使用的主要語言,Python的可訪問性解釋了其受歡迎程度。你同意這種說法嗎?
David Robinson:我當然同意Python作為可訪問語言有助于其成長,并且它在DevOps中是最受歡迎的語言。但是,我們的分析表明,這可能并不是Python在過去快速增長的原因,雖然訪問Python的開發(fā)人員和DevOps相關(guān)的標簽一直在增長,但是Python與數(shù)據(jù)科學相關(guān)的標簽在快速增長。
問:程序員為什么要學習Python?
David Robinson:我認為Python是程序員在早期學習的一個安全選擇,這是基于它的普及程度及其在增長領(lǐng)域的應用。然而,這并不意味著它在各種場景下都是正確合適的語言。