2020 Java調查報告:中國開發者使用比例最高,Java 8最受歡迎

2020-12-24 機器之心Pro

編輯:杜偉、陳萍

Java 自推出以來,一直深受專業開發者的喜愛,成為一種不可或缺的程式語言。在即將結束的 2020 年裡,Java 語言處於一種怎樣的發展狀態呢?近日,JetBrains 撰文從 Java 開發者地域分布、行業分布以及 Java 工具分析等幾個視角全方位地分析了 Java 語言的開發現狀。

Java 語言於 1995 年由 Oracle 公司開發,距今已有 25 年的時間了。Java 是一種廣泛使用的計算機程式語言,擁有跨平臺、面向對象、泛型編程等特性,廣泛應用於企業級 Web 應用開發和移動應用開發。在眾多程式語言中,Java 語言始終保持了強勁的發展勢頭。

今年 7 月份,IEEE 發布了 2020 年度程式語言排行榜,Java 位列整體榜單第二。此外,在開源項目最受歡迎和工作環境中需求最大的程式語言分榜單中,Java 也分列二、三名。

目前,Java 已經於 9 月 15 日更新了 15 版本。用戶或許想要深入了解 Java 當前的開發狀況,所以捷克軟體開發公司、Java 程式語言開發撰寫時所用集成開發環境 IntelliJ IDEA 的創建者 JetBrains 撰文詳細介紹了 Java 的發展現狀,包括 Java 使用地域分布、Java 行業分布、Java 工具分析等。

需要指出的是,本文中 Java 語言各項指標的調研結果基於 JetBrains 更早之前發布的《The State of Developer Ecosystem Survey 2018/2020》,想要了解詳情的讀者可以查閱原始連結。

2018 年開發者生態系統調查報告地址:https://www.jetbrains.com/research/devecosystem-2018/java/

2020 年開發者生態系統調查報告地址:https://www.jetbrains.com/lp/devecosystem-2020/

接下來詳細解讀 2020 年 Java 語言的發展現狀。

Java 開發者地域分布:集中在亞洲,中韓比例最高

很多人會問:「Java 開發者最多的地區在哪裡,又有多少人呢?」。JetBrains 數據分析顯示, 當前全世界大約有 520 萬名專業開發者使用 Java 作為主要語言。但如果把主要使用其他程式語言但同時也會使用 Java 的專業開發者計算在內,這個數字可能會接近 680 萬。

Java 開發者最集中的區域是亞洲,大約有 250 萬開發者使用 Java 作為他們的主要語言。北美和歐洲的數字遠不及亞洲。你可能會問:「這是為什麼呢?」。所以,為了更進一步弄清楚這些數據產生的原因,JetBrains 研究了 Java 開發者最多的各個國家,然後調查了為什麼這些國家在專業編程開發中特別喜歡 Java 而不是其他語言。

下圖顯示了每個國家使用 Java 作為主要語言的開發者百分比(用於收集此數據的受訪者最多可以選擇 3 種主要語言)。其中,中國和韓國使用 Java 的比例最高,分別為 51% 和 50%。數據主要來自 2020 年的調查報告。

Java 在專業開發者中的使用情況

2020 年的數據顯示,超過三分之一的專業開發者使用 Java 作為他們的主要語言,並且 Java 在專業開發者心目中仍然是僅次於 JavaScript 的第二種主要語言。

使用 Java 語言開發的軟體類型

下圖展示了使用 Java 語言開發的軟體類型,包括 web 服務、實用工具(Utility )、資料庫等,其中在 web 服務中最流行使用 Java 語言,佔比 52%。數據主要來自 2020 年調查報告。

使用 Java 語言最多的行業

現在清楚了為何這麼多專業開發者使用 Java,Java 語言又在哪些行業中廣泛使用呢?

2020 年的數據顯示,Java 程式設計師主要分布在 IT 行業(42%)、金融以及金融科技(44%),但這並不意味著 Java 在其他行業沒有使用。

Java 工具

Java 版本受歡迎程度

2020 年的數據顯示,Java 8 仍然是最流行的版本。75% 的專業開發人員使用 Java 8 作為其主要程式語言。下圖顯示了 2020 年 Java 各個版本的受歡迎程度。可以清楚地看到,Java 8 的受歡迎程度遠遠領先於其他版本。

Java 流行的應用伺服器

根據 2018 和 2020 年的數據顯示,在過去的 3 年裡,Apache Tomcat 一直是最受歡迎的應用伺服器,而 JBoss EAP 和 WildFly 的使用量則減少了一半。

Top 5 web 框架

