博客網址:https://medium.com/@md.kamaruzzaman/5-reasons-to-learn-a-new-programming-language-in-2020-bfc9a4b9a763
通常,你應該選擇一種能有助于你事業發展的編程語言。另外,你還可以學習一門受歡迎程度正在上升的語言。
我對主流編程語言非常尊重。但在這裏,我列出現代編程語言,這些語言可以提高你的工作效率,使你成爲一個更好的開發人員。此外,我還將涉及更廣泛的領域:系統編程,應用程序開發,網絡開發,科學計算。
圖片來源:Stackoverflow
我將以第一款 iPhone 發布的時候,也就是 2007 年 6 月 29 日作爲新舊編程語言之間的界限時間點。在 iPhone 發布之後,一切都發生了變化。在這個列表中,我主要考慮 2007 年後的編程語言。
文章網址:https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0
Rust
文章網址:https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842
主要特性:
-
通過所有權和借用的概念提供內存安全性和並發安全性。
-
內存安全和並發安全的編譯時間保證,即如果一個程序代碼編譯了,那麽它既是內存安全的,也沒有數據競爭。這是 Rust 最吸引人的特點。
-
它還提供了 ML,Haskell 的表示方式。Rust 具有不變的數據結構和函數式編程特性,提供函數式並發和數據並發。
-
Rust 的速度非常快。
-
由于沒有運行時,Rust 提供了對現代硬件(TPU、GPU、多核 CPU)的完全控制。
-
Rust 有 LLVM 支持。
受歡迎程度:
自 2015 年首次亮相以來,Rust 一直被開發者所喜愛,並在 StackOverflow 開發者調查中連續四年(2016、2017、2018、2019)被評爲最受歡迎的語言:
圖片來源:Octoverse
流行編程語言網站 PyPl 也將 Rust 排在第 18 位,並呈上升趨勢:
圖片來源:Google Trends
主要用在:
-
系統編程
-
無服務器計算
-
業務應用程序
主要競爭語言:
-
C
-
C++
-
Go
-
Swift
Go
圖片來源:Stackoverflow
根據 GitHub Octoverse 的統計,Go 也是增長最快的十大語言之一:
圖片來源:Google Trends
主要用例:
-
系統編程
-
無服務器計算
-
業務應用程序
-
雲本機開發
主要競爭語言:
-
C
-
C++
-
Rust
-
Python
-
Java
Kotlin
文章網址:https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0
多年來,像 Scala 這樣的 JVM 語言試圖回答 Java 的缺點,並希望成爲更好的 Java,但是失敗了。最後,Kotlin 出現了,尋找更好 Java 的旅程似乎已經結束。Jet Brains(流行 IDE IntelliJ 背後的公司)開發了 Kotlin,它運行在 JVM 上,解決了 Java 的缺點,並提供了許多現代特性。與 Scala 不同,Kotlin 比 Java 簡單得多,並在 JVM 中提供 Go 或 Python 式的開發效率。
谷歌宣布 Kotlin 是開發 Android 的一流語言,並提高了 Kotlin 在社區的接受度。同樣流行的 Java 企業框架 Spring 也從 2017 年開始在 Spring 生態系統中支持 Kotlin。
主要特性:
-
Kotlin 的 USP 是它的語言設計。我總是將 Kotlin 看作 JVM 上的 Go/Python,因爲它的代碼簡潔明了。因此,Kotlin 的生産效率很高。
-
與許多其他現代語言一樣,Kotlin 提供了空指針安全、類型推斷等功能。
-
因爲 Kotlin 在 JVM 中運行,因此你可以使用現存的 Java 庫龐大的生態系統。
-
Kotlin 是開發 Android 應用程序的一流語言,已經超越 Java 成爲開發 Android 應用程序的第一語言。
-
Kotlin 有 JetBrains 和開源的支持。所以,Kotlin 有很好的工具支持。
-
有兩個有趣的項目:Kotlin Native(將 Kotlin 編譯爲本機代碼)和 Kotlin.js(Kotlin 轉換爲 JavaScript)。如果他們成功了,那麽 Kotlin 可以在 JVM 之外使用。
-
Kotlin 還提供了一種編寫 DSL(領域特定語言)的簡單方法。
受歡迎程度:
自 2015 年首次發布以來,Kotlin 的受歡迎程度正在飙升。根據 Stack Overflow,Kotlin 是 2019 年第四受歡迎的編程語言:
圖片來源:Github Octoverse
熱門編程語言排名網站 PyPl 將 Kotlin 列爲第 12 位最受歡迎的編程語言,並有很高的上升趨勢:
圖片來源:Google Trends
主要用例:
-
企業應用程序
-
Android應用程序開發
主要競爭語言:
-
Java
-
Scala
-
Python
-
Go
TypeScript
圖片來源:Stackoverflow
TypeScript 是增長最快的 Web 編程語言之一,在 GitHub Octoverse 上排名第五:
圖片來源:Octoverse
TypeScript 在過去的一年中吸引了越來越多的眼球,這反映在 Google 趨勢上:
Steve Jobs 拒絕在 iOS 中支持 Java(和 JVM),因爲他認爲 Java 將不再是一種主要的編程語言。我們現在知道 Steve Jobs 對 Java 的評價是錯誤的,但是 iOS 仍然不支持 Java。相反,蘋果選擇 Objective-C 作爲 iOS 中的主流編程語言。Objective-C 是一門很難掌握的語言。而且,它具備現代編程語言所要求的高開發效率。
在蘋果,Chris Lattner 和其他人開發了 Swift ,它是一種多範式、通用、可編譯的編程語言,爲 Objective-C 提供了一種替代方案。Swift 的第一個穩定版本于 2014 年發布。Swift 還支持 LLVM 編譯器工具鏈(也由 Chris Lattner 開發)。Swift 與 Objective-C 代碼庫具有良好的互操作性,並且已經成爲 iOS 應用程序開發的主要編程語言。
主要特性:
-
Swift 的一個致命優點是它的語言設計。它使用更簡單、簡潔和幹淨的語法,爲 Objective-C 提供了一個更高效的替代方案。
-
Swift 還提供了現代程序語言的特性:null 安全性。
-
Swift 是一種編譯語言,它和 C++一樣快。
-
Swift 支持 LLVM 編譯器工具鏈。因此,我們可以在服務器端甚至浏覽器編程(使用 WebAssembly)中使用 Swift。
-
Swift 提供自動參考計數(ARC)支持,這樣可以限制內存管理不當。
受歡迎程度:
和許多其他現代語言一樣,開發人員也非常喜歡 Swift。根據 StackOverflow 的調查,Swift 在最受歡迎的編程語言中排名第六:
圖片來源:Google Trends
主要用例:
-
iOS 應用程序開發
-
系統編程
-
客戶端開發(通過 WebAssembly)
主要競爭語言:
-
Objective-C
-
Rust
-
Go
Dart
根據 TIOBE,Dart 居于第 23 位,僅僅 4 年時間,它已經超越了其它很多編程語言:
圖片來源:TIOBE index
它也是 StackOverflow 開發者調查中排名第 12 位的最受歡迎的編程語言之一:
圖片來源:Google Trends
主要用例:
-
應用程序開發
-
前端開發
主要競爭語言:
-
JavaScript
-
TypeScript
Julia
資料來源:Julia Presentation
Julia 是一種動態的高級編程語言,爲並發、並行和分布式計算提供一流的支持。Julia 的第一個穩定版本于 2018 年發布,很快就得到了社區和業界的青睐。Julia 可以應用于科學計算、人工智能等許多領域,最終解決「兩種語言」的問題。
特性:
-
和 Rust 一樣,Julia 的主要特點是語言的設計。它試圖在不犧牲性能的情況下,結合現有的編程語言在高性能和科學計算中的一些最佳特性。到目前爲止,它做得很好。
-
Julia 是一種可選類型的動態編程語言。因此,Julia 很容易學習,而且效率很高。
-
它以多分派編程範式爲核心。
-
它內置了對並發、並行和分布式計算的支持。
-
它還爲 I/O 密集型任務提供異步 I/O。
-
它速度非常快,可以用于需要數百萬線程的科學計算。
受歡迎程度:
在許多領域,Julia 主要與 Python 競爭。由于 Python 是最流行的編程語言之一,Julia 成爲主流還需要幾年時間。
Julia 相對年輕(只有一歲),但在 TIOBE index 中仍排在第 43 位:
圖片來源:TIOBE
Google Trends 也顯示出過去的時間裏,程序員對 Julia 的穩定興趣。