JavaScript 力壓 Java 成最受歡迎程式語言,TypeScript 大漲!
在多種趨勢榜單中,Java、C、Python 已成程式語言界的新任“鐵三角”。而在開發者日常使用以及討論中,程式語言又有什麼樣的現狀?
近日,一年僅釋出兩次程式語言榜單的美國知名軟體開發者行業分析公司 RedMonk 正式釋出了 2019 年 Q1 季度的程式語言排行榜。與此前一月一發的 TIOBE 程式語言榜單不同,RedMonk 的程式語言排行榜資料主要來源於開發者最常使用的程式碼分享之 GitHub 社群和討論之 Stackoverflow 社群。
其中 GitHub 的資料來源是 GitHub Archive,而 Stack Overflow 則是基於 data explorer 工具收集所需的指標,以便開發者可深入瞭解潛在程式語言的未來應用趨勢。
下面,我們就來一起看一下這份榜單。
2019 年 1 月釋出
細細看來,該程式語言排行榜的 Top 20 如下所示:
1. Java
2. Java
3. Python
4. PHP
5. C#
6. C++
7. CSS
8. Ruby
9. C
10. Objective-C
11. Swift
12. Type
13. Scala
14. Shell
15. Go
15. R
17. PowerShell
18. Perl
19. Haskell
20. Kotlin
從中我們發現,最受歡迎的不是在企業級應用程式中使用最多的 Java,而是 Java。此外,和去年 6 月,RedMonk 釋出的程式語言排行榜相比,新的榜單並沒有過多的浮動。
2018 年 6 月
事實上,一般來說,程式語言排行榜的前 10-12 種語言,每月甚至於每年幾乎都沒有太大的變化。雖然在如 GitHub 或者 Stack Overflow 等平臺上,開發者在開發時所使用的技術每年可能會根據興趣愛好或者專案需求發生一定的變化,但是主流且可獲得高收益的程式語言就那麼幾種,這樣的現狀也導致新的語言想要在一堆強勁競爭的主流程式語言中提升排名越來越難。
不過在此次最新的榜單中,還是有幾個值得我們關注的一些變化:
- Type,和去年排行榜相比,上升了四個名次,位列第 12 名。在此也如上文所述,在如今幾大主流程式語言當道之時,其他程式語言排名上升實屬不易,而通過一年的時間,Type 可以上升四個名次,這也是為什麼其會如此值得我們關注的原因。而考量其中緣由,也必然和排名第一的 Java 不無關係。眾所周知,Type 是 Java 型別的超集,它可以編譯成純 Java,同時在安全功能,如可選的靜態型別檢查等方面有很大的提升。但是僅憑功能特性本身不足以快速推動語言的發展,因此它必須通過廣泛的專案來推廣。近兩年,GitHub 上出現了不少有關 Type 的庫以及專案。
- Go 和 R 分別下降了一個名次:從巨集觀角度來看,這樣輕微的浮動可以忽略不計。不過對於 R 語言來說,其在資料分析和機器學習領域的工具中依然佔很大比重。但同時也鑑於 R 的領域侷限性,其發展前景應該進不了排行榜的 Top 10。另一款語言,Go,雖然它在技術上受到了高度重視,並且也在各種基礎設施專案中廣受歡迎,但是到目前為止,它並沒有任何的能力證明它會去遵循 Java 的成功腳步。
- Kotlin 上升 8 位,進入 Top 20;Scala 下降一名;Clojure 下降 3 名;Groovy 下降三名:在本季度的程式語言排行榜中,變化最大的要屬基於 JVM 的語言,如 Clojure、Groovy、Scala 均有所下降,而新貴 Kotlin 反而大幅增長。目前,Kotlin(第 20 名)仍然遠遠落後於 Scala(第 13 名),但是根據 RedMonk 的歷史程式語言排行榜來看,Kotlin 的增長僅次於 Swift,所以,其未來值得期待。
- Julia:對於一種甚至不在前 30 名的語言,Julia 上升了兩個名次,位居 34 位,但還是吸引了不少開發者的注意力。這種集 Python、C、R、Ruby 之所長的動態程式語言,其實值得大家關注。此外,它的漲幅也像極了,三年前 Type 的增長趨勢。當然,並不能絕對的說 Julia 就一定能像 Type 那樣流行,但是其未來不容忽視。
- Rust:和去年相比,Rust 排名沒有變化,一直是第 23 名。對於一些開發者而言,可能會對這個結果有些失望,但 Rust 的流行度向來如此。和 Google 研發的 Go 語言相比,Rust 發展穩定的同時在人氣知名度上受到了一定的限制。不過,在系統語言中,它仍然排名仍高於如前面提到的 Clojure、Groovy、Coffee、Dart、Visual Basic 等眾所周知的語言。
事實上,程式語言排行榜對於剛入門或者想要拓展學習的開發者而言,極有幫助,同時也能給諸多從業者一些趨勢借鑑,而更多的應用仍需要遵循專案的需求。針對此次榜單,不少網友也發表了自己的看法:
@Srinivas JONNALAGADDA:
就 Go 而言,在專案數量上,它似乎是領先於 Swift、Scala、Type 甚至 C 的。不過其在 Stack Overflow 平臺上出現不多的原因可能是因為語言相較而言顯得小眾了些。
另一方面,Go 1 以及以後的版本均保持了相容性,這樣開發者曾在 Stack Overflow 提出的相關問題可能同樣適用於現在。這就導致了有關 Go 的新討論由此減少。
@David Young:
這只是我的個人看法,由於編譯器強制錯誤檢查功能(很多程式碼報錯訊息可以告訴開發者如何解決與語言相關的問題),Rust 在 Stack Overflow 討論中出現概率可能會大大降低,這可能會導致其在 GitHub 上很流行,而在 Stack Overflow 不受歡迎。
@Bob
該程式語言排行榜指出了使用主流語言或工具的風險,其中 Java、Type / Anguar、SQL、C# 和 Java 是主流,其餘的不太可能在商業行業中獲得10年或更長時間的牽引力。
對此,你怎麼看?