2018 年的數據顯示,Spring Boot 和 Spring MVC 一樣流行,而 2020 年的數據顯示 Spring Boot 更加流行。數據來自所有使用 Java 作為主要語言的開發者。由下圖可知,2020 年 Top 5 的 web 框架依次為 Spring Boot、Spring MVC、JSF、Struts 2 和 Strut 1。

Top-5 JVM Profiler

2020 年的數據顯示, 24% 的用戶使用 VisualVM ,其他用戶使用 JProfiler、Java Mission Control、NetBeans profiler 和 YourKit。數據來自所有使用 Java 作為主要語言的開發者。

Top-5 IDE / 編輯器

根據 2018 年和 2020 年的數據顯示,IntelliJ IDEA 的使用量從 2018 年的 55% 增加到 2020 年的 72%,而 Eclipse or Eclipse-based、Android Studio、VS Code 以及 NetBeans 使用量相應減少了。

與 Java 相關的其他主題

討論最多的 Java 工具和其他語言

在 Stack Overflow 等 IT 社區中常常談到 Java。JetBrains 從 stack overflow 社區的問答版本中提取數據,從而找出出現最多的「Java」標籤。結果如下圖所示,縱軸表示提及 Java 的標籤,橫軸表示標籤出現的總數。

Java 社區的熱門話題

以下是 Java 用戶在 Reddit 上討論最多的主題,排名第一的問題是:現在學習 Java 語言是一個好的選擇嗎?(Is Java a good language to learn today?)

