2020年 JVM 生態(tài)報(bào)告解讀
1. 前言
2020 年 JVM 生態(tài)報(bào)告已經(jīng)出爐。該報(bào)告由英國(guó)軟件安全服務(wù)商 Snyk 聯(lián)合 Oracle 官方刊物 The Java Magazine 聯(lián)合推出。我們來(lái)看看 JVM 生態(tài)圈最新的情況以及發(fā)展的趨勢(shì),這對(duì) Java 開(kāi)發(fā)者至關(guān)重要。
2. OpenJDK 的崛起
隨著 Oracle 修改其 JDK 上的許可協(xié)議,用戶在選擇 JDK 的問(wèn)題上有了更多顧慮。盡管甲骨文 JDK仍然占主導(dǎo)地位,占 34%,而去年的報(bào)告這一比例為 70%。

越來(lái)越多的開(kāi)發(fā)者轉(zhuǎn)向了其他 OpenJDK 提供商。每四個(gè)開(kāi)發(fā)人員就有一個(gè)選擇采用 OpenJDK。

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

4. Kotlin 成為第二 JVM 語(yǔ)言
Java 語(yǔ)言依然統(tǒng)治著 JVM 平臺(tái)。 Kotlin 從去年 2.4% 增長(zhǎng)到 5.5% 成為第二 JVM 語(yǔ)言, Kotlin 語(yǔ)法簡(jiǎn)潔,沒(méi)有 NPE 問(wèn)題,和 Java 之間有良好的互操作性。連 Spring 5 都對(duì)它進(jìn)行了良好的支持。雖然目前主要 Kotlin 的開(kāi)發(fā)者在安卓移動(dòng)端,已經(jīng)有一部分開(kāi)發(fā)者嘗試在后端使用 Kotlin 。

5. Spring Framework 傲視群雄
10 個(gè)開(kāi)發(fā)者中有 6 個(gè)使用 Spring Framework 開(kāi)發(fā)他們的應(yīng)用程序。經(jīng)過(guò)不斷的打磨,Spring 已經(jīng)演變成 Java 生態(tài)系統(tǒng)中最主要的框架。而且 2/3 的 Spring 用戶使用了他們最新的主版本 Spring 5。

服務(wù)端開(kāi)發(fā)框架也是 Spring 主宰的世界,其中 Spring Boot 就占據(jù)了半壁江山。還有 31%的份額也屬于 Spring 自家的 Web 框架 Spring MVC 。新出的框架 Micronaut 和 Quarkus 有可能同 Spring 進(jìn)行競(jìng)爭(zhēng),但是只能等到明年才能得出結(jié)論,今年它們并沒(méi)有排的上號(hào)。

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

6. IntelliJ IDEA 最受開(kāi)發(fā)者青睞
IDE 之爭(zhēng)由來(lái)已久。我們來(lái)看看今年的統(tǒng)計(jì)圖表:

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

Maven 占據(jù)了 64% 的份額,依然是老大。作為后起之秀的 Gradle 一直保持上升的勢(shì)頭,而且很多優(yōu)秀框架比如 Spring 都選擇了 Gradle 。而老牌的 Ant 五年來(lái)一直在下跌,未來(lái)很可能退出競(jìng)爭(zhēng)。
8. Jenkins 占據(jù)持續(xù)集成的主導(dǎo)地位

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

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

以上就是對(duì) 2020 JVM 生態(tài)報(bào)告的解讀,原版的報(bào)告可通過(guò) 2020 JVM 生態(tài)報(bào)告 獲取。希望你能看出當(dāng)前 Java 的現(xiàn)狀和一些未來(lái)的趨勢(shì)。相信無(wú)論是對(duì)于你學(xué)習(xí) Java 和職業(yè)規(guī)劃都有所幫助,如果你有自己的觀點(diǎn)可通過(guò)留言分享出來(lái)。