2020年 JVM 生態報告解讀
1. 前言
2020 年 JVM 生態報告已經出爐。該報告由英國軟件安全服務商 Snyk 聯合 Oracle 官方刊物 The Java Magazine 聯合推出。我們來看看 JVM 生態圈最新的情況以及發展的趨勢,這對 Java 開發者至關重要。
2. OpenJDK 的崛起
隨著 Oracle 修改其 JDK 上的許可協議,用戶在選擇 JDK 的問題上有了更多顧慮。盡管甲骨文 JDK仍然占主導地位,占 34%,而去年的報告這一比例為 70%。

越來越多的開發者轉向了其他 OpenJDK 提供商。每四個開發人員就有一個選擇采用 OpenJDK。

究其原因,只有 9% 的參與者愿意付費使用 JDK ,都是錢的鍋啊!另外 JDK 發布節奏的加快(每年 3 月、9 月)也影響了用戶的 JDK更新策略,也間接影響了這些用戶的付費決定。
3. Java 8 依然是主流
Java 8 依然占據著 64% ,去年為 79%。 2018 年 9 月發布了Java 的第一個長期支持(LTS)版本 Java 11, Java 8 的份額正在慢慢降低。參與調查的開發人員中已經有四分之一在生產環境中運行過 Java 11。雖然 JDK 的發布節奏加快了,但是每六個月就需要遷移到新版本對于公司和開發者來說也是成本巨大的。51% 的受訪者表示當前版本的工作正常,遷移并不是必須的。而且 55% 的堅持使用 LTS 版本以獲取長期支持。

4. Kotlin 成為第二 JVM 語言
Java 語言依然統治著 JVM 平臺。 Kotlin 從去年 2.4% 增長到 5.5% 成為第二 JVM 語言, Kotlin 語法簡潔,沒有 NPE 問題,和 Java 之間有良好的互操作性。連 Spring 5 都對它進行了良好的支持。雖然目前主要 Kotlin 的開發者在安卓移動端,已經有一部分開發者嘗試在后端使用 Kotlin 。

5. Spring Framework 傲視群雄
10 個開發者中有 6 個使用 Spring Framework 開發他們的應用程序。經過不斷的打磨,Spring 已經演變成 Java 生態系統中最主要的框架。而且 2/3 的 Spring 用戶使用了他們最新的主版本 Spring 5。

服務端開發框架也是 Spring 主宰的世界,其中 Spring Boot 就占據了半壁江山。還有 31%的份額也屬于 Spring 自家的 Web 框架 Spring MVC 。新出的框架 Micronaut 和 Quarkus 有可能同 Spring 進行競爭,但是只能等到明年才能得出結論,今年它們并沒有排的上號。

另外在 Web 客戶端方面依然是三大框架的天下,而且 Jquery 寶刀未老。

6. IntelliJ IDEA 最受開發者青睞
IDE 之爭由來已久。我們來看看今年的統計圖表:

62% 的開發者選擇了 JetBrains 出品的 IntelliJ IDEA 作為 IDE ,其中 80% 為付費用戶。在有其它眾多免費的選擇之中獲得了如此大的商業成功,也是值得去研究的。 第二名 Eclipse份額由去年的 38% 下降至 20% ,第三名Apache NetBeans 原地踏步,維持著 10%的份額。
7. Maven 是最常用的構建工具

Maven 占據了 64% 的份額,依然是老大。作為后起之秀的 Gradle 一直保持上升的勢頭,而且很多優秀框架比如 Spring 都選擇了 Gradle 。而老牌的 Ant 五年來一直在下跌,未來很可能退出競爭。
8. Jenkins 占據持續集成的主導地位

和我想的一樣,Jenkins 以高達 58% 的份額占據持續集成(CI)的主導地位。而第二選項是“None”, 依然有這么多人不使用任何 CI 服務器 ,這是一個有趣的問題。和 Jenkins最近的競爭對手是GitLab (占 6%) 和TeamCity (占 5%)。
9. Git 是最大贏家

相比較前面幾個統計有一騎絕塵的情況,代碼托管還是殺的熱火朝天。Gitlab 一直作為私有存儲庫是非常不錯的,而且 CI/CD 也做的不錯;GitHub 作為公有代碼托管平臺非常成功,目前已經被微軟收購;BitBucket 我一直覺得他們的 SourceTree 是一個非常好用的客戶端。他們各有所長,而且差距不大。 這三家依托的都是 Git 托管系統。所以 Git才是最大的贏家。統計中我們沒有看到 SVN 的身影,或許它真的老了。
10. Java 開發者分布
最后我們來看看參與此次全球調查的 Java 開發者都來自哪些地區吧。

以上就是對 2020 JVM 生態報告的解讀,原版的報告可通過 2020 JVM 生態報告 獲取。希望你能看出當前 Java 的現狀和一些未來的趨勢。相信無論是對于你學習 Java 和職業規劃都有所幫助,如果你有自己的觀點可通過留言分享出來。