相關焦點

  • Stack Overflow:2020年全球開發者調查報告 TypeScript擊敗 Python
    Stack Overflow 2020 開發者調查報告現已出爐。 Stack Overflow 年度開發者調查是面向全球開發者進行的規模最大、最全面的調查。調查涵蓋了從開發者喜愛的技術到工作偏好等內容。2020 年是 Stack Overflow 發布年度開發者調查報告的第十年,有近 65,000 名來自世界各地的開發者參與了這個調查。
  • 中國開發者真實畫像:Java長盛,偏愛Windows作業系統
    雖然優秀,但中國程式設計師群體和全球其他國家程式設計師一起,也在經歷著由AI、5G等新興技術帶來的新挑戰,不斷更新著自己的知識庫,在日益增長的程式設計師同胞們中間殺出一條血路,以避免在激烈的競爭中被淘汰。2019 年-2020 年,中國的開發者過著怎樣的生活?他們最關心的技術正在經歷著怎樣的變遷?
  • 2017-2020 JS最受歡迎,SlashData發布最新開發者報告
    機器之心報導機器之心編輯部在今年 5 月份的Stack Overflow 2020 全球開發者調查報告中,JavaScript 連續八年榮登最常用程式語言榜首。在 7 月份的IEEE 2020 程式語言排行榜中,JavaScript 位列 top 10 程式語言榜單的第五名。近日,分析公司 SlashData 公布了 2020 年第 3 季度的《開發者報告》(第 19 版),對全球 159 個國家或地區的 17000 多名開發者展開了調查。
  • java是什麼文件格式?.java文件怎麼打開?
    Java是由Sun Microsystems公司於1995年5月推出的Java面向對象程序設計語言和Java平臺的總稱,是當今最流行的編程技術。  java是什麼文件?  Java文件是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺的總稱。
  • 2020學習Java必看的3本書籍
    大家好,歡迎來到2020, 如果您正在考慮學習新事物或想要提高對Java基本技術的了解,那麼閱讀書籍絕對可以為您提供幫助。今天,我將分享過去幾年中一些最好的Java書籍,您可以在2018年閱讀這些書籍,以更好地學習Java和相關技術。1.
  • 處理Java異常的9個最佳實踐
    這是一個令初學者流淚,令老手聞之汗顏的話題,因為即使是身經百戰的開發者也可能花上幾個小時來討論哪些異常應該拋出或處理,以及如何拋出或處理異常。這就是為什麼大多數開發團隊都有自己的一套規則。如果你剛進入一個新的團隊,那麼你可能會驚訝於這些規則與以前使用過的規則是如此的大相逕庭。
  • 最通俗易懂的 Java 10 新特性講解|原力計劃
    你可以像下面這樣使用 var 語法。下面演示三種使用情況。,但在實際使用時你還是要注意,就像下面的代碼,你可能一眼並不能看出 result 的數據類型。本地貨幣:CNYUS.貨幣:USD本地名稱:中文 (中國)本地語言:中文本地國家:中國本地每周第一天:1API 更新Java
  • Java資料庫連接性簡介
    SQL和JDBC在過去的十年中,NoSQL變得越來越流行,但是關係資料庫仍然是使用中最常見的數據存儲類型。一個關係型資料庫是由列和行的表的結構化存儲庫。SQL(結構化查詢語言)是數據架構師用於在關係資料庫中創建,讀取,更新和刪除新記錄之類的語言。
  • java中的密碼應用開發快速入門
    =1){System.err.println("Usage:java MessageDigestExample text");System.exit(1);}byte[] plainText=args[0].getBytes("UTF8");//使用getInstance("算法")來獲得消息摘要,這裡使用SHA-1的160位算法
  • Java 14 發布了,再也不怕 NullPointerException 了!
    雖然他的設計初衷就是要「通過編譯器的自動檢測機制,確保所有使用引用的地方都是絕對安全的」,他還是決定為null引用開個綠燈,因為他認為這是為「不存在的值」建模最容易的方式。但是在2009年,很多年後,他開始為自己曾經做過這樣的決定而後悔不已,把它稱為「一個價值十億美元的錯誤」。
  • java和python哪個更好用?
    java和python哪個更好用?JavaJava是世界上最古老,功能最強大的程式語言之一。它是一種通用的靜態類型的語言。java和python哪個更好用?PythonPython是21世紀最流行的程式語言。它是世界上最簡單的程式語言之一。
  • 跟我學java編程—Java布爾類型
    java語言通過關鍵字boolean來定義布爾類型變量,只有true和false兩個值,分別代表布爾邏輯中的「真」和「假」。Java語言雖然定義了boolean這種數據類型,但是只對它提供了非常有限的支持。在Java虛擬機中沒有任何供boolean值專用的字節碼指令,Java語言表達式所操作的boolean值,在編譯之後都使用Java虛擬機中的int數據類型來代替。
  • java中的try是什麼?|java的異常處理類型
    1、try-是java異常處理類型中的一個。那麼,異常處理又是啥?2、異常-說的就是編寫程序時出現的錯誤。2.1:java提供異常處理類Throwable2.2:Throwable類分為Error和Exception兩個子類2.3:Error由java本身來處理2.4:我們要捕獲和拋出的異常是Exception這類的異常
  • JAVA8——JAVA成長之路
    毫無疑問,Java 8發行版是自Java 5(發行於2004,已經過了相當一段時間了)以來最具革命性的版本。Java 8 為Java語言、編譯器、類庫、開發工具與JVM(Java虛擬機)帶來了大量新特性。在這篇教程中,我們將一一探索這些變化,並用真實的例子說明它們適用的場景。
  • JAVA8 新特性詳解
    在Java 8之前一般某個函數應該返回非空對象但是偶爾卻可能返回了null,而在Java 8中,不推薦你返回null而是返回Optional。千萬記住使用limit方法,不然會無限列印下去。Stream 的創建需要指定一個數據源,比如 java.util.Collection的子類,List或者Set, Map不支持。Stream的操作可以串行執行或者並行執行。Java 8擴展了集合類,可以通過 Collection.stream() 或者 Collection.parallelStream() 來創建一個Stream。
  • 跟我學java編程—Java嵌套if
    除了使用簡單if和多重if之外,還可以將整個if塊插入另一個if塊中,這種結構稱為嵌套if。嵌套if主要用於只有當前提條件滿足時,才判斷後續條件是否滿足。在D盤Java目錄下,新建「EmbedSample.java」文件。用記事本打開「EmbedSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示嵌套if結構的使用。
  • 俠說java8-LocalDateTime等時間使用手冊(全),先mark後看
    SimpleDateFormat來實現,但是這個api使用不當可能會有線程安全問題,這裡推薦使用如下的方式來做轉換,保證thread-safe。, 01, 17, 6, 17, 10);//LocalDateTime : 2020-01-17T06:17:10System.out.println("LocalDateTime : " + dateTime);// +hh:mm 如果設置時區為東八區,則要比原來時間晚8小時//Instant : 2020-01-16T22:17:10ZInstant instant = dateTime.toInstant
  • 虛擬主機 支持java嗎
    虛擬主機 支持java嗎?虛擬主機支持java的,但java需要專屬環境、硬體支持,不像其他語言,如ASP、PHP等,很多情況下,可以共享環境、硬體等。所以,提供java環境的虛擬主機比較少,只有少部分服務商,比如西部數碼。
  • Go+iris吊打Java+SpringBoot,是Java老了嗎?且慢,Vert.x有話說
    Java界的性能擔當根本就不是Spring,只是因為國內用java的web框架主要是Spring,我們才拿它來測……本次我們就請出java界的性能擔當——Vert.x,跟Iris再比一次這次的結果會比較有說服力因為iris在官網自稱自己是
  • 動力節點Java學院2021年Java學習路線圖最新出爐啦
    Javaweb初級的一般是用JSP(Java Server Pages)+servlet+Javabean來開發,對大型的網站一般是使用框架來開發的,例如struts,hibernate,spring,典型的struts框架結構。