IEEE 2019編程語(yǔ)言排行榜出爐:趨勢(shì)、開(kāi)源、職位需求,Python都是第一
IEEE Spectrum 剛剛發(fā)布了第六屆編程語(yǔ)言排行榜。在新的排名方式下,Python 再次名列第一,而且與第二名的差距正在加大。名列后幾位的分別是 Java、C 語(yǔ)言、C++和 R 語(yǔ)言。
這是 IEEE Spectrum 的第六次年度編程語(yǔ)言排行統(tǒng)計(jì)。今年的統(tǒng)計(jì)進(jìn)行了重大改革,一些基礎(chǔ)指標(biāo)進(jìn)行了重構(gòu),而最終的排行榜也進(jìn)一步得到了簡(jiǎn)化。但其基本理念讓仍然相同:將多個(gè)數(shù)據(jù)源的編程語(yǔ)言流行度排名結(jié)合起來(lái),得出目前業(yè)內(nèi)人們關(guān)注度最高的語(yǔ)言。
這些信息來(lái)源包括谷歌搜索、谷歌趨勢(shì)、推特、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder、IEEE Job Site 和 IEEE Xplore Digital Library。
對(duì)于編程語(yǔ)言的統(tǒng)計(jì)而言,人們總會(huì)面臨兩個(gè)主要問(wèn)題:(1)理論上沒(méi)有人可以審查所有程序員正在敲的代碼屬于哪種語(yǔ)言;(2)有些時(shí)候,一種語(yǔ)言是另一種的基礎(chǔ),有的時(shí)候兩種語(yǔ)言所使用的領(lǐng)域完全沒(méi)有相關(guān)性。IEEE 的榜單致力于解決這些問(wèn)題,呈現(xiàn)出最為準(zhǔn)確的編程語(yǔ)言流行程度排行。統(tǒng)計(jì)者們從 8 種信息渠道獲取數(shù)據(jù),并設(shè)定了 11 種排名方式——這些指標(biāo)是過(guò)濾語(yǔ)言排名的最優(yōu)方式——然后將所有結(jié)果以不同權(quán)重結(jié)合起來(lái),獲得了最終的排名。當(dāng)然,如果你對(duì)于權(quán)重有異議,也可以在 IEEE 的可交互頁(yè)面上設(shè)置自己想要的權(quán)重:
在 IEEE Spectrum 網(wǎng)站上,你可以根據(jù)自己的需求設(shè)定權(quán)重,獲得不同的編程語(yǔ)言排名。
在 IEEE 的默認(rèn)設(shè)置之下,對(duì)找工作有利的排行方式獲得了更高的權(quán)重。雖然標(biāo)準(zhǔn)的變化讓今年的統(tǒng)計(jì)結(jié)果和往年有所不同,不過(guò)整體看來(lái)趨勢(shì)還是一樣的:Python 在所有分項(xiàng)目中都名列榜首。Python 如此受到人們歡迎很大程度上是因?yàn)榇嬖诖罅繉S玫墓ぞ邘?kù)作為支持,尤其是在人工智能(AI)領(lǐng)域。Keras 是每個(gè)進(jìn)入人工智能、特別是深度學(xué)習(xí)領(lǐng)域的開(kāi)發(fā)者所熟知的庫(kù):它提供了 TensorFlow、CNTK 和 Theano 深度學(xué)習(xí)框架的友好界面和工具包。當(dāng)然,深度學(xué)習(xí)也不是 Python 的唯一應(yīng)用方向,而且在 1991 年首次推出時(shí)也預(yù)料不到會(huì)對(duì)深度學(xué)習(xí)產(chǎn)生影響。隨著微控制器上算力的急劇增長(zhǎng),CircuitPython 和 MicroPython 等嵌入式 Python 版本越來(lái)越受到制造商們的歡迎。
排在 Python 之后的是 Java、C 語(yǔ)言和 C++,這是一組長(zhǎng)期爭(zhēng)奪第二名的語(yǔ)言——盡管 IEEE 調(diào)整了指標(biāo),這些語(yǔ)言與 Python 之間的差距還是在越拉越大。C++的分?jǐn)?shù)落后于 Python 12.5 分(在所有排名中,第一名的編程語(yǔ)言為 100 分,排在其后的語(yǔ)言以頭名為標(biāo)準(zhǔn)依次遞減)。主要用于數(shù)學(xué)計(jì)算的語(yǔ)言 R 排名來(lái)到了第五。盡管 R 語(yǔ)言相比其他對(duì)手專業(yè)性很高,但由于大數(shù)據(jù)的應(yīng)用愈發(fā)廣泛,近年來(lái)它的流行程度一直在提高。
在前 10 名中,由 MathWorks 開(kāi)發(fā)并用于數(shù)值計(jì)算的專用語(yǔ)言 Matlab 的出現(xiàn)著實(shí)有些出乎預(yù)料,但這簡(jiǎn)單明了地反映了編程語(yǔ)言在硬件工程中的突出地位——特別是那些對(duì)通過(guò) MathWorks 的圖形化 Simulink 軟件包運(yùn)行模擬或創(chuàng)建控制系統(tǒng)的人而言。
在第 10 名以下,還有一些值得一提的語(yǔ)言,其中包括在 11 位的 Arduino 和第 12 位的 HTML/CSS。在此前的統(tǒng)計(jì)中,部分人認(rèn)為它們不應(yīng)出現(xiàn)在榜單之中:因?yàn)椴淮嬖谶@樣的語(yǔ)言,而「Arduino」實(shí)際上是某種語(yǔ)言運(yùn)行的一系列硬件平臺(tái)的名稱,而這種語(yǔ)言應(yīng)該被稱為 Wiring(有時(shí)它們也被歸類為 C 語(yǔ)言或 C++的一種)。IEEE 表示,在這方面我們應(yīng)當(dāng)以簡(jiǎn)單的實(shí)用主義為導(dǎo)向:當(dāng)面對(duì)編程問(wèn)題時(shí),絕大多數(shù) Arduino 的開(kāi)發(fā)者使用諸如「Arduino Code for ......」之類的關(guān)鍵詞來(lái)進(jìn)行谷歌搜索——而不是使用其他的方法。通過(guò)選擇更為常用的名字,IEEE 讓統(tǒng)計(jì)的準(zhǔn)確性有所提高,避免了 Arduino 和類似的微控制器上很多內(nèi)容未被統(tǒng)計(jì)的情況。
在 HTML 上,反對(duì)意見(jiàn)仍然是:它不是真正的語(yǔ)言,因?yàn)樗鼪](méi)有分支或者循環(huán)結(jié)構(gòu)。但因?yàn)?HTML 和 CSS 在開(kāi)發(fā)者中的流行程度,以及它已經(jīng)占據(jù)了數(shù)以十億計(jì)的計(jì)算機(jī),任何關(guān)于圖靈完整性的學(xué)術(shù)論點(diǎn)都不是最重要的,標(biāo)記語(yǔ)言仍然是一種語(yǔ)言。
最后,一些較為古老的語(yǔ)言仍然處于活躍狀態(tài)。如已經(jīng)有 60 多年歷史的 Fortran 仍然排在了第 38 名,這可能是因?yàn)樵伎茖W(xué)計(jì)算語(yǔ)言仍然具有巨大的傳統(tǒng)力量。Fortran 語(yǔ)言仍在發(fā)展,最新的 Fortran 標(biāo)準(zhǔn)是在 2018 年末推出的,其中包括和 C 語(yǔ)言互操作性的改進(jìn)以及對(duì)于大規(guī)模并行化計(jì)算的支持優(yōu)化。