国产人妻精品区一区二区,国产农村妇女毛片精品久久,JAPANESE日本丰满少妇,日本公妇理伦a片,射精专区一区二区朝鲜

云原生時代,Java 會走向末路嗎?
作者 | 龍蜥社(she)區2023-04-23

唱衰 Java 的(de)聲音(yin)由(you)來(lai)已久(jiu)。

尤其是(shi)近幾年,云原生(sheng)時代(dai)的(de)到來(lai),軟件的(de)交(jiao)付方(fang)式發生(sheng)了根本(ben)性變化,Java 遭受了諸多質疑。

傳統領域的(de) Java 開發,交付(fu)的(de)是 Java 應用(yong)本身(shen),具(ju)體體現在(zai)以 “jar”“war” 的(de)形式交付(fu),而云原生最佳實(shi)踐,則是基于微服務形式,以容器為基本交付(fu)單位(wei),并(bing)在(zai) K8S 中編排。云原生應用(yong)要求更(geng)快速(su)地啟動、強(qiang)調資源按量消費,彈性擴展(zhan),以及可觀(guan)測性等。就這一(yi)層(ceng)面(mian)而言,在(zai)云原生時代,Java 的(de)缺陷確實(shi)是天然存在(zai)的(de)。

“事實上(shang),Java 技(ji)術在(zai)云(yun)原(yuan)生(sheng)時代(dai)也在(zai)不停地進化。” 面對(dui)唱(chang)衰 Java 的諸多論調,龍蜥(xi)社區(qu) Java 語言(yan)(yan)和虛擬機 SIG 成員(yuan)、龍蜥(xi)社區(qu) RISC-V SIG 成員(yuan)、阿里云程序語言(yan)(yan)與編譯器團隊負責人(ren)、Java Champion 李三紅(hong)選(xuan)擇理性看待(dai)。

“比(bi)如更多支(zhi)持容器部署(shu)的(de)特性(xing)(xing)已經加入到 OpenJDK 版(ban)本。一直被人(ren)詬病的(de) Java 啟動慢的(de)問題,目(mu)前(qian)基于 OpenJDK 技(ji)(ji)術的(de)幾個創新(xin)項(xiang)目(mu)正在(zai)多個不(bu)同方向探索,包括 CRaC (Coordinated Restore at Checkpoint) 、Leyden,以及(ji)由阿(a)里和(he) Google 作為(wei)主要貢獻者的(de) Fast Startup Incubator 等項(xiang)目(mu)。在(zai)資源(yuan)彈性(xing)(xing)使用方面,由 Alibaba Dragonwell 提供的(de) ElasticHeap 功能,主要目(mu)的(de)是解決云計算(suan)環境(jing)下(xia) Java 內存資源(yuan)使用的(de)彈性(xing)(xing)問題。最后(hou),OpenJDK 的(de) JFR 以及(ji) JFR Streaming 技(ji)(ji)術為(wei)構(gou)建 Java 云原(yuan)生可觀測工(gong)具提供了(le)重要的(de)技(ji)(ji)術支(zhi)撐。”

Java 面臨的挑戰,不僅僅是(shi)云原(yuan)生(sheng)。

李三紅認為,從 1995 年 Java 1.0 發布算起(qi), Java 技術這(zhe)二十多年的發展,大致存在一(yi)明一(yi)暗(an)兩條線的驅動。“一條暗線,是指 Java 或者說(shuo)支撐(cheng) Java 的底層(ceng) JVM 技(ji)術適配計算機架構(gou)的演進與發(fa)展。一條明線,是指 Java 作為一(yi)個(ge)開發者工具,本質是要面向業務(wu)領(ling)域解(jie)決(jue)業務(wu)問(wen)題的(de),所以自然(ran)而然(ran)地推(tui)動了 Java 在云原生(sheng),AI 等方向的(de)演進,解(jie)決(jue)這些領(ling)域內碰到的(de)問(wen)題與挑戰。”

后摩爾(er)時代,算力(li)增(zeng)長(chang)放(fang)緩,更(geng)(geng)(geng)多利用多核(he)、SIMD(單指令(ling)多數(shu)據流)等(deng)并行計(ji)算技(ji)術,以(yi)(yi)及異構來釋放(fang)更(geng)(geng)(geng)大(da)的算力(li)。相較于 C/C++ 這些傳(chuan)統(tong)編譯型語言,Java 處在(zai)軟(ruan)件棧的更(geng)(geng)(geng)高(gao)抽象級(ji)別,自帶(dai) Java 標準庫,以(yi)(yi)及運(yun)行時環境(jing),這也給 Java 創(chuang)新帶(dai)來了更(geng)(geng)(geng)多的空間以(yi)(yi)及可能性。

