IEEE Spectrum 編程語(yǔ)言排行榜一年發(fā)布一次,這個(gè)排行榜已經(jīng)連續(xù)發(fā)布了六年。每個(gè)開(kāi)發(fā)者都需要相對(duì)流行的網(wǎng)站統(tǒng)計(jì)數(shù)據(jù),與其他的語(yǔ)言排行榜不同,IEEE Spectrum 可以讓開(kāi)發(fā)者自己選擇參數(shù)組合時(shí)的權(quán)重,得到多樣的排序結(jié)果。
而且 IEEE Spectrum 今年進(jìn)行了重大改革,針對(duì)求職者內(nèi)置了一些預(yù)設(shè)的權(quán)重,改變了一些基礎(chǔ)指標(biāo),從 8 個(gè)數(shù)據(jù)源的 11 個(gè)指標(biāo)中獲取數(shù)據(jù)。程序員還可以應(yīng)用篩選器,以排除不感興趣的領(lǐng)域編程語(yǔ)言,這樣一來(lái),結(jié)果會(huì)顯得更鮮明。但是,基本的思想和方法仍然相同:將多個(gè)來(lái)源的數(shù)據(jù)組合起來(lái),對(duì)編程語(yǔ)言的流行程度進(jìn)行排名。
那么下面,讓我們看看今年的排名是怎樣的,流行的趨勢(shì)又是否有所變化呢?
IEEE Spectrum?2019 十大編程語(yǔ)言排行如下:
Python穩(wěn)居榜首,且連續(xù)奪冠三年
盡管基本指標(biāo)有所變化,但總體的結(jié)果仍然相似,Python 始終處于領(lǐng)先地位。Python 的流行在很大程度上是受了大量可用專用庫(kù)的驅(qū)動(dòng),特別是在人工智能領(lǐng)域中。事實(shí)上,Keras 庫(kù)對(duì)深度學(xué)習(xí)開(kāi)發(fā)人員影響很大。但是深入學(xué)習(xí)并不是Python 產(chǎn)生巨大的影響的唯一領(lǐng)域,微處理器計(jì)算能力的顯著提高意味著嵌入式版本的 Python:如 CircuitPython 和 MicroPython,正越來(lái)越受制造商的歡迎。
而 Python 為何能連續(xù)三年奪冠?
Python 的高速發(fā)展主要原因是軟件工程的蓬勃發(fā)展,它吸引了許多零基礎(chǔ)的初學(xué)者。Java 的編程方法對(duì)于初學(xué)者來(lái)說(shuō)太冗長(zhǎng)了,單單想要完全理解和運(yùn)行在 Java 中的“hello world”這樣的簡(jiǎn)單程序,你就需要去了解類、靜態(tài)方法和包。在 C 語(yǔ)言中,這要簡(jiǎn)單一些,但是在內(nèi)存管理上還是會(huì)出現(xiàn)一些問(wèn)題。但在 Python 這里,就只是一行代碼的事。所以,Python 越來(lái)越流行,被越來(lái)越多的開(kāi)發(fā)者使用。
Java、C 和 C++ 的戰(zhàn)局
排在二三四名的是 Java、C 和 C++,這個(gè)小組的成員長(zhǎng)期互相爭(zhēng)斗,無(wú)論在哪個(gè)排行榜都是你來(lái)我往,但都被Python穩(wěn)壓一頭。而且在調(diào)整了指標(biāo)后,這之間的距離有所擴(kuò)大,C++比Python低了12.5。而Java從去年的第四名回升到了第二名,三者的排名和去年的剛好相反。
那么 Java 為什么依然能榮登第二呢?
第一,Java 語(yǔ)言依然是被最廣泛使用的編程語(yǔ)言之一。目前 Java 語(yǔ)言在 Web 開(kāi)發(fā)領(lǐng)域、Android 開(kāi)發(fā)領(lǐng)域、大數(shù)據(jù)開(kāi)發(fā)領(lǐng)域以及各種后端服務(wù)開(kāi)發(fā)領(lǐng)域都有廣泛的用戶基礎(chǔ),可以說(shuō) Java 語(yǔ)言的生態(tài)環(huán)境已經(jīng)比較健全了,這種情況下,采用 Java 語(yǔ)言將會(huì)明顯降低程序開(kāi)發(fā)的風(fēng)險(xiǎn),因此 Java 語(yǔ)言將依然是軟件團(tuán)隊(duì)最為常見(jiàn)的選擇之一。
第二,隨著 5G 標(biāo)準(zhǔn)的逐漸落地,未來(lái)物聯(lián)網(wǎng)的發(fā)展將會(huì)迎來(lái)更多的機(jī)會(huì),而物聯(lián)網(wǎng)的發(fā)展必將帶動(dòng)大數(shù)據(jù)、云計(jì)算、人工智能領(lǐng)域的發(fā)展,而 Java 在這些領(lǐng)域都有比較廣泛的應(yīng)用,所以未來(lái) Java 語(yǔ)言在產(chǎn)業(yè)互聯(lián)網(wǎng)階段,也會(huì)有比較普遍的應(yīng)用。
如下是去年 TOP 10 排名:
Swift沖至第九名!
對(duì)比去年的榜單,PHP?在前十的排名中已經(jīng)不見(jiàn)蹤影,Go?則下跌了一個(gè)名次。
另外,去年不在榜單上的?Swift,今年沖到了第九名,這是為何?
Swift?是由蘋果創(chuàng)建的強(qiáng)大而直觀的編程語(yǔ)言,它的使命是用于構(gòu)建蘋果體系內(nèi)的應(yīng)用程序。而且Swift 可以在蘋果體系內(nèi)的所有平臺(tái)上構(gòu)建應(yīng)用程序,諸如iOS、Mac、Apple TV 和 Apple Watch。
蘋果公司為了順應(yīng)時(shí)代于 2014 年推出了 Swift 語(yǔ)言,目前已經(jīng)是第四個(gè)版本了。Swift 優(yōu)勢(shì)在于融合了現(xiàn)代語(yǔ)言特性,是一門非常容易學(xué)習(xí)的語(yǔ)言。而且經(jīng)過(guò)這 5 年發(fā)展,Swift 生態(tài)圈基本成熟,目前有大量的開(kāi)源代碼可供使用。
而且,2019 年 WWDC 大會(huì)上,蘋果在壓軸環(huán)節(jié)向大眾宣布了基于 Swift 語(yǔ)言構(gòu)建的全新 UI 框架 ——?SwiftUI。開(kāi)發(fā)者可通過(guò)它快速為所有的 Apple 平臺(tái)創(chuàng)建美觀、動(dòng)態(tài)的應(yīng)用程序。在介紹過(guò)程中,蘋果公司軟件工程高級(jí)副總裁 Craig Federighi 演示了如何將一百行代碼簡(jiǎn)化為大約十幾行。
從以上的信息可以看出?Swift?的發(fā)展趨勢(shì),而今年的排行榜也證明了這一點(diǎn)。
R 語(yǔ)言為何能上升?
數(shù)字運(yùn)算語(yǔ)言?R 今年排名第五,比去年上升了兩名,盡管它是一種比其他語(yǔ)言更專業(yè)的語(yǔ)言,但伴隨著越來(lái)越多的大數(shù)據(jù),近年來(lái)一直保持著它的流行度。
雖說(shuō) R 語(yǔ)言常年被 Python 打壓,可仍然比去年提升了兩名,這要得益于它的幾個(gè)特性:
- 命令模式。Python 雖然也支持命令模式,但是相對(duì)來(lái)說(shuō),更偏向于流程控制語(yǔ)句。R 本身基本上不需要用到流程控制(當(dāng)然,它也支持流程控制)。
- 交互性。這是命令模式的一個(gè)特點(diǎn),敲回車,出結(jié)果,但是又不像 SPSS那種用鼠標(biāo)扎針的交互方式。
- 統(tǒng)計(jì)學(xué)特性。這是 R 語(yǔ)言最大的特點(diǎn),比如:
- 賦值的時(shí)候,不用等號(hào)(=),用的是指向(<-),帶來(lái)的問(wèn)題就是要寫 a < -5?這種語(yǔ)句,就需要 a < (-5)? 這樣寫。
其他編程語(yǔ)言排名
正如文章開(kāi)頭所述,除了默認(rèn)的權(quán)重產(chǎn)生的排行榜之外,IEEE Spectrum 還提供了用戶增速趨勢(shì)、就業(yè)需求、開(kāi)源、自定義這四個(gè)選項(xiàng),開(kāi)發(fā)者可根據(jù)自身需求或興趣查看排行榜。
IEEE Spectrum 完整的排行榜:Matlab 位居第八,F(xiàn)ortran38 位
位居第八,由 MathWorks 開(kāi)發(fā)并用于數(shù)值計(jì)算的專有語(yǔ)言?Matlab?的出現(xiàn)可能讓一些人驚訝,它反映了該語(yǔ)言在硬件工程中的突出地位,特別是對(duì)于那些對(duì)運(yùn)行模擬感興趣或者通過(guò) MathWorks 的圖形?Simulink 包創(chuàng)建控制系統(tǒng)的用戶。
在前 10 名之下,有一些值得注意的,尤其是?Fortran,盡管已有 60 多年的歷史,仍然排在第38 位,可見(jiàn)原始科學(xué)計(jì)算語(yǔ)言依然具有巨大的傳統(tǒng)力量。并且,隨著?2018 年最新?Fortran 標(biāo)準(zhǔn)的發(fā)布,該語(yǔ)言仍在積極開(kāi)發(fā)中。
用戶增速編程語(yǔ)言排行榜:JavaScript上升
隨著 Nodejs 的大面積使用,前端開(kāi)發(fā)后端化是一個(gè)較為明顯的趨勢(shì),JavaScript 正在從傳統(tǒng)的前端開(kāi)發(fā)走向后端開(kāi)發(fā),這對(duì) Java 語(yǔ)言的應(yīng)用也會(huì)造成一定的影響。目前 JavaScript 的開(kāi)源項(xiàng)目非常多,這在一定程度上也促進(jìn)了 JavaScript 的應(yīng)用和發(fā)展,所以對(duì)于 Java 程序員來(lái)說(shuō),未來(lái)掌握J(rèn)avaScript 也是有一定必要的。
就業(yè)需求編程語(yǔ)言排行榜:PHP下滑
AI和大數(shù)據(jù)時(shí)代的趨勢(shì)很大,Python 開(kāi)發(fā)者人數(shù)正在增加,人工智能時(shí)代 PHP確實(shí)有點(diǎn)尷尬,導(dǎo)致很多人各種原因轉(zhuǎn)了 Python, 10~15 年后還有多少 PHP 開(kāi)發(fā)者不得而知,或者 PHP 找到了新的切入點(diǎn),就像沉默了幾十年的Python 如今找到了自己的歸屬地一樣,需要時(shí)間來(lái)檢驗(yàn)。
開(kāi)源編程語(yǔ)言排行榜:Python、Java、C、C++?位置依然堅(jiān)挺
該排行榜中,前四名相對(duì)去年排名并沒(méi)有變化,依舊是 Python、Java、C、C++。其中 Java 上升了一位,排名第二;其次,素有世界上最好編程語(yǔ)言之稱的 PHP 下降至11 名。
值得一提的是 JavaScript 上升了 3 名,現(xiàn)在是第五名。
更多詳細(xì)內(nèi)容詳見(jiàn) IEEE Spectrum 官網(wǎng):
https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019