作者 | InfoQ 編輯部 譯者 | 明知山
這份報告總結(jié)了 InfoQ Java 編輯團隊對目前 Java 領(lǐng)域技術(shù)采用和新興趨勢的看法。我們關(guān)注 Java 及相關(guān)的語言(如 Kotlin 和 Scala)、Java 虛擬機(JVM),以及基于 Java 的框架和工具。我們討論了 Core Java 的趨勢,比如新版本 Java 的采用,以及 Spring Framework、Jakarta EE、Quarkus、Micronaut、Helidon、MicroProfile 和 MicroStream 等框架的演進。
你也可以收聽相關(guān)的 播客,了解有關(guān) 2023 年 Java 趨勢的內(nèi)容。
這份報告有兩個主要目標(biāo):
幫助技術(shù)領(lǐng)導(dǎo)者做出中長期的技術(shù)投資決策。
幫助個體開發(fā)者選擇在哪些領(lǐng)域投入寶貴的時間和資源去學(xué)習(xí)和發(fā)展技能。
這是我們發(fā)布的第五份 Java 趨勢報告。自 2006 年以來,我們一直在內(nèi)部追蹤 Java 和 JVM 的發(fā)展趨勢,這個主題也有了大量的新聞報道。
為了幫助開發(fā)者通過 InfoQ 和 QCon 了解當(dāng)前和未來的技術(shù)發(fā)展趨勢,我們采用了由 Geoffrey Moore 在他的 《跨越鴻溝》 一書中提出的“跨越鴻溝”模型。我們試圖識別符合 Moore 所謂的早期市場的想法,這個早期市場的“用戶群體由技術(shù)愛好者和有遠(yuǎn)見的人組成,他們希望在機遇或潛在問題出現(xiàn)之前就提前行動”。
與我們在 2022 年、2021 年、2020 年 和 2019 年 發(fā)布的 Java 趨勢報告一樣,我們也提供了 2023 年的內(nèi)部主題圖:

作為比較,這是我們 2022 年的內(nèi)部主題圖:

