作者 | Valeriia Karpenko
譯者 | 劉雅夢
策劃 | 陳思
今年,Java 到達了一個不可思議的里程碑,達到了 25 歲的高齡。我們通過舉辦一個特別的在線 Java 日活動來慶祝它的誕生,在該活動中,許多專家演講者分享了他們的經驗,並就如何從這門語言中獲得更多收益提供了技巧和竅門。
這引起了我們的思考,我們決定對數據進行深入研究,以徹底發現 Java 的普遍狀態是什麼,並幫助你回答一些亟待解決的問題。我們發現的某些內容可能是不足為奇的,但也有些見解是令人非常意想不到的。
隨著 Java 15 在本週的發佈,我們決定把它放在一起,向你展示 Java 的狀態。這篇文章是根據不同來源的數據而創建的,其中包括我們的開發人員倡導者 Trisha Gee 的專家評論。
Java 開發者有多少,他們分佈在哪裡?
第一個問題是:“大多數的 Java 開發人員都在哪裡,我們中有多少人是 Java 開發人員呢?”我們通過綜合所能獲取到的最準確的信息來回答這個問題,然後進行推斷,得出一個我們認為非常合理的猜測。
市場研究和分析團隊根據開發人員估算模型得出的最佳估計顯示,當今世界上有大約 520 萬專業 Java 開發人員,他們將 Java 作為主要語言。但是,如果我們將主要使用其他編程語言但同時也做一些 Java 工作的專業開發人員也包含在內的話,這個數字可能接近 680 萬。
至於這些 Java 開發人員都集中在什麼地方,在亞洲居住的 Java 開發人員數量最多,那裡大約有 250 萬開發人員使用 Java 作為主要語言。北美和歐洲的數字遠不及亞洲。你可能會問:“為什麼呢?”好吧,起初我們有也有同樣的想法,因此我們對這些區域進行了更深入的研究,以確切地瞭解這些數字的來源。
哪個國家的 Java 開發者最多?
我們進一步研究了擁有最多 Java 開發人員的各個國家,然後調查了為什麼這些國家在專業開發中特別喜歡 Java 而不是其他語言。
下圖顯示了每個國家使用 Java 作為主要語言的開發人員的百分比(用於收集此數據的調查對象最多可以選擇 3 種主要語言)。中國和韓國的數值最高,分別約為 51%和 50%。數據來自2020 年開發者生態系統狀況調查。
專家分析
Java 在前 6 個國家如此流行的原因可能包括 Java 是免費使用的、政府支持和開源。對於中國、西班牙和巴西尤其是這樣。它是在中國和印度進行 Android 移動開發的基礎,並且僱傭海外人員用 Java 開發手機應用程序非常普遍,這可能是印度使用量達到峰值的原因。德國的使用率也很高,這可以歸因於 Java 在德國軟件工程師中是最流行的語言,因為多種行業都使用 Java 來構建高度可擴展的應用程序。大多數企業服務都依靠 Java 來驅動應用程序支持日常業務的運行,例如工資單、庫存管理、報表等。德國還有一個龐大的金融部門,在本國技術上大量使用 Java,例如交易機器人、零售銀行系統以及金融業為了保持競爭所需要的其他應用程序。
我們本以為美國會有很高比例的 Java 用戶,但是並沒有,這也是很合理的。有大量的技術棧可供選擇,而且很多技術公司通常處於這些技術棧的最前沿,因此那裡的開發人員可能不需要 Java 的強大功能或穩定性,而是使用能讓他們進行快速構建和測試等的語言。
Java 在開發行業中的位置
根據 2020 年開發者生態系統狀況調查,有超過三分之一的專業開發人員將 Java 用作主要語言,而 Java 在專業開發人員當中仍然是僅次於 JavaScript 的第二大主要語言。
專家分析
看到 JavaScript 和 Java 處於領先地位,這並不奇怪,因為它們是成對的:使用 Java 的開發人員經常使用 JavaScript 編寫前端和任意快速腳本。由於機器學習的普及,Python 可能排名第三。一般來說,我們希望 Web 成為開發人員生態系統的重要組成部分,因此 JavaScript、HTML 和 CSS 以及 PHP 將始終能擁有穩固的地位。SQL 也會一直存在,因為沒有多少東西是不需要某種容量的數據庫的。C++ 也是一種堅實的語言,因為它被用於許多嵌入式應用程序中,因此它不會很快在圖表中消失。雖然 C# 似乎正在逐漸衰落,但我想如果 Java 比例高,C# 就會低,因為它們在功能上非常相似。至於為什麼我認為 Java 在專業發展領域如此之高,原因與之前提到的德國類似。大多數企業的業務服務都依靠 Java 來運行。它不僅僅用於 IT 部門,幾乎每個公司,無論是分銷、製造還是銀行業,都將 IT 服務作為其基礎設施的一部分,而這些服務,如工資單或庫存管理,通常都是在後端使用 Java 構建的。因此,Java 被這些公司的專業開發人員所大量使用。
用 Java 開發的軟件類型
快速瀏覽一下用 Java 開發的軟件類型,應該可以瞭解它的使用統計信息。根據2020 年開發者生態系統狀況調查的結果,Java 使用最流行的領域是Web 服務,佔 52%。
專家分析
看到 Java 在商業智能 / 數據科學 / 機器學習中如此流行,真令人驚訝,因為你可能認為這將是 Python 的領域。其他的就不足為奇了,因為 Web 服務的後端通常是 Java,而且使用 Java 編寫業務應用程序也很有意義,因為它們也需要使用後端和數據庫。
使用 Java 的熱門行業
既然我們知道了為什麼這麼多專業開發人員使用 Java,那麼讓我們具體看看 Java 應用於哪些行業。
根據 2020 年開發者生態系統狀況調查,Java 程序 主要用於 IT 服務(42%)與金融和金融科技領域(44%),但這並不是說 Java 沒有用於其他行業。
專家分析
金融和金融科技領域主要涉及金融交易所、零售銀行系統、創建計算引擎以及開發本地定製工具和服務,以使公司在市場上具有競爭力。金融和金融科技幾乎都是用 Java 建立的,所以在這裡沒有什麼好驚訝的。IT 服務也是如此,因為許多針對非 IT 公司的薪資系統和庫存管理服務都是基於 Java 構建的。其他行業也很有趣。由於 Android 的存在,移動開發的比例可能很高,因此 Java 正以這種方式被使用。大數據和數據分析也非常有趣,因為該行業是由 Python 主導的,但是後端可能會使用 Java 和 JVM 語言。當然構建軟件開發工具也可以。JetBrains IDE 目前是用 Java 構建的。儘管其他行業有點神秘,但實際上,瞭解 Java 在這些行業中的使用方式將非常有趣。
Java 相關工具
Java 版本
Java 8 仍然是最受歡迎的版本。在使用 Java 作為主要語言的專業開發人員當中,有 75%的人使用 Java 8。基於開發人員在 2020 年開發者生態系統狀況調查 中選擇的幾個版本,下圖顯示了 Java 版本的分佈情況。
專家分析
有幾個因素導致了 Java 8 的如此流行。首先,它擁有典型的 Java 開發人員所需要的所有語言,它具有 lambda 和流,並且它是一個很好的易於使用的版本。另外,人們一直不願意遷移到 Java9。Java9 引入了一些重大的架構更改,人們擔心這些更改會破壞他們用 Java 8 構建的應用程序。最重要的是,Oracle 還推出了每兩年發佈一次的版本,因此並不是所有版本都是長期受支持的,因此 Java 9、Java 10、Java 12 和 Java 13 僅受 6 個月的支持,這可能就是為什麼它們都只有這麼少用戶的原因。Java 13 之所以如此之高,是因為當本調查公佈時,它是最新的版本,因此你可以預期,該數字將在幾個月後下降。
Java 11 發佈於 2018 年,它是長期受支持的最新版本。許多企業仍未遷移到它,因為他們擔心超過 Java 9(由於其架構的更改)會破壞一切,而且 Java 11 引入了新的許可和新的訂閱,因此它帶來了一個新的恐懼:更擔心如果使用了錯誤的版本,以錯誤的方式使用它,Oracle 會對你進行罰款。許多開發人員沒有升級到 Java 11 的最後一個主要因素是,它沒有很多令人興奮的新功能,因此該語言的功能並沒有降低升級的風險。Java 17 將是下一個擁有長期支持的版本,並帶有許多新功能,但是直接從 Java 8 升級到 Java 17 也會帶來一些問題。
我的預測是,我認為下一個長期版本 Java 17 將比上一個 LTS(長期支持版本)Java 11 更受歡迎。不過,作為 Java 17 的準備,這一點我再強調也不為過,建議你先將代碼庫更新到 Java 11,然後再更新為 Java 17,以避免出現大問題。
流行的應用服務器
在過去的 3 年中,Apache Tomcat 仍然是最受歡迎的應用服務器,而 JBoss EAP 和 WildFly 的使用量卻減少了一半。給出的數據來自參加 2018 年 和 2020 年 開發者生態系統調查的所有以 Java 為主要語言的開發人員。
專家分析
Jetty 位居第二,但它確實低得令人驚訝。可能是某些正在使用 Spring Boot 和其他微服務框架的開發人員沒有意識到他們到底在使用使用,他們可能在不知不覺中使用了 Tomcat 或 Jetty。
排名前 5 的 Web 框架
在 2018 年,Spring Boot 與 Spring MVC 是一樣流行的,到了 2020 年,它變得更加流行。給出的數據來自所有使用 Java 作為主要語言的開發人員。
專家分析
這基本上只是在證實 Spring 擁有市場。幾乎可以肯定的是,仍然有人在使用 Struts 1,但它只是用於遺留應用程序。
排名前 5 的分析器
2020 年開發者生態系統狀況調查 顯示,有 24%的用戶使用 VisualVM,而一半的用戶則沒有使用。給出的數據來自所有使用 Java 作為主要語言的開發人員。
排名前 5 的 IDE/ 編輯器
2018 年 和 2020 年 的開發者生態系統調查顯示,IntelliJ IDEA 的份額從 2018 年的 55%增加到 2020 年的 72%,而其他四個的使用率則有所下降。
專家分析
不過,即使我們對調查結果進行了加權,但我們並不否認這些信息可能會有些偏差,因為這是來自 JetBrains 開發者生態系統狀態調查,而 JetBrains 的一個主要產品就是 IntelliJ IDEA。然而,這並不是說這並非完全不合理,就好像我們在其他調查中看到的一樣,IntelliJ IDEA 通常是使用最多的 IDE 之一,並且通常擁有約 55-60%的用戶份額。VS Code 正在增長,這不是從競爭的角度來看的,而是從缺乏對 IDE 的理解的角度來看的。VS Code 是一個代碼編輯器,帶有一些你可以在 IDE 中找到的特性,並且可以提供附加功能的擴展。因此,如果人們使用 VS Code 進行開發,則可能意味著開發人員不知道一個功能齊全的 IDE 能給他們什麼。在 Web 領域,使用編輯器是可以理解的,因為 Web 開發人員通常使用動態語言,並且經常使用其他工具(例如瀏覽器插件)來滿足他們的需求。但是在 Java 中,特別是在專業的 Java 中,你確實可以從一個與應用程序服務器集成的優秀工具中得到很多東西,你可以真正使用分析、重構等功能。
我們專家的最新消息
我發現有很多對本博客文章數據分析進行刪減和編輯的版本,這是我無意間造成的混亂。我想澄清一下我對開發人員和 IDE 評論背後的意圖。對我來說,如果開發人員不理解 IntelliJ IDEA 作為一個功能齊全的 IDE 給他們帶來了什麼,那對我來說就是一個失敗,因為這六年來我的工作就是讓開發人員瞭解 IDE(特別是 IntelliJ IDEA)能為你做什麼。我強烈地認為,人們不應該因為不瞭解產品而責備用戶或潛在用戶。
我個人對 IDE 的觀點來自擁有 20 多年 Java 開發經驗的 Java 開發人員,他們開發過各種大大小小的 Java 項目。如果沒有像 IntelliJ IDEA 這樣的 IDE 提供大量的幫助,我無法想象如何創建一個複雜的企業應用程序。我也見過很多開發人員使用 VS Code,並且我完全瞭解代碼編輯器所涵蓋的用例。在你的工具箱中總有能容納多於一種的工具,瞭解某個工具的優點將有助於我們為正確的工作選擇合適的工具。
討論最多的 Java 工具和其他語言
在 IT 社區中會經常討論 Java,其中的一個社區就是 Stack Overflow。我們從 “問答”部分 中獲取了數據,以找出哪些標籤與“ java”最相關。縱軸表示提到 Java 的次數,橫軸表示標籤出現的總次數。
專家分析
對於那些希望確保自己使用了正確的技術或正尋找適合自己的工具的用戶來說,這個圖表可能很有用。這些語言很有意思,但這可能是因為人們正在尋找 Java 與其他語言之間的比較。正則表達式是人們苦苦掙扎的一個利基領域,但它能上榜也就不足為奇了。
Java 社區的熱門話題
Java 的討論
我們分析了 Reddit 上“ java”子版塊的帖子,並發現了 Java 用戶在 Reddit 上討論最多的主題。
專家分析
這些正是我期望看到的話題。例如,用 Java 編寫代碼的人總是會對這種語言是否仍然有需求感興趣,畢竟,這種語言還在發展。我們剛剛慶祝了 Java 誕生 25 週年,因此人們希望檢查它是否過時了,以及它是否仍然有效。特別是,如果他們剛從大學畢業,還不知道他們所學的語言是否能為他們提供工作機會。在容器中部署 Java 是一個非常熱門的話題,包括我在內,這是每個人都想知道的東西,但幾乎找不到任何相關信息。我對性能優化這個主題並不感到驚訝,儘管我認為這個主題有點多餘,因為大多數應用程序實際上並不需要開發人員來進行優化,儘管許多開發人員認為這是一項重要的職業技能。使後端和前端協同工作也非常複雜,我可以想到有很多關於這方面的問題。
https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/
點個在看少個 bug
轉載請超鏈接註明:頭條資訊 » 2020年Java語言發展現狀
免責聲明 :非本網註明原創的信息,皆為程序自動獲取互聯網,目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,並提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件24小時內刪除。