2021年最熱門的5種編程語言
介紹
截至2020年,大約有700種編程語言可用。其中一些傾向于僅適用于特定領(lǐng)域,而其他一些則因其能夠在各種應(yīng)用中工作的能力而廣受贊賞。在過去的十年中,軟件的應(yīng)用幾乎穩(wěn)定增長,并且為了滿足需求而開發(fā)了新的語言。在本文中,我們將探討數(shù)據(jù)科學(xué)和云開發(fā)領(lǐng)域中一些最常用的編程語言和潛在的新星。
決定在業(yè)余時間學(xué)習(xí)一種相對較新的編程語言有時可能是對我們時間的冒險投資,因為我們不確定未來幾年就業(yè)市場將如何看待這種新語言。另一方面,在大多數(shù)情況下,較新的編程語言都經(jīng)過精心設(shè)計,以充分利用最新的技術(shù)進(jìn)步,因此從長遠(yuǎn)來看有可能為我們提供優(yōu)勢。因此,使用更新的編程語言的一些主要優(yōu)點可能是:
- 硬件優(yōu)化(GPU,多核CPU系統(tǒng))。
- 改進(jìn)的網(wǎng)絡(luò)。
- 更簡潔的代碼。
- 鍵入推斷。
- 更輕松的容器化和云支持。
根據(jù)2020年Stackoverflow開發(fā)人員調(diào)查,以下編程語言是2020年開發(fā)人員最喜歡的語言(圖1)。作為本文的一部分,我們將考慮其中的5個。
> Figure 1: Most loved programming languages
此外,根據(jù)Stackoverflow開發(fā)人員調(diào)查,這是2020年排名前10位的付費編程語言(圖2)。
> Figure 2: Languages associated with the highest salaries worldwide
編程語言
Julia
像Python和R這樣的編程語言由于易于使用,現(xiàn)在在諸如數(shù)據(jù)科學(xué),機(jī)器學(xué)習(xí)和通用計算/數(shù)字任務(wù)等領(lǐng)域非常流行。但是,這些語言最初并不是為在高度可擴(kuò)展的系統(tǒng)上工作而設(shè)計的。因此,這對于大型企業(yè)解決方案而言,很難使用這種類型的編程語言。為了克服這種類型的問題,Julia是由麻省理工學(xué)院(MIT)的一組研究人員創(chuàng)建的。朱莉婭的一些關(guān)鍵特征是:
- 為與并行和分布式系統(tǒng)一起使用而優(yōu)化。
- 內(nèi)置包管理器。
- 支持C編程功能。
- 動態(tài)鍵入。
為了促進(jìn)采用,已經(jīng)實現(xiàn)了許多數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)庫,例如ScikitLearn.jl,TextAnalysis.jl,StatsModels.jl。此外,Julia還可以在傳統(tǒng)的Jupyter筆記本中使用。如果您有興趣了解有關(guān)Julia的更多數(shù)據(jù)科學(xué)知識,那么此YouTube課程是一個很好的起點。
從圖3可以看出,在過去的幾年中,茱莉亞到目前為止Google搜索的整體數(shù)量在增加。
> Figure 3: Julia Google Trends [3]
Go
Go是當(dāng)今最有前途的系統(tǒng)編程語言之一。實際上,這種編程語言是Google開發(fā)的,目的是簡化應(yīng)用程序和開發(fā)的規(guī)模。Go的一些關(guān)鍵特征是:
- 專為云原生開發(fā)而設(shè)計。實際上,主流工具(例如Docker和Kubernetes)已使用Go開發(fā)。
- 內(nèi)存管理(與C和C ++等語言不同,它具有嵌入式的Garbage Collector)。
- 出色的并發(fā)支持。
在2014年左右達(dá)到頂峰后,Go多年來一直在Google搜索量中保持一致。Go是當(dāng)前在Cloud平臺(例如Google Cloud Platform和Microsoft Azure)上最受歡迎的編程語言之一。
> Figure 4: Go Google Trends [3]
如果您對使用Go語言編寫機(jī)器學(xué)習(xí)算法感興趣,那么GoLearn是一個很好的起點。
Python
如今,Python是用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)任務(wù)的最受歡迎的編程語言。它是由Guido van Rossum于1991年首先開發(fā)的,此后它的受歡迎程度才剛剛提高(圖5)。
> Figure 5: Python Google Trends [3]
用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的一些最受歡迎的Python庫是:
- Pandas
- Numpy
- scikit學(xué)習(xí)
- TensorFlow
- Pytorch
如前所述,與Python相關(guān)的關(guān)鍵問題之一是它的可伸縮性性能不佳。為了嘗試解決此問題,已實現(xiàn)了不同的系統(tǒng)(例如Cython和Numba),以在使用Python進(jìn)行編碼時創(chuàng)建類似C的性能級別。
Scala
目前,Scala被認(rèn)為是函數(shù)式編程的最佳編程語言之一(盡管它仍然提供對面向?qū)ο缶幊谭椒ǖ闹С?。就搜索受歡迎程度而言,Scala似乎在2018–2019年間在Google搜索上達(dá)到頂峰(圖6)。
> Figure 6: Scala Google Trends [3]
使用Scala的一些主要優(yōu)點是:
- Scala是一種靜態(tài)類型的語言。
- 與Python等編程語言相比,速度要快得多。
- 與Java的兼容性。
- 能夠結(jié)合功能和面向?qū)ο蟮木幊獭?/li>
Scala受歡迎的主要原因之一是Apache Spark(使用Scala構(gòu)建的數(shù)據(jù)管理工具)。實際上,Apache Spark是用于Hadoop集成(快速處理大量數(shù)據(jù))的最受歡迎的大數(shù)據(jù)工具之一。
JavaScript
最后,JavaScript是目前最流行的網(wǎng)絡(luò)編程語言之一,幾乎可以在任何類型的應(yīng)用程序(例如服務(wù)器,移動設(shè)備,云,微控制器等)上運行。
在網(wǎng)絡(luò)開發(fā)的早期,Javascript的普及率達(dá)到了頂峰,此后在過去十年中一直保持穩(wěn)定的趨勢(圖7)。
> Figure 7: Javascript Google Trends [3]
之所以將Javascript包含在此列表中,主要原因之一是它能夠在網(wǎng)絡(luò)上共享數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)項目。實際上,在過去的幾年中,已經(jīng)開發(fā)了不同的框架,例如TensorFlow.js,ONNX.js,Plotly.js,Dash等,以便在以Python等編程語言創(chuàng)建的Web項目上可訪問。
結(jié)論
總體而言,Python和Javascript無疑是目前最受歡迎的兩種編程語言。盡管,如本文所示,Julia,Go和Scala等不同的替代產(chǎn)品由于其各種好處(現(xiàn)在的方式可能與過去十年中的Python相同)現(xiàn)在開始在就業(yè)市場上獲得越來越多的關(guān)注。