除了在 創(chuàng)新者 類別中出現(xiàn)了幾種新技術(shù)之外,其他值得注意的變化如下。
Java 17+ 被重新歸類為 Java 17,仍處于 早期采用者 階段,因為有更多的框架將 Java 17 作為基線。Java 21 已被列入 創(chuàng)新者 階段。
我們創(chuàng)建了一個新的標(biāo)簽 Fast JVM Startup,進一步細(xì)分為 Fast JVM Startup (CRaC)( 創(chuàng)新者 階段)和 Fast JVM Startup (GraalVM)(早期采用者 階段)。這是因為這些相對較新的技術(shù)近來已經(jīng)被引入到 Java 社區(qū)中。
以下是 InfoQ Java Queue 編輯和 Java Champions 針對各種主題的討論摘要。參與者包括:
Michael Redlich,Garden State Java User Group 負(fù)責(zé)人,InfoQ Java Queue 主編。ExxonMobil Technology & Engineering Company 退休高級研究技術(shù)員;
Johan Janssen,ASML 軟件架構(gòu)師,InfoQ Java Queue 編輯;
Ixchel Ruiz,Linux 基金會大使;
Alina Yurenko,Oracle Labs GraalVM 開發(fā)者布道師;
Rustam Mehmandarov,Computas AS 首席工程師。
除此之外,我們還要感謝為我們的 2023 年“跨越鴻溝”模型提供意見的 Java Queue 編輯們:
Ben Evans,Red Hat 高級首席軟件工程師,InfoQ Java Queue 編輯和 Java Champion;
Erik Costlow,產(chǎn)品管理高級總監(jiān)和 InfoQ Java Queue 編輯;
Karsten Silz,資深全棧 Java 開發(fā)者和 InfoQ Java Queue 編輯;
Olimpiu Pop,mindit.io 首席技術(shù)官;
Bazlur Rahman,軟件工程師和 Java Champion;
Shaaf Syed,Red Hat 高級首席技術(shù)營銷經(jīng)理。
我們相信這份摘要提供了更多的背景信息,解釋了我們在內(nèi)部主題圖中對某些技術(shù)進行歸類的原因。
GraalVM/Cooridanted Restore at Checkpoint (CRaC)
Janssen:GraalVM 和 CRaC(Coordinated Restore at Checkpoint)在減少 Java 應(yīng)用程序啟動時間方面的改進令人印象深刻。GraalVM 的持續(xù)改進非常棒,而且與許多框架的集成使得在應(yīng)用程序中使用原生鏡像變得更容易。除了原生鏡像支持外,GraalVM 還提供了一個 Java 運行時引擎,可以用來替換供應(yīng)商的 JVM,用戶可能只需通過更換運行時就可以為應(yīng)用程序帶來更好的性能。
Redlich:除了 JDK 20 和 JDK 21 的發(fā)布之外,我認(rèn)為最重大的變化來自 Oracle Labs 和 GraalVM。在過去的一年中,我們看到了:GraalVM 的部分技術(shù)被貢獻給了 OpenJDK;創(chuàng)建了 Project Galahad,該項目將專注于 Graal 即時(JIT)編譯器的開發(fā)和集成,作為替代現(xiàn)有 HotSpot JIT 編譯器的可能選項,并納入到未來的 OpenJDK 發(fā)布中;GraalVM 的發(fā)布與 OpenJDK 的發(fā)布保持一致;取消 GraalVM Enterprise,采用了新的許可。
Java 17 及其他
Ruiz:發(fā)布節(jié)奏以更易被接受的方式帶來了新特性,不同的用戶可以自行選擇體驗它們??偟膩碚f,人們對進行早期測試和提供更豐富的反饋保持著良好的心態(tài)。
某種程度上,這也簡化了 Java 生產(chǎn)版本的更新路線圖??深A(yù)測性有助于更好地協(xié)調(diào)開發(fā)團隊。
Yurenko:我看到對最新 Java 版本的采用速度在加快。我經(jīng)常在技術(shù)大會上聽到有人討論這方面的內(nèi)容,在我收到的問題中也有所體現(xiàn),也反映在了 GraalVM 團隊去年進行的 GraalVM 社區(qū)調(diào)查 中——63% 的用戶已經(jīng)在使用 Java 17 或更高版本。
Mehmandarov:今年發(fā)布了 Java 20 和 Java 21。其中一些關(guān)注度最高的特性是 Record Patterns 和 Pattern Matching for switch,它們終于結(jié)束了預(yù)覽狀態(tài)。對于處理大量數(shù)據(jù)和簡化代碼來說,這些可能是令人感到興奮的特性。
原生 Java (GraalVM/Spring Native/Project Leyden)
Yurenko:我看到很多項目和庫都在采用 GraalVM,特別是 Native Image。Spring Boot 現(xiàn)在支持 開箱即用的 Native Image,還有其他流行的 Java 框架,我看到 許多庫 也已添加了對 Native Image 的支持。
初學(xué)者的 Java
在 JDK 21 中發(fā)布的 JEP 445(Unnamed Classes and Instance Main Methods (Preview) 受 2022 年 9 月發(fā)表的博文 Paving the on-ramp 的啟發(fā),該文由 Oracle Java 語言架構(gòu)師 Brian Goetz 撰寫。這個特性將“讓學(xué)生在不需要理解為大型程序設(shè)計的語言特性的情況下編寫他們的第一個程序”。
JEP 463(Implicitly Declared Classes and Instance Main Methods (Second Preview))最近從 JEP Draft 8315398 進入到 Candidate 狀態(tài),我們預(yù)計它將在 JDK 22 中發(fā)布。這個 JEP 之前叫Unnamed Classes and Instance Main Methods (Preview)、Flexible Main Methods and Anonymous Main Classes (Preview)和Implicit Classes and Enhanced Main Methods (Preview),根據(jù)對 JEP 445 的反饋做了增強。Oracle 技術(shù)顧問團隊成員 Gavin Bierman 發(fā)布 了針對 Java 社區(qū)評審的 規(guī)范文檔 初稿。
Yurenko:與此相關(guān)的另一個趨勢是,Java 對于初學(xué)者來說變得更加易用。我認(rèn)為對于社區(qū)來說,保持對初學(xué)者(無論是學(xué)生還是行業(yè)新人)的開放和歡迎態(tài)度非常重要。Records、Pattern Matching、Unnamed Classes 和 Instance Main Methods 等特性可以讓初學(xué)者更快地學(xué)習(xí) Java,更輕松地開發(fā)他們的第一個應(yīng)用程序,并變得更加高效。
Java 社區(qū)在說些什么
Ruiz:社區(qū)反應(yīng)激烈,許多人在關(guān)注 Java 21 的發(fā)布。自首次預(yù)覽以來,Project Loom 就一直吸引著許多開發(fā)者,特別是虛擬線程和結(jié)構(gòu)化并發(fā)。
其他一些人在關(guān)注 JVM 的進展,這些進展并不只局限于 Java 語言本身的語法變化。
對于從 Java 8 到新版本的遷移計劃,人們的態(tài)度是“現(xiàn)在或永遠(yuǎn)不”!
Yurenko:我最近看到了一種有趣的分析社區(qū)發(fā)展趨勢的方法—— Vaadin 開發(fā)者關(guān)系副總裁 Marcus Hellberg 分析了 2023 年的 4 個主要 Java 大會上的演講內(nèi)容。你可以自行查看這篇文章,以下是我的一些結(jié)論:
微服務(wù)和 Kubernetes 仍然是最熱門的話題;
AI 和 ML 排名第三,證實了這個話題有多熱門;
很多人對框架相關(guān)的演講內(nèi)容很感興趣,在這份報告中提到的是 Spring Boot 和 Quarkus;
對我來說有些意外的是安全話題排名第五。
我看到的另一個趨勢是關(guān)于縮短 JVM 應(yīng)用程序啟動時間和提升性能的討論,這說明我們正在做的事情是對的。
Mehmandarov:最近,人們圍繞 虛擬線程 進行了許多討論,這個特性終于在 Java 21 中結(jié)束了預(yù)覽狀態(tài)。我們還看到了更多的生成式 AI 的發(fā)展和應(yīng)用(特別是用于代碼生成)。它的成熟度仍然有待提升,但這是一個令人興奮的開始。我們還看到了更多用于 AI 和 ML 的 Java SDK 或框架的演進,例如 Semantic Kernel、Deeplearning4J、djl 和 Tribuo。
Janssen: Java 生態(tài)系統(tǒng)仍在蓬勃發(fā)展,有許多新的發(fā)展和改進。除了已經(jīng)提到的內(nèi)容外,還有一些有趣的發(fā)展,主要集中在 AI 方面。我們看到了像 Spring AI 這樣的項目出現(xiàn),在所有基于 Python 的解決方案之外提供了另一種選擇。除了這些大熱門話題之外,還有許多其他有趣的項目,比如 Spring Modulith,它現(xiàn)在是一個官方的 Spring 項目,用于創(chuàng)建更好的單體應(yīng)用而不是微服務(wù)。
Redlich: 我在 2023 年聽到和看到的大部分熱議都集中在 Project Loom 上。特別是 虛擬線程 最終成為 JDK 21 的一個特性。在這個備受矚目的 2023 年 9 月版本發(fā)布之前,有許多關(guān)于虛擬線程的演示和 YouTube 視頻。在 2023 年 9 月于紐約舉行的特別 Java Community Process (JCP) 25 周年慶典 上,JCP 執(zhí)行委員會成員組成的小組表示,他們最喜歡的 JDK 21 特性就是虛擬線程。
令人感到意外和興奮的新趨勢是什么
Ruiz: 鑒于人們對 LLM、ML 和 AI 的關(guān)注,看到一些為特定應(yīng)用場景、工作流和產(chǎn)品而生的新項目、庫和 Java API,我并不會感到驚訝。
Mehmandarov: 如果我不得不選擇一個趨勢,那就是生成式 AI,特別是它更加專注于代碼生成。盡管生成的代碼中存在邏輯錯誤、幻覺和其他問題,但它仍然可以被歸入“意外、新穎和令人感到興奮”的范疇。
Janssen: 看到了 Java 21 中有許多新特性,例如來自 Project Loom 的虛擬線程。我有點擔(dān)心其中一些特性會被推遲到以后的 Java 版本中。由于 Java 21 是新的長期支持 (LTS) 版本,很高興它們被包括在內(nèi),因為許多公司只使用 LTS 版本。乍一看似乎沒有移除大的東西,我希望這能讓項目的升級更加容易一些?,F(xiàn)在通過 OpenRewrite 進行升級會更加容易,它不僅可以自動升級 Java,還可以升級第三方庫, 如 JUnit。
Redlich: 正在開發(fā)的 MicroProfile JWT Bridge 規(guī)范是 Jakarta EE 和 MicroProfile Working Groups 的合作成果。這個新規(guī)范可以讓開發(fā)者在 MicroProfile JWT Authentication 規(guī)范的基礎(chǔ)上構(gòu)建 Jakarta Security 應(yīng)用程序,它提供了無縫的集成,可以避免重復(fù)的工作和循環(huán)依賴。這項工作的目標(biāo)是將 MicroProfile JWT Authentication 的可選部分連同 TCK 移至新規(guī)范中,并為 MicroProfile 7.0 做好準(zhǔn)備。
Java 領(lǐng)域最令你感到激動的是什么
Ruiz:JVM 領(lǐng)域 CLI 工具的復(fù)蘇。我們已經(jīng)看到了一些成熟的項目,解決或減少了開發(fā)者在體驗、測試、發(fā)布和發(fā)布工具、項目和產(chǎn)品時出現(xiàn)的問題。JBang 和 JReleaser 就是這一系列復(fù)蘇工具的一部分。
Yurenko:我每天都會看到許多新項目的出現(xiàn)。例如,AI 和 ML 可能是目前最熱門的趨勢,對于 Java 開發(fā)者來說,這個領(lǐng)域有很多機會。我最喜歡的一個項目是 Tribuo,這是由我在 Oracle Labs 的同事開發(fā)的一個開源 ML 庫。OpenJDK 項目 Valhalla 和 Panama 也將極大為面向 AI 開發(fā)的 Java 開發(fā)者提供便利。
Mehmandarov:這個領(lǐng)域有許多令人激動的事情,一些是新出現(xiàn)的,一些是即將到來的,比如 String Templates(仍處于預(yù)覽狀態(tài))以及支持機器學(xué)習(xí)和 Java 的各種庫,還有一些相對成熟但仍在不斷改進和添加新特性的項目,比如針對 Java 的云原生棧(比如 Jakarta EE 和 MicroProfile)。
在處理大型數(shù)據(jù)集方面,我也看到了更多類似 Data-Oriented Programming in Java 的概念,以及更多關(guān)于更高內(nèi)存使用效率的改進,比如 Project Lilliput 和 Valhalla 中的值對象。
此外,我很高興能夠與全球 Java 社區(qū)進行互動。這是一個真正充滿活力和支持的團體,他們渴望學(xué)習(xí)并分享他們的知識。
Redlich:我準(zhǔn)備了一個叫作“Jakarta EE 11:超越 Java EE 時代”的演講,從 2023 年 11 月開始。自 2018 年以來,Jakarta EE 的發(fā)展令人驚嘆,研究 Jakarta EE 規(guī)范一直是一件很棒的事情。
Java 社區(qū)
Janssen:我們每年都會得到兩個新的 Java 版本,包含了許多特性和工具、庫和框架的改進。除此之外,我很高興看到能夠再次舉辦 Java 或 JVM 技術(shù)大會并吸引更多的與會者。因此,請大家確保參加了這些大會,了解更多關(guān)于 Java 發(fā)展的信息,并與其他開發(fā)者一起參與討論。
結(jié)論
需要注意的是,我們的討論參與者只告訴了我們故事的一部分,Java 生態(tài)系統(tǒng)的不同群體、部分和地區(qū)可能有不同的觀點。我們發(fā)布的 2023 年趨勢報告應(yīng)該被視為討論的起點,而不是確定性的陳述。當(dāng)然,也可以作為一個關(guān)于行業(yè)發(fā)展方向的開放性討論的邀請。
審核編輯:黃飛
-
JAVA
+關(guān)注
關(guān)注
20文章
2992瀏覽量
115250 -
虛擬機
+關(guān)注
關(guān)注
1文章
966瀏覽量
30052
原文標(biāo)題:InfoQ 2023 年趨勢報告:Java 篇
文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
OpenHarmony社區(qū)運營報告(2023年12月)
【推薦 】2009年最新java中級課堂實錄學(xué)習(xí)視頻----電驢下載
2009年最新java中級課堂實錄學(xué)習(xí)視
[原創(chuàng)]強烈推薦Java私塾2009年最新Java中級視頻
【亞派·趨勢】2017-2023年電能質(zhì)量設(shè)備市場將年增5.5%
延期?。∮鳸KCA標(biāo)志強制執(zhí)行日期延遲至2023年1月1日!
展望2023年,制造業(yè)技術(shù)的五大趨勢
OpenHarmony社區(qū)運營報告(2023年2月)
OpenHarmony社區(qū)運營報告(2023年3月)
OpenHarmony社區(qū)運營報告(2023年7月)
OpenHarmony社區(qū)運營報告(2023年8月)
2023年獎杯收到
Java教程之XML與內(nèi)容管理的詳細(xì)資料說明
2023年存儲芯片下滑趨勢仍在繼續(xù)
《福布斯》預(yù)測2023年八大科技趨勢

關(guān)于2023年Java趨勢的內(nèi)容
評論