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

2023年存儲(chǔ)芯片下滑趨勢(shì)仍在繼續(xù)
《福布斯》預(yù)測(cè)2023年八大科技趨勢(shì)

評(píng)論