2019編程語言排行榜出爐:在趨勢、開源與職位需求上,Python都排第一

IEEE Spectrum 剛剛發佈了第六屆編程語言排行榜。在新的排名方式下,Python 再次名列第一,並且與第二名的差距正在加大。名列後幾位的分別是 Java、C 語言、C++和 R 語言。git

做者 | Stephen Cass
編譯 | 機器之心

這是 IEEE Spectrum 的第六次年度編程語言排行統計。今年的統計進行了重大改革,一些基礎指標進行了重構,而最終的排行榜也進一步獲得了簡化。但其基本理念讓仍然相同:將多個數據源的編程語言流行度排名結合起來,得出目前業內人們關注度最高的語言。程序員

這些信息來源包括谷歌搜索、谷歌趨勢、推特、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder、IEEE Job Site 和 IEEE Xplore Digital Library。編程

對於編程語言的統計而言,人們總會面臨兩個主要問題:(1)理論上沒有人能夠審查全部程序員正在敲的代碼屬於哪一種語言;(2)有些時候,一種語言是另外一種的基礎,有的時候兩種語言所使用的領域徹底沒有相關性。IEEE 的榜單致力於解決這些問題,呈現出最爲準確的編程語言流行程度排行。統計者們從 8 種信息渠道獲取數據,並設定了 11 種排名方式——這些指標是過濾語言排名的最優方式——而後將全部結果以不一樣權重結合起來,得到了最終的排名。固然,若是你對於權重有異議,也能夠在 IEEE 的可交互頁面上設置本身想要的權重:小程序

在 IEEE Spectrum 網站上,你能夠根據本身的需求設定權重,得到不一樣的編程語言排名。框架

在 IEEE 的默認設置之下,對找工做有利的排行方式得到了更高的權重。雖然標準的變化讓今年的統計結果和往年有所不一樣,不過總體看來趨勢仍是同樣的:Python 在全部分項目中都名列榜首。Python 如此受到人們歡迎很大程度上是由於存在大量專用的工具庫做爲支持,尤爲是在人工智能(AI)領域。Keras 是每一個進入人工智能、特別是深度學習領域的開發者所熟知的庫:它提供了 TensorFlow、CNTK 和 Theano 深度學習框架的友好界面和工具包。固然,深度學習也不是 Python 的惟一應用方向,並且在 1991 年首次推出時也預料不到會對深度學習產生影響。隨着微控制器上算力的急劇增加,CircuitPython 和 MicroPython 等嵌入式 Python 版本愈來愈受到製造商們的歡迎。編程語言

排在 Python 以後的是 Java、C 語言和 C++,這是一組長期爭奪第二名的語言——儘管 IEEE 調整了指標,這些語言與 Python 之間的差距仍是在越拉越大。C++的分數落後於 Python 12.5 分(在全部排名中,第一名的編程語言爲 100 分,排在其後的語言以頭名爲標準依次遞減)。主要用於數學計算的語言 R 排名來到了第五。儘管 R 語言相比其餘對手專業性很高,但因爲大數據的應用愈發普遍,近年來它的流行程度一直在提升。工具

在前 10 名中,由 MathWorks 開發並用於數值計算的專用語言 Matlab 的出現着實有些出乎預料,但這簡單明瞭地反映了編程語言在硬件工程中的突出地位——特別是那些對經過 MathWorks 的圖形化 Simulink 軟件包運行模擬或建立控制系統的人而言。學習

在第 10 名如下,還有一些值得一提的語言,其中包括在 11 位的 Arduino 和第 12 位的 HTML/CSS。在此前的統計中,部分人認爲它們不該出如今榜單之中:由於不存在這樣的語言,而「Arduino」其實是某種語言運行的一系列硬件平臺的名稱,而這種語言應該被稱爲 Wiring(有時它們也被歸類爲 C 語言或 C++的一種)。IEEE 表示,在這方面咱們應當以簡單的實用主義爲導向:當面對編程問題時,絕大多數 Arduino 的開發者使用諸如「Arduino Code for ......」之類的關鍵詞來進行谷歌搜索——而不是使用其餘的方法。經過選擇更爲經常使用的名字,IEEE 讓統計的準確性有所提升,避免了 Arduino 和相似的微控制器上不少內容未被統計的狀況。大數據

在 HTML 上,反對意見仍然是:它不是真正的語言,由於它沒有分支或者循環結構。但由於 HTML 和 CSS 在開發者中的流行程度,以及它已經佔據了數以十億計的計算機,任何關於圖靈完整性的學術論點都不是最重要的,標記語言仍然是一種語言。優化

最後,一些較爲古老的語言仍然處於活躍狀態。如已經有 60 多年曆史的 Fortran 仍然排在了第 38 名,這多是由於原始科學計算語言仍然具備巨大的傳統力量。Fortran 語言仍在發展,最新的 Fortran 標準是在 2018 年底推出的,其中包括和 C 語言互操做性的改進以及對於大規模並行化計算的支持優化。


搜索·進入小程序,解鎖更多精彩資訊和專業內容!

相關文章
相關標籤/搜索