2020 年 JVM 生態報告解讀

前言

作過 Java 開發的同窗都知道,JVM(Java 虛擬機)Java 實現的基礎,雖然在平時工做中真正運用到的時候可能並很少,可是一個程序員想要上升到高級層次,那就必須知道 Java 究竟是怎麼運行的,這就有必要去學習瞭解 JVM 的相關知識了。學習 JVM 能夠能更深刻的理解 Java 這門語言,能夠清楚知道Java程序是如何執行的以及爲將來排查線上問題打下堅實的基礎。接下來咱們看看 2020 年的 JVM 生態報告和最新趨勢,值得咱們每一個 Java 開發者去關注瞭解。java

JDK 廠商佔比

Oracle JDKOpen JDK 加起來佔比將近 60%,其中 Oracle JDK 佔比略多一些,Oracle JDKOpen JDK 都是市場上的熱門選擇,咱們看看兩者之間的一些差別。Oracle JDK 更多的關注穩定性,更適合企業級用戶,而 Open JDK 相對而言沒有那麼穩定,它會常常發佈一些新特性。Oracle JDK 支持長期發佈的更改,而 Open JDK 僅支持計劃和完成下一個發行版,還有一個就是 Oracle JDK 是根據 二進制代碼許可協議 得到許可,而 Open JDK 是根據 GPL v2 許可得到許可。使用 Oracle 平臺時會產生一些許可影響。如 Oracle 宣佈的那樣,在沒有商業許可的狀況下,在 2019 年 1 月以後發佈的 Oracle Java SE 8 的公開更新將沒法用於商業,商業或生產用途。可是,Open JDK 是徹底開源的,能夠自由使用。程序員

which-java-vendor-use.png

願意付費用戶佔比不多

只有 9% 的用戶表示願意爲 JDK 支付費用,還有 86% 的用戶表示並不想爲 JDK 支付費用,能夠看出大部分用戶其實對 JDK 的付費使用仍是不贊同的,目前來看,若是要真正實行付費模式仍是有點難。不過人們選擇爲 JDK 支付費用時,Oracle 仍是當之無愧的大贏家的。自從 JDK9 發佈以後,之後每一年的 3 月和 9 月都會發佈一個新的版本,這個發佈節奏的改變,這個對許多用戶的版本更新策略仍是有必定的影響。調查結果顯示這個發佈節奏的變動影響了三分之一的開發者們是否決定爲其支付費用。web

paying-for-jdk-support.png

Java 8 仍然是主流版本

Java 9 以後對 JDK 的結構作了很大的調整,這也是影響人們升級的緣由之一,根據報告結果來看 Java 8 仍然是你們使用最多的版本,可是在 2018 年 9 月發佈了第一個 LTS(長期支持) 版的 Java 11 以後,有四分之一的開發者在生產環境中使用了 Java 11。由於發佈節奏的緣由,大部分開發者仍是不肯意每 6 個月就對版本進行一次更新,版本遷移成本其實也不低,還有新版本在生產環境的穩定性也是其中的一個考慮因素。spring

java-version-use-production.png

Kotlin 在 JVM 類語言中佔比第二

JVM 類語言語言中 Java 佔比 86.9% 穩居第一,除了 Java 語言以外,Kotlin 語言在 JVM 類語言佔比第二佔比 5.5%Kotlin 從去年的 2.4% 增長到今年的 5.5%JVM 類語言的用戶中 Kotlin 使用率的增加,由於它能夠與 Java 無縫集成也不足爲奇,像在 Spring Boot 框架中使用 Kotlin 進行開發也很容易。Kotlin 也一直在創新,積極擁抱 Java 的大腿,在 Java 的新版本中也在試圖整合一些 Kotlin 的概念。服務器

jvm-language-use.png

Spring 依然是 Java 框架中的王者

有十分之六的開發者依賴 Spring 框架來構建他們的程序,這對於衆多的第三方開源框架來講,這是一個很高的佔比,Spring Framework 依然是 Java 開發框架中的王者,Spring 框架已經發布了很長一段時間了,經過長時間的改進和創新,無疑 Spring 如今已經成爲 Java 生態系統中的最重要的框架。在衆多的使用者中有將近三分之二的用戶使用 Spring 5,可見你們對 Spring 框架的新版使用率仍是很高的。架構

spring-version-use.png

Spring Boot 是主流的服務器端 Web 框架

服務器端依然是 Spring 的天下,其中有一半的人使用的是 Spring Boot 框架,還有將近的三分之一的人使用的是 Spring MVC 框架,前幾年比較火的 Struts 框架已經開始沒落了,這個佔比和如今市場上比較流行微服務架構是分不開,由於 Spring Boot 框架天生就是爲微服務而生的,它能夠快速實現微服務。使用基於 Spring BootSpring Cloud 框架能夠快速搭建一個分佈式的服務或應用。框架

server-side-web-framework.png

IntelliJ IDEA 是主流的開發工具

IntelliJ IDEAJava 開發者們使用最普遍的開發工具,調查結果顯示有 62% 的開發人員使用社區免費版和付費終極版。Apache NetBeans10% 的市場份額保持在第三位,和去年的調查結果一致。能夠發現被業界普遍稱讚的 VS Code 神級編輯器在 Java 開發人員中並無想象的那麼受歡迎。jvm

which-ide-use.png

Maven 是主流的項目構建管理工具

Maven 是一個軟件項目管理和自動構建的工具,由 Apache 基金會 維護。它基於項目對象模型(POM)概念,Maven 利用一箇中央信息片段能管理一個項目的構建、報告和文檔等步驟。調查結果顯示它在排名還是第一,一直都是主流的項目構建工具,排名第二的 Gradle 一直保持着增加的趨勢,在 2019 年佔比達到四分之一,而在 2012 年佔比高達 40% 的老牌的構建工具 Ant 將逐漸退出舞臺,到 2019 年佔比不到 10%。能夠明確的是,構建工具之間的競爭從不會中止,可否及時更新發布一些能夠解決使用者痛點的工具是你們選擇的因素之一。編輯器

which-build-tool-use.png

Jenkins 仍然是持續集成工具中的王者

和咱們大多數 Java 開發人員的指望一致,Jenkins 以高達 58% 的佔比排名穩居第一,排名第二的 GitLab 佔比僅爲 6%,有趣的是沒有使用工具的也高達 12%,雖然不適用工具的人數佔比比去年低了不少,可是這個佔比仍是讓人有點兒驚訝。分佈式

which-CI-server-use.png


mghio
PS:掃碼關注公衆號「mghio」,回覆關鍵字 JVM 獲取 2020 年 JVM 生態報告 PDF 版原文。
相關文章
相關標籤/搜索