除了 Python 之外,從 2018 年到 2019 年所有語言的流行度都在下降。1. PythonPython 是過去五年來人氣不斷上升的唯一語言。這是一門通用語言,如果你希望在 2020 年只學習一門程式語言,並希望涵蓋更廣泛的軟體開發領域,不妨考慮 Python。2. JavaJava 的市場佔有率一直在不斷上升,但在 2019 年有所下降,原因是背靠 Google 的 Kotlin 在 Android 開發領域獲得了極大的普及。毫無疑問 Java 是一個不錯的選擇,但它現在屬於 Oracle 公司,由於公司的商業利益衝突,谷歌正在推廣 Kotlin。事實上,由於使用 Java 的龐大開發群體、框架和遺留應用程式,大量公司仍在使用 Java 並將繼續使用 Java。3. C/C++C 和 C++ 仍然保持著大約 20% 的市場佔有率,並且由於其固有的功能和遺留系統,它將會繼續存在。4. JavaScriptJavaScript 的受歡迎程度可歸因於諸如 Node.js 等流行的 JavaScript 庫和框架的增長。JavaScript 是用於構建動態網站的語言,它將成為未來幾年 Web 開發的首選語言。而且,如果我們想要進行 Web 開發,絕對無法繞開 JavaScript。5. R 語言R 語言近年來越來越受歡迎,原因在於資料分析需求的增長和普及。R 語言主要是資料科學家在使用,與 Python 這種通用語言相比,它擁有貢獻了大量資料科學庫和模組的活躍開發者。不過如果只能選一個的話,相信更多的資料科學家會傾向於 Python。6. Ruby與 PHP 一樣,在 Web 開發的後端構建方面,Ruby 也面臨來自 JavaScript 甚至 Python 的激烈競爭。因此,對於 Web 開發而言,JavaScript 和 Python 會是比 Ruby 更好的選擇(Python 的服務端框架 Flask 和 Django),而且更加靈活。7. PHP2019 年,PHP 流行度急劇下降,這可以追溯到伺服器端對 JavaScript 和 Python 的接受程度。如果有人想要進行伺服器端 Web 開發,PHP 仍然是一個很好的選擇 —— 有大量流行的框架,如 CakePHP,Codeigniter 等,否則選擇通用程式語言會更好。8. Objective-C在 Apple 遷移到 Swift 語言之前,Objective-C 是開發 Apple 軟體(如 macOS,iOS 等平臺)的主要語言。因此,這種轉變反映在兩種語言的流行中,即 Objective-C 的受歡迎程度下降,而 Swift 的普及率正在上升。所以,如果有人希望成為 Apple 產品的開發者,Swift 理所當然應該是首選語言。
第二組觀察結果
1. Swift
Swift 取代了 Objective-C 作為 Apple 相關軟體和應用程式開發的主要語言。由於 Apple 的支援推廣,因此自成立以來 Objective-C 的受歡迎程度越來越高,Apple 也將繼續使用它。如果有人正在尋找特定於 Apple 的開發平臺,那麼 Swift 將成為一種必須知道的程式語言。不過 Swift 主要是面向特定供應商和產品的語言,在 Apple 生態系統之外的使用率非常低。2. GoGoogle 不斷地在維護、使用和推廣 Go 語言。而它最初的開發動機是解決對一些流行語言的不足,同時將最好語言的特性集於一身。自 2017 年以來,Go 的受歡迎程度越來越高,並且在 Google 的支援下,它在未來幾年內都將會繼續保持高速發展。Google 也將 Go 作為新專案的主要語言並用 Go 取代其他語言,這種趨勢在未來幾年會繼續保持,因此如果想學習一門新的程式語言,Go 值得擁有。3. KotlinKotlin 最初作為用於 Android 開發的 Java 替代方案而迅速“上位”。憑藉著 Android 的增長、Google 的支援以及其簡潔的語法,它成為了 Android 開發者的一個可選方案,更是學習 Android 開發的不錯選擇。Kotlin 將成為 Android 開發的“最優”方案。4. ScalaScala 試圖取代 Java,但開發者似乎不太認可。它沒有來自任何大公司的大力支援,另外,由於 Scala 是一門函數語言程式設計語言,以及對 JVM 的依賴,使得它並沒有得到太多的普及,雖然會有穩定的增長,但速度很慢,而且肯定不是適合初學者學習的語言。5. JuliaJulia 旨在將 C 的速度和 Python 的簡便整合在一起,但奇怪的是,在 Stackoverflow 調查中並沒有體現 Julia 的受歡迎程度,但它在資料科學領域頗受歡迎,並且從長遠來看它也被視為 R 和 Python 的挑戰者。當然,Julia 會繼續增長,但對於工作和成長來說,Python 或 R 更好。6. C#C# 是用於 .NET 框架的程式語言,由微軟開發。它的受歡迎程度在過去幾年中基本保持不變,並將繼續保持類似的趨勢。這是特定於供應商的語言,因此如果需要在微軟提供的開發環境中工作,可以選擇此語言。最近,微軟已開源 .NET,因此它會出現一些上升趨勢,但它畢竟是特定於供應商的,因此不會受到太大影響。7. RustRust,Clojure 等是具有使用者基礎但不那麼流行的語言,所以人氣方面不會有太大的上升。
一圖勝千言
要了解頭部程式語言增長的清晰趨勢和現狀,可通過各種圖表來了解它。下圖描繪了一個非常清晰的現狀,即在舊的語言棧中,JavaScript 遠遠領先於其他的語言,並且將繼續在 Web 開發中佔據一席之地。C 和 C++ 共同與 Java 競爭,並且非常接近後者的地位。Python 的受歡迎程度也越來越高,而且在過去的五年裡,它是唯一一個人氣不斷上升的語言。新語言越來越流行,其中大多數語言都受到跨國公司如微軟、Google 和 Apple 等 IT 巨頭的支援。
薪酬取決於產品的地理區域和需求,基於程式語言的薪資比較只是預測或估計薪資趨勢的工具。我們根據程式語言的流行調查對薪資進行了彙總,即 2018 年的 Dice 薪資調查和 2018 年和 2019 年的 Stackoverflow 薪資調查。從上表可以看出,Go 開發是市場上薪酬非常高的工作,在 2019 年的 Stackoverflow 調查和 2018 年 Dice 薪資調查中,它都在高薪工作中排名第一。原因其實很簡單,因為 Go 是 Google 支援的語言,主要用於 Google 內部,另外 Google 希望推廣這種語言所以自然會用高薪來吸引開發者。這裡要提一個經濟術語——價格彈性,企業對崗位的需求具有彈性,這就導致崗位的薪酬不穩定。因此很明顯,全球平均工資不是選擇語言的合理因素。假如存在一門接近衰亡的程式語言,但應用它的遺留系統很少,因此為了維護這些產品,公司往往提供非常高的薪酬,不過這些職位總是十分稀有。另一方面,由於主流語言提供了大量的工作崗位,平均工資自然就會下降。作為結束語,可以看到預測程式語言的趨勢十分簡單,但只選擇一門語言來學習是一個非常艱難的抉擇,這完全取決於個人選擇和他們未來的計劃。例如,如果你想從事 Web 開發工作,那麼你就不能忽視 Javascript;如果你想從事 Apple 產品的開發工作,絕對不能無視 Swift;如果你青睞於系統的底層開發,那麼 C 和 C++ 會是你的好朋友。Python 則會讓你在很多領域跑得更快,不過目前主要用於資料科學。所以,每種語言都會帶您踏上不同的旅程。選擇目的地,你需要做的就是使用通往終點的語言。