2019 年 Java 開發者生態報告!

數據來源自國外的一個調查,在過去的幾周,這份調查一共採訪了6707名開發人員。數據來源:https://www.baeldung.com/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 新特性最佳指南

2.Spring Framework 的使用

Spring Framework 的使用

與 Java 相對,這是一個完全不同的故事。去年Spring4超過50%,現在已經達到30%,而Spring5從今天的24%上升到今天的58.4%。我覺得這大概率是因爲 Spring Boot 最新的版本內部就是集成的 Spring 5,並且Spring 5 更有利於開發者進行開發。

Java EE的使用佔比也很有趣,從去年的9.5%上升到現在的14%。

3.Spring Boot 的使用

Spring Boot 的使用

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

Spring Boot 2.0+從去年的30%上升到現在的60.5%。Spring Boot 在我們平時開發中使用的太廣泛了,一般情況下進行新項目的開發都會優先選擇Spring Boot 並且是它的最新版本。爲此,我自己也開源了一份 Spring Boot 學習指南:https://github.com/Snailclimb/springboot-guide (目前已經支持在線閱讀!)

4.構建工具的使用

構建工具的使用

構建工具的數據貌似很穩定,和去年一樣,Maven 還是開發者使用最廣泛的構建工具。

這點其實還是令我比較詫異的。雖然,我知道大部分國內用戶和公司都是使用 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 了,我想這也爲它的市場佔有率的增加加了把火🔥。

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(含權限驗證)後端部分代碼。

公衆號

我的公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章