李三紅指出, Java 在(zai)多(duo)核(he)、異構加速領域做了多(duo)方面的探索,適應與優化。比(bi)如,OpenJDK 孵化的 Vector API 項目(mu),依賴 CPU 的 SIMD 指(zhi)令,獲得計算性能的成倍提(ti)升。即將(jiang)發(fa)布的 OpenJDK 19 引入了(le)(le) Virtual Threads (Preview),旨在幫助 Java 開發(fa)者高(gao)效處理(li)并(bing)發(fa) (尤其針對 IO 密集型場景) 。而在異構領(ling)域,早 2014 年 JVM 技術峰會,AMD 就分享(xiang)了(le)(le) Sumatra 項目(mu),嘗試實現(xian) JVM 與 Heterogeneous System Architecture 目(mu)標硬件交互。由 The University of Manchester 發(fa)起(qi)的 TornadoVM 項目(mu),目(mu)標是幫助 Java 開發(fa)者不需要(yao)了(le)(le)解 GPU 編程語言或者相關的 GPU 體(ti)系結構知識(shi)就可以(yi)編寫面向異構的并(bing)行程序。

在 AI 方向上,Java 也在與時俱進。據(ju)李三紅(hong)介(jie)紹,在(zai)企業計算領(ling)域,Java 是(shi)被使用最多(duo)的(de)語言之一,但對于機器學習(xi)領(ling)域的(de)開發,Java 一直缺(que)乏(fa)標準支持,這個方向(xiang)其實在(zai) JCP-EC 討論也比較多(duo)。

基于 Java SE 技(ji)術,在 JCP 流程內推動(dong)并最終在 2022 年定稿的(de)(de) JSR 381 規(gui)范,其(qi)目(mu)標就是(shi)為(wei)不(bu)同領域的(de)(de) Java 機(ji)器學習(xi)開發提(ti)供(gong)(gong)通(tong)用(yong)的(de)(de)可重用(yong)設計。JSR 381 定義了(le)標準的(de)(de) Java API,提(ti)供(gong)(gong)了(le)基本機(ji)器學習(xi)、圖像分類(lei)和對象(xiang)識別方面的(de)(de)處理能力。“依賴(lai)于不(bu)同的(de)(de)機(ji)器學習(xi)平臺,如 TensorFlow、MXNet 以及 DeepNett 等,JSR-381 提(ti)供(gong)(gong)了(le)不(bu)同的(de)(de)實現。對于 Java 生態內的(de)(de)開發者(zhe)來(lai)說,不(bu)必再(zai)去(qu)學習(xi) Python, 可以依賴(lai) JSR-381 VisRec API 去(qu)構建你的(de)(de) AI 應用(yong)。”

現實(shi)中(zhong),Java 應用的(de)(de)(de)版本升(sheng)(sheng)級(ji)是(shi)較為緩慢的(de)(de)(de)。Java 11 (OpenJDK11)距離 2018 年發布(bu)已經過(guo)去四年多(duo),目前國(guo)內大多(duo)數的(de)(de)(de)用戶(hu)仍然停留(liu)在 Java 8。李三(san)紅認為,動力不足(zu)是(shi)多(duo)方面的(de)(de)(de),對開發者來(lai)說最(zui)直接的(de)(de)(de)原(yuan)因可能(neng)是(shi)擔心(xin)升(sheng)(sheng)級(ji)后兼容性帶來(lai)的(de)(de)(de)穩定性問題,會直接影(ying)響業務的(de)(de)(de)連(lian)續性。

這(zhe)種問題并不(bu)罕見(jian)。令人振奮(fen)的(de)(de)(de)是,處于 Java 生態中的(de)(de)(de)企業(ye)正在貢(gong)獻自己的(de)(de)(de)力(li)量(liang)。阿里(li)內部在大規模地往 Java 11、 Java 17 遷(qian)移的(de)(de)(de)時候,總結(jie)了(le)不(bu)少的(de)(de)(de)經(jing)驗,并且將(jiang)這(zhe)些(xie)經(jing)驗通過工具的(de)(de)(de)方式沉(chen)淀下來。最后(hou)阿里(li)開(kai)源了(le) EMT4J (Eclipse Migration Toolkit for Java) ,能夠幫助 Java 應(ying)用(yong)無縫(feng)升級最新版本(ben) JDK, 主要(yao)支持從 Java 8 到(dao) Java 11,以及 17 的(de)(de)(de)升級。

李三(san)紅(hong)還(huan)補充道,對于 Java 版本(ben)的升級問題(ti),還(huan)可以從另(ling)一(yi)個角度 ——Software Sustainability 來進一(yi)步探討。

