2019 年 Java 開發者生態報告!

數據來源自國外的一個調查,在過去的幾周,這份調查一共採訪了6707名開發人員。數據來源:https://www.baeldung.com/java...java

1.JDK 版本使用狀況

JDK 版本使用狀況

即便在今天 Java 13 都已經發布了,Java 8仍然是使用最普遍的 JDK 版本。不過, Java 8 仍然從去年的84.7%降低到今年的79.8%。我以爲這很大程度上由於 JDK 8 是一個較爲里程碑的版本,JDK 8 提供了 Lambda 表達式、函數式接口、Stream 流等等很是方便開發的新特性。爲何 Java 8 仍是採用最多的 JDK 版本呢?我以爲還有一點很是重要的緣由是:不少人連 Java 8 的新特性都沒玩熟,連最基本的 Lambda 表達式和 Stream 流都玩不轉,顯然你引入更高版本的 JDK ,裏面不少新特性大部分也不必定會用,並且不必定能用到。關於 Java 8 新特性,能夠查閱這篇文章:Java 8 新特性最佳指南git

2.Spring Framework 的使用

Spring Framework 的使用

與 Java 相對,這是一個徹底不一樣的故事。去年Spring4超過50%,如今已經達到30%,而Spring5從今天的24%上升到今天的58.4%。我以爲這大機率是由於 Spring Boot 最新的版本內部就是集成的 Spring 5,而且Spring 5 更有利於開發者進行開發。github

Java EE的使用佔比也頗有趣,從去年的9.5%上升到如今的14%。web

3.Spring Boot 的使用

Spring Boot 的使用

對於 Spring Boot,能夠看出還有 Spring Boot 已經成爲最主流的 Java Web 框架,這點咱們在平時工做和學習中也是能夠清楚看到的。可是,仍然有接近 25% 的開發者並無選擇使用更優秀的 Spring Boot,難道是爲了維護老項目或者是不想擁抱更加優秀的技術?spring

Spring Boot 2.0+從去年的30%上升到如今的60.5%。Spring Boot 在咱們平時開發中使用的太普遍了,通常狀況下進行新項目的開發都會優先選擇Spring Boot 而且是它的最新版本。爲此,我本身也開源了一份 Spring Boot 學習指南:https://github.com/Snailclimb/springboot-guide (目前已經支持在線閱讀!)數據庫

4.構建工具的使用

構建工具的使用

構建工具的數據貌似很穩定,和去年同樣,Maven 仍是開發者使用最普遍的構建工具。segmentfault

這點其實仍是令我比較詫異的。雖然,我知道大部分國內用戶和公司都是使用 Maven 的,這點你能夠經過在 Github 上搜索 Java 項目有比較清楚的認識。可是,我覺得國外會優先使用 Gradle ,畢竟 Gradle 相比於 Maven 在不少方面作的仍是要好點。並且,我所在的外企公司在前幾年就開始大規模採用 Gradle 開發 Java 項目了,不說其餘的。我我的以爲 Gradle 用起來更舒服一點,也推薦各位能夠嘗試一下。後端

5.IDE 的採用

編輯器的使用

IntelliJ 毋庸置疑是使用最普遍的 IDE。可是, 爲啥 Eclipse 今年都還有 32.8% 的佔比,雖然,相比於去年的38%下降了很多。緩存

6.web 服務器的採用

web 服務器的使用

Tomcat 仍然是開發者中使用最普遍的 web 服務器,市場佔有率高達 73 %。Spring Boot 默認使用的 web 服務器就是 Tomcat 了,我想這也爲它的市場佔有率的增長加了把火🔥。springboot

Spring Boot支持如下嵌入式servlet容器:

Name Servlet Version
Tomcat 9.0 4.0
Jetty 9.4 3.1
Undertow 2.0 4.0

您還能夠將Spring引導應用程序部署到任何Servlet 3.1+兼容的 Web 容器中。

7.其餘基於 JVM 的語言

雖然 Kotlin 被普遍採用和接受,可是仍然有 62.6% 的開發人員僅使用 Java。Kotlin 13%增加到了今天的16.5%。

Groovy從今天的19.3%降低到了17.4%,如今大多數注意力都轉移到了Kotlin身上。Scala 也下跌了約1.1%,目前跌至8.6%。

所以,趨勢很明顯– Kotlin正在逐漸淘汰其餘JVM語言

8.數據庫的使用

數據庫的使用

數據庫領域感受 MySQL 、PostgreSQL、OracleDB這三者所佔的比例仍是比較大的,MySQL 依然是開發者中使用最普遍的。可是,PostgreSQL大有超過之勢頭,PostgreSQL自去年以來增加了5%。非關係數據庫使用最普遍的仍是 MongoDB 而後是 Redis,平時開發中,但凡併發量會稍大一點,都會選擇使用 Redis 做爲緩存層,避免過多請求直接訪問數據庫。

9.總結

我我的感受上面的數據統計狀況大部分都是意料之中,讓我感到意外的是構建工具的使用以及使用 Kotlin 的開發者的佔比。

總而言之,本文對Java 社區進行了很是酷的介紹。

開源項目推薦

做者的其餘開源項目推薦:

  1. springboot-guide : 適合新手入門以及有經驗的開發人員查閱的 Spring Boot 教程(業餘時間維護中,歡迎一塊兒維護)。
  2. programmer-advancement : 我以爲技術人員應該有的一些好習慣!
  3. spring-security-jwt-guide :從零入門 !Spring Security With JWT(含權限驗證)後端部分代碼。

公衆號

個人公衆號

相關文章
相關標籤/搜索