我通過兩個(gè)表格總結(jié)了過去五年間編程語言的潮流趨勢。相關(guān)數(shù)據(jù)來源于 2015—2019 年 Stack Overflow 的調(diào)查結(jié)果。為了幫助讀者更加準(zhǔn)確地理解,我將編程語言分為兩組,第一組是 2000 年以前推出的編程語言,第二組是 2000 年以后推出的語言。雖然選擇 2000 年作為劃分界限是隨機(jī)的,但這對于理解兩組語言的發(fā)展趨勢非常有幫助。表格還列出了這些編程 / 腳本語言的起源年份與主要用途。 從 2018 年到 2019 年,除了 Python 以外,所有語言的流行度都在下滑。 Python 是過去五年以來唯一不斷上升的語言。它是一種通用語言。如果有人希望在 2020 年只學(xué)習(xí)一門編程語言,并想涵蓋更多的軟件開發(fā)領(lǐng)域,可以選擇 Python。 Java 一直在上升,但在 2019 年有所下降,原因是 Kotlin 在 Android 平臺(tái)上的普及。Java 現(xiàn)在屬于 Oracle,而谷歌正在推廣 Kotlin,因此 Java 面臨著很大的挑戰(zhàn)。事實(shí)上,由于其開發(fā)人員基礎(chǔ)、框架和遺留應(yīng)用程序,大量正在使用 Java 的公司仍會(huì)繼續(xù)使用 Java。 C 和 C++ 仍占有約 20% 的比例,由于其固有的功能和遺留系統(tǒng),它將會(huì)一直存在。 JavaScript 的受歡迎程度,可歸因于流行的 JavaScript 庫和 node.js 等框架的發(fā)展。JS 是動(dòng)態(tài)網(wǎng)站的語言。由于其活躍的開發(fā)者、Mozilla 的支持以及對庫和框架,它將成為未來幾年開發(fā)人員的首選。如果有人想要進(jìn)行 Web 開發(fā),Javascript 幾乎是必備的。 由于數(shù)據(jù)分析的增長和普及,近年來,R 越來越受歡迎。但與作為通用語言的 Python 相比,它落后許多,因?yàn)?Python 擁有大量數(shù)據(jù)科學(xué)庫和模塊的活躍開發(fā)人員。因此,如果必須選擇一個(gè),可以選擇 Python 而不是 R。但如果你希望在數(shù)據(jù)科學(xué)中有所建樹,那么同時(shí)學(xué)習(xí)兩門語言將是最理想的選擇。 與 PHP 一樣,Ruby 作為建立后端 Web 開發(fā)的編程語言,也面臨來自 JavaScript 甚至 Python 的競爭壓力。因此,對于 Web 開發(fā)來說,Javascript 和 Python 將是一個(gè)不錯(cuò)的選擇,并將提供比 Ruby 更好的靈活性。 2019 年,PHP 的流行度急劇下降,這可以追溯到服務(wù)器端對 Javascript 和 Python 的接受。但如果有人想要進(jìn)行服務(wù)器端 Web 開發(fā),PHP 仍是一個(gè)很好的選擇,因?yàn)樗写罅苛餍械目蚣?,?CakePHP,Codeigniter 等。對于其他類型的開發(fā),選擇通用編程語言會(huì)更好。 在 Apple 轉(zhuǎn)向到 Swift 之前,Objective-C 是 Apple 軟件(如 MacOS,iOS 等)的主要語言。根據(jù)流行程度數(shù)據(jù),Objective-C 的受歡迎程度在下降,而 Swift 則在上升。因此,如果有人想成為 Apple 的開發(fā)者,Swift 應(yīng)該是首選語言。 Swift 已經(jīng)取代了 Objective-C 作為 Apple 相關(guān)軟件和應(yīng)用程序的主要語言。由于蘋果公司的支持和推廣,從誕生到現(xiàn)在,它的受歡迎程度不斷提高,而且蘋果公司還將繼續(xù)推廣,所以如果有人正在尋找蘋果公司特有的開發(fā)工作,那么 Swift 將是他必須知道的編程語言。這門語言主要針對特定的供應(yīng)商和產(chǎn)品,所以很少在蘋果生態(tài)系統(tǒng)之外使用。 Go(Golang)在維護(hù)、使用和推廣方面越來越受到 Google 的歡迎。其開發(fā)目在于解決一些流行語言的問題,并吸收各種語言的精華。自 2017 年以來,Go 的人氣不斷上漲。在谷歌的支持下,它還將持續(xù)這一趨勢。在未來幾年,Go 將變得越來越易用,因此可以選擇 Go 作為一門新的學(xué)習(xí)對象。 Kotlin 正在成為替代 Java 的 Android 開發(fā)語言,它也受到了谷歌的支持和推動(dòng),逐漸受到開發(fā)者的青睞,在近年來越來越受歡迎。隨著 Android 的發(fā)展,Google 的支持,它將成為 Android 開發(fā)人員和學(xué)習(xí)者的理想選擇。Kotlin 將成為 Android 開發(fā)中的一門杰出的編程語言。 Scala 在試圖替代 Java,然而在開發(fā)人員中并沒有取得很好的效果。它沒有來自任何跨國公司的大力支持,被認(rèn)為是一種函數(shù)式語言,對 JVM 的依賴并沒有提供太大的普及空間。它可能會(huì)有穩(wěn)定的增長,但速度很慢,并且肯定不是初學(xué)者學(xué)習(xí)語言的好選擇。 Julia 旨在擁有 C 語言的速度和 Python 的簡單。奇怪的是,它在 Stackoverflow 的調(diào)查中并沒有受到關(guān)注。但它在數(shù)據(jù)科學(xué)領(lǐng)域很受歡迎,并且從長遠(yuǎn)來看被視為 R 和 Python 的挑戰(zhàn)者。雖然,Julia 會(huì)有增長,但 Python 或 R 更適合工作和發(fā)展。 C#是 .NET 框架的語言,由 Microsoft 開發(fā)。它的受歡迎程度在過去幾年幾乎保持不變,并將繼續(xù)保持這一趨勢。這是特定于供應(yīng)商的語言,因此如果想要在 Microsoft 開發(fā)環(huán)境中工作,可以選擇該語言。最近,微軟已開源 .NET 的源代碼,所以會(huì)有一些上升趨勢,但它同樣是特定于供應(yīng)商的,所以不會(huì)受到太大影響。 Rust、Clojure 等語言都有用戶基礎(chǔ),但并不那么受歡迎,所以肯定不會(huì)有上升趨勢。 讓我們通過圖表更清晰地了解頂級編程語言的發(fā)展趨勢。在舊的語言堆棧中,JavaScript 遠(yuǎn)遠(yuǎn)領(lǐng)先于其他語言,(這要?dú)w功于 Web 開發(fā)領(lǐng)域的快速發(fā)展),然后 C 和 C++ 一起與 Java 進(jìn)行競爭,結(jié)果漸漸接近。在過去五年中,Python 的流行度一直在上升,而且是唯一一門流行度不斷上升的語言。新的語言越來越受歡迎,其中大部分語言都得到了跨國公司的支持,如微軟、谷歌和蘋果等 IT 巨頭。 從上面的表圖中可以看出,在五種受人喜愛的語言中,有四種來自 2000 年后的小組,只有 Python 是較老的語言,人們對 Kotlin 的喜愛是從 2017 年后 Android 開發(fā)添加 Kotlin 開始的。 從上表可以看出,人們對 Javascript 和 Python 的開發(fā)意愿在過去幾年不斷增長。Java 的數(shù)量急劇下降,這是因?yàn)?Kotlin 成為了 Android 應(yīng)用程序開發(fā)的替代品。此外,Java 的擁有者 Oracle 改變了一些策略。 從圖中可以看出,最大的集群是用于 Web 開發(fā)和 JavaScript 的,它的各種框架主導(dǎo)著集群,這就是 JavaScript 增長的 USP。第二大集群是由微軟技術(shù)和 Python 技術(shù)組成的,這些技術(shù)再次證明了該語言的流行。Python 集群與數(shù)據(jù)科學(xué)技術(shù)相結(jié)合,突出了 Python 的發(fā)展歷程。 TIOBE 指數(shù)是根據(jù)搜索結(jié)果得出的編程語言排名。它通過計(jì)算最受歡迎的搜索引擎的點(diǎn)擊量來計(jì)算評級。使用的搜索查詢是 +“< language> programming”。在 TIOBE 指數(shù)中, Java 在過去二十年間始終占據(jù)主導(dǎo)地位。而 C 在過去三十年始終保持著第一或第二的位置。Python 在過去二十年里取得了長足的進(jìn)步,從 1999 年的第 24 位躍升到 2019 年的第 3 位。如果將 C 和 C++ 的結(jié)果合并,那么它將永遠(yuǎn)占據(jù)第一的位置。 在新的語言(2000 年后)中,Rust 的排名有所提升,從第 33 位升至第 28 位。Julia 從第 50 位升至第 39 位。值得注意的是,Kotlin 似乎并未進(jìn)入前 20 名。 PYPL 指數(shù) 是通過分析編程語言教程在谷歌的搜索頻率得出的。某一語言教程被搜索得越多,就越受歡迎。這是一個(gè)主要指標(biāo),原始數(shù)據(jù)來自 Google Trends。 下圖表明了最受歡迎的三種語言分別是 Python、Java 和 JavaScript。C#、PHP、C / C ++ 也處于很安全的位置,這種趨勢類似于 Stack Overflow 和 TIOBE 指數(shù)。 上圖顯示,2000 年后出現(xiàn)的新編程語言中,Kotlin、Go、Rust 和 Julia 均在排名中上升。
從上表可以看出,Go / Golang 在就業(yè)市場上是一項(xiàng)薪酬非常高的工作,在 Stack Overflow 2019 Survey 和 Dice Salary Survey 2018 的調(diào)查中排名第一。原因很簡單,Go 是谷歌支持的語言,其薪資可以與谷歌的薪資聯(lián)系起來。有一點(diǎn)要清楚,那就是價(jià)格彈性。它是一個(gè)經(jīng)濟(jì)術(shù)語,提供了不同場景對價(jià)格的影響。例如,產(chǎn)品數(shù)量少,價(jià)格上漲;產(chǎn)品可用性高,價(jià)格下跌。所以顯然,全球平均工資并不完全是你選擇語言的依據(jù)。例如,一種瀕臨滅絕的編程語言,仍會(huì)有少數(shù)遺留系統(tǒng),因此維護(hù)這些系統(tǒng)的公司往往會(huì)提供高昂的薪酬,但這些語言所提供的職位數(shù)量總是很少。主流語言提供了大量工作崗位,所以平均工資會(huì)有所下降。 總而言之,語言趨勢是很容易預(yù)測的,但選擇一門語言學(xué)習(xí)是一個(gè)非常艱難的過程,完全取決于個(gè)人的未來規(guī)劃。如果你想做 Web 開發(fā),那就不能忽視 JavaScript;如果你想研發(fā) Apple 的產(chǎn)品,你就不能忽視 Swift;如果你的興趣是系統(tǒng)級編程,那么 C 和 C ++ 是你的首選;Python 可以讓你在很多領(lǐng)域前進(jìn)得更快,但目前主要應(yīng)用于數(shù)據(jù)科學(xué)。每一種語言都將帶你踏上不同的旅程。所以,請記住,首先確定你的目的地,然后再選擇適合這條道路的編程語言,馳騁世界。 原文鏈接: https:///top-programming-languages-2020-stats-surveys 美團(tuán)外賣日單量超過 3000W,擁有近百萬騎手?jǐn)?shù)量,是全球最大的即時(shí)配送網(wǎng)絡(luò)。與大多數(shù)互聯(lián)網(wǎng)企業(yè)線上業(yè)務(wù)為主的模式不同,配送系統(tǒng)需要在現(xiàn)實(shí)世界中的真實(shí)環(huán)境和真實(shí)場景中“運(yùn)行”,最大的挑戰(zhàn)是需要對騎手所在的環(huán)境和場景做到實(shí)時(shí)感知、準(zhǔn)確理解和最優(yōu)決策,這也是近幾年行業(yè)經(jīng)常說的“數(shù)字化”和“智能化”技術(shù)。 |
|