“由 Titus Winter 等編寫(xie)的(de)(de)《Software Engineering at Google - Lessons Learned from Programming Over Time》一書中(zhong),談到了組織(zhi)的(de)(de) Codebase Sustainability 概念,強調了兩個核(he)心理念:第(di)一(yi),無論應(ying)對的(de)(de)是(shi)技術需求,還是(shi)業務(wu)需求,軟件代碼應(ying)當可(ke)以(yi)做(zuo)一(yi)切應(ying)該做(zuo)的(de)(de)改變。第(di)二(er),這些改變帶來(lai)的(de)(de)影響是(shi)安全的(de)(de)

“回到 Java 版本(ben)升(sheng)級(ji)(ji)這(zhe)個(ge)問題,我們在開發 Java 應(ying)用的(de)(de)時候,建議(yi)應(ying)用架(jia)構師們把(ba) Java 版本(ben)升(sheng)級(ji)(ji)納入到 Software Sustainability 這(zhe)個(ge)維度下考量,對(dui)代碼開發規范進行相關的(de)(de)約束(shu)。例如,不(bu)要(yao)(yao)讓你(ni)的(de)(de)代碼依賴(lai) JDK 內部不(bu)公開的(de)(de) API,不(bu)要(yao)(yao)讓你(ni)的(de)(de)實現依賴(lai)特定的(de)(de) JDK 版本(ben)行為,不(bu)要(yao)(yao)使用被(bei) Deprecated 的(de)(de) API 等等。架(jia)構的(de)(de)目標應(ying)當(dang)考慮(lv) Code Sustainability,讓你(ni)的(de)(de) Java 應(ying)用可(ke)以在任何時候根據(ju)實際(ji)需要(yao)(yao)平(ping)滑升(sheng)級(ji)(ji)到不(bu)同 JDK 版本(ben),不(bu)應(ying)當(dang)因為代碼缺(que)乏(fa) Sustainability 而導致的(de)(de)盡量少的(de)(de)版本(ben)升(sheng)級(ji)(ji)。”

李三(san)紅(hong)對 Java 的未(wei)來(lai)充滿信心(xin),源于他(ta)在 JVM 領域耕耘多年(nian),不僅深入了解 Java 特性,并且有能力進(jin)行創新性研究。

在(zai)加(jia)入阿里(li)(li)之前(qian),李三(san)紅一(yi)直在(zai) IBM Java 技術中心,參與(yu) J9 虛(xu)擬(ni)機(ji)開發(fa),期間領(ling)導(dao)了(le) JVM 多租(zu)戶(hu)項目。目前(qian)就職于阿里(li)(li)云(yun),領(ling)導(dao)程序語言與(yu)編譯(yi)器團隊,主要的工作是結合(he)阿里(li)(li)、螞蟻(yi)及云(yun)上各業務的需求,在(zai)編譯(yi)器、語言運行(xing)時(shi)等(deng)基礎領(ling)域進行(xing)研究創新。編程語言(yan)是(shi)(shi)基礎軟件(jian)的核心,也(ye)是(shi)(shi)龍蜥技術生(sheng)態的八大方向之一,Dragonwell 是(shi)(shi)龍蜥社區 Java 語言(yan)和虛擬機 SIG 下的項目。目前,在語言工具鏈這塊,已經(jing)形成 Alibaba Dragonwell (Java 生態),Alibaba Cloud Compiler (C++ 生態) 等多個產品來支撐其業務(wu),語言工具鏈(lian)相關(guan)的開(kai)源技(ji)術也(ye)在為龍蜥社區(qu)的開(kai)發(fa)者(zhe)提供支(zhi)持(chi)

2020 年,李三紅獲(huo)得(de)了 Java 技(ji)術(shu)領導者社(she)區(qu) Java Champions 推薦,被授(shou)予 Java Champion 榮譽(yu)。Java Champion 由(you) Java 社(she)區(qu)成(cheng)員(yuan)提名(ming),并且必須得(de)到現有(you) Java Champions 成(cheng)員(yuan)的一致(zhi)同意。唯有(you)為 Java / JVM 生(sheng)態系統做出(chu)重要貢(gong)獻的專家才能獲(huo)此榮譽(yu)。

去年,龍蜥(xi)社區理事長單位阿里(li)云第(di)三(san)(san)次入選 JCP 最高執行委員會 (JCP-EC),作(zuo)為阿里(li)云在 JCP-EC 的代表,李(li)三(san)(san)紅一直在參與 JCP-EC 領(ling)導下的相(xiang)關 Java 標準討論制定工作(zuo)。

熱門文章
4月20日,由OFweek維科網主辦、OFweek維科網·機器人承辦的“OFweek 2023(第十二屆)中國機器人產業大會在深圳舉辦。橋田智能銷售負責人陳宗琪應邀出席,參與了本次大會的圓桌論壇和CE
2023-04-23
X