截至2020年,大約有700種編程語言可用[1]。其中一些傾向於僅適用於特定領域,而其餘一些則因其可以在各類應用中工做的能力而廣受讚揚。在過去的十年中,軟件的應用幾乎穩定增加,而且爲了知足需求而開發了新的語言。在本文中,咱們將探討數據科學和雲開發領域中一些最經常使用的編程語言和潛在的新星。算法
決定在業餘時間學習一種相對較新的編程語言有時多是對咱們時間的冒險投資,由於咱們不肯定將來幾年就業市場將如何看待這種新語言。另外一方面,在大多數狀況下,較新的編程語言都通過精心設計,以充分利用最新的技術進步,所以從長遠來看有可能爲咱們提供優點。所以,使用更新的編程語言的一些主要優勢多是:編程
· 硬件優化(GPU,多核CPU系統)。
· 改進的網絡。
· 更簡潔的代碼。
· 鍵入推斷。
· 更輕鬆的容器化和雲支持。服務器
根據2020年Stackoverflow開發人員調查[2],如下編程語言是2020年開發人員最喜歡的語言(圖1)。做爲本文的一部分,咱們將考慮其中的5個。網絡
Figure 1: Most loved programming languages
此外,根據Stackoverflow開發人員調查,這是2020年排名前10位的付費編程語言(圖2)。併發
Figure 2: Languages associated with the highest salaries worldwide
像Python和R這樣的編程語言因爲易於使用,如今在諸如數據科學,機器學習和通用計算/數字任務等領域很是流行。可是,這些語言最初並非爲在高度可擴展的系統上工做而設計的。所以,這對於大型企業解決方案而言,很難使用這種類型的編程語言。爲了克服這種類型的問題,Julia是由麻省理工學院(MIT)的一組研究人員建立的。朱莉婭的一些關鍵特徵是:框架
· 爲與並行和分佈式系統一塊兒使用而優化。機器學習
· 內置包管理器。編程語言
· 支持C編程功能。分佈式
· 動態鍵入。ide
爲了促進採用,已經實現了許多數據科學和機器學習庫,例如ScikitLearn.jl,TextAnalysis.jl,StatsModels.jl。此外,Julia還能夠在傳統的Jupyter筆記本中使用。若是您有興趣瞭解有關Julia的更多數據科學知識,那麼此YouTube課程是一個很好的起點。
從圖3能夠看出,在過去的幾年中,茱莉亞到目前爲止Google搜索的總體數量在增長。
Figure 3: Julia Google Trends [3]
Go是當今最有前途的系統編程語言之一。實際上,這種編程語言是Google開發的,目的是簡化應用程序和開發的規模。Go的一些關鍵特徵是:
· 專爲雲原生開發而設計。實際上,主流工具(例如Docker和Kubernetes)已使用Go開發。
· 內存管理(與C和C ++等語言不一樣,它具備嵌入式的Garbage Collector)。
· 出色的併發支持。
在2014年左右達到頂峯後,Go多年來一直在Google搜索量中保持一致。Go是當前在Cloud平臺(例如Google Cloud Platform和Microsoft Azure)上最受歡迎的編程語言之一。
Figure 4: Go Google Trends [3]
若是您對使用Go語言編寫機器學習算法感興趣,那麼GoLearn是一個很好的起點。
現在,Python是用於數據科學和機器學習任務的最受歡迎的編程語言。它是由Guido van Rossum於1991年首先開發的,此後它的受歡迎程度纔剛剛提升(圖5)。
Figure 5: Python Google Trends [3]
用於數據科學和機器學習的一些最受歡迎的Python庫是:
· Pandas
· Numpy
· scikit學習
· TensorFlow
· Pytorch
如前所述,與Python相關的關鍵問題之一是它的可伸縮性性能不佳。爲了嘗試解決此問題,已實現了不一樣的系統(例如Cython和Numba),以在使用Python進行編碼時建立相似C的性能級別。
目前,Scala被認爲是函數式編程的最佳編程語言之一(儘管它仍然提供對面向對象編程方法的支持)。就搜索受歡迎程度而言,Scala彷佛在2018–2019年間在Google搜索上達到頂峯(圖6)。
Figure 6: Scala Google Trends [3]
使用Scala的一些主要優勢是:
· Scala是一種靜態類型的語言。
· 與Python等編程語言相比,速度要快得多。
· 與Java的兼容性。
· 可以結合功能和麪向對象的編程。
Scala受歡迎的主要緣由之一是Apache Spark(使用Scala構建的數據管理工具)。實際上,Apache Spark是用於Hadoop集成(快速處理大量數據)的最受歡迎的大數據工具之一。
最後,JavaScript是目前最流行的網絡編程語言之一,幾乎能夠在任何類型的應用程序(例如服務器,移動設備,雲,微控制器等)上運行。
在網絡開發的早期,Javascript的普及率達到了頂峯,此後在過去十年中一直保持穩定的趨勢(圖7)。
Figure 7: Javascript Google Trends [3]
之因此將Javascript包含在此列表中,主要緣由之一是它可以在網絡上共享數據科學和機器學習項目。實際上,在過去的幾年中,已經開發了不一樣的框架,例如TensorFlow.js,ONNX.js,Plotly.js,Dash等,以便在以Python等編程語言建立的Web項目上可訪問。
整體而言,Python和Javascript無疑是目前最受歡迎的兩種編程語言。儘管,如本文所示,Julia,Go和Scala等不一樣的替代產品因爲其各類好處(如今的方式可能與過去十年中的Python相同)如今開始在就業市場上得到愈來愈多的關注。
(本文由聞數起舞翻譯自follow me on Medium的文章《Top 5 Programming Languages to bet on for 2021》,轉載請註明出處,原文連接:https://towardsdatascience.co...