編輯 | 云昭
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
5月,Java迎來了30歲生日。
它是一門很魔幻的語言。自首次亮相的三十年間,Java始終在主導(dǎo)著各大企業(yè)級的開發(fā)市場,經(jīng)受住了無數(shù)“殺手級”技術(shù)的沖擊,云原生來了,它跟進,大模型來了,它集成,不管現(xiàn)代計算的創(chuàng)新風(fēng)云如何變幻,Java始終屹立不倒。
30年里,多少有關(guān)“Java消亡”、“Java已死”的言論此起彼伏,但回頭看,Java這朵傲梅依舊“傲視群芳”,它依舊是企業(yè)軟件開發(fā)領(lǐng)域的王者,并持續(xù)為全球最關(guān)鍵的商業(yè)應(yīng)用提供動力。
“到目前為止,Java對此有著最佳的實踐記錄。”
近日,知名公司Azul Systems的聯(lián)合創(chuàng)始人兼首席技術(shù)官Gil Tene在一次采訪中被問及當(dāng)今應(yīng)用的長期可維護性問題時,認為Java有著絕對的優(yōu)勢。
圖片
他指出,“今天你就能雇到人。你有數(shù)百萬掌握技能的人可以雇傭,他們能夠維護10到15年前用Java編寫的應(yīng)用程序。沒有其他語言能真正做到這一點。”
那么,Java會消亡嗎?當(dāng)然。 Tene認為,在技術(shù)領(lǐng)域,沒有什么是永恒的,最終會有東西取代Java。
“當(dāng)那發(fā)生時,我敢肯定,無論它叫Java還是別的什么,我們都會深入研究它、熱烈討論它,并為之興奮。”
話不多說,本篇文章帶領(lǐng)各位探討:30歲的Java是如何殺出一條血路,并將如何在AI大行其道的今天,續(xù)寫王者傳奇!
1.在炒作周期中幸存
Java經(jīng)受住了無數(shù)本應(yīng)取而代之的技術(shù)挑戰(zhàn)。Tene舉例說:“我記得20年前就回答過這個問題,從那以后我的回答方式也大致相同,因為你可能還記得,在21世紀初,LAMP(Linux、Apache、MySQL、PHP/Perl/Python)技術(shù)棧曾一度要席卷全球并扼殺Java,但現(xiàn)在已經(jīng)沒有多少LAMP技術(shù)棧的程序員了。”
那些所謂的Java“殺手”名單,聽起來像是一個曾經(jīng)熱門技術(shù)的墓地。“然后是Ruby on Rails,它也曾揚言要席卷全球并扼殺Java,但現(xiàn)在已經(jīng)很難找到Ruby程序員來維護那些東西了,”Tene補充道。
值得注意的不僅僅是Java的生存能力——更是其持續(xù)的增長。“Java一點也沒有萎縮。Java一直在持續(xù)增長、增長、再增長,并且它的鄰居們(其他技術(shù))也在不斷發(fā)展壯大,”Tene解釋說。
2.從硬件先驅(qū)到軟件創(chuàng)新者
Azul Systems 本身就體現(xiàn)了Java的演進。該公司成立于2002年,最初通過構(gòu)建定制硬件來解決Java性能問題,這是一種新穎的方法。“我們圍繞運行Java應(yīng)用程序構(gòu)建了一些有趣的數(shù)據(jù)中心硬件解決方案,并將它們整合、集中到我們稱之為計算設(shè)備和計算設(shè)備集群中,”Tene回憶道。“今天,我們會稱之為虛擬Java云。”
但隨著計算領(lǐng)域的變化,Azul也隨之改變。“在21世紀末,隨著商用硬件變得足夠好,以及虛擬機監(jiān)控程序、虛擬化技術(shù)乃至云計算的興起,我們轉(zhuǎn)型,脫離了硬件,”他解釋說。大約15年前,該公司轉(zhuǎn)型為他所說的“純軟件公司”。
如今,Azul在Java生態(tài)系統(tǒng)中占據(jù)著獨特的地位。“我們擁有Java領(lǐng)域最大的工程團隊,”Tene說。“在Java領(lǐng)域,除了Oracle之外,我們可能擁有最大的商業(yè)產(chǎn)品,”他說。該公司目前服務(wù)于各個垂直行業(yè)的客戶,專注于讓Java運行得更快、更高效。
3.JVM打破性能壁壘
Azul的Optimizer Hub代表了Java虛擬機(JVM)運作方式的根本性轉(zhuǎn)變。該技術(shù)不再讓每個JVM獨立優(yōu)化代碼,而是允許整個JVM集群共享優(yōu)化數(shù)據(jù)。
“它允許一個JVM集群進行協(xié)調(diào)、共享經(jīng)驗并共同進行交叉優(yōu)化,而不是每個JVM獨立運行并完全自行處理其必須面對的問題。”
他說,一些“非常大的機構(gòu)”已經(jīng)采用了這項技術(shù),并將其投入到擁有數(shù)萬個JVM的生產(chǎn)環(huán)境中進行“集群協(xié)調(diào)”。
Azul最新的創(chuàng)新是上個月推出的JVM Inventory。該公司聲稱,作為Azul Intelligence Cloud的一項功能,JVM Inventory是一個Java發(fā)現(xiàn)工具和“云服務(wù),它能持續(xù)編目正在運行的JVM,從而將Oracle Java的遷移時間縮短數(shù)月,并幫助確保Oracle許可證的持續(xù)合規(guī)以應(yīng)對審計。”
此外,該公司基于LLVM框架構(gòu)建的Falcon JIT編譯器,彰顯了Azul致力于推動Java性能邊界的決心。“Falcon JIT編譯器產(chǎn)生的Java代碼是世界上所有JVM中最快的,而且領(lǐng)先幅度很大。它比OpenJDK中的C2編譯器快30%到40%,”Tene聲稱。
4.從Applet到AI,Java正在找自己的位置
Java的演進本身就講述了現(xiàn)代計算的故事。Tene說,30年前,它只是“網(wǎng)頁瀏覽器中一個有趣、古怪的小東西”,如今已成為企業(yè)計算的支柱。
他補充說,在90年代末,Java“有點像闖入了企業(yè)計算領(lǐng)域,然后在最初推出的三到四年內(nèi)就主導(dǎo)了企業(yè)應(yīng)用。”
“如果你回顧Java的初期以及它如何迅速取代了之前用于構(gòu)建商業(yè)應(yīng)用的所有其他技術(shù),我們可以說,我們還沒有看到能夠取代Java的東西,”Tene指出。“從那種情況發(fā)生到每個人都用那種[新語言]而不是Java來構(gòu)建應(yīng)用程序,可能只需要大約兩到四年時間,而我們根本沒有看到這種趨勢發(fā)生的任何跡象。”
然而,即使在新興的人工智能領(lǐng)域,Java也正在找到自己的位置。“根據(jù)我?guī)讉€月前聽到的統(tǒng)計數(shù)據(jù),Java目前是該領(lǐng)域排名第三的語言,而Python則遙遙領(lǐng)先,”Tene在談到AI應(yīng)用開發(fā)時說。“我們看到希望將AI融入應(yīng)用程序的應(yīng)用數(shù)量大幅增加,這對于Java應(yīng)用程序來說是很自然的事情。”
5.獨有的企業(yè)開發(fā)優(yōu)勢
Java的持久力歸結(jié)為一個簡單的商業(yè)現(xiàn)實:企業(yè)需要能夠持久運行的軟件。“當(dāng)你試圖弄清楚你想用什么來構(gòu)建你的應(yīng)用程序時,你應(yīng)該考慮的一件事是,五年后、十年后你將如何維護它?你是否能夠雇傭到所需的人才來保持這個東西的活力和運行?”
這種理念也延伸到了Java的開源生態(tài)系統(tǒng)。“整個Java社區(qū)傾向于產(chǎn)生長壽的框架、項目和庫,人們會使用并依賴它們很多很多年,”Tene解釋說。“如果你觀察大多數(shù)Java社區(qū)項目,會發(fā)現(xiàn)它們沒有太多丑聞發(fā)生,也沒有很多獨裁者或討厭的人在運營它們。”
Azul在其客戶群中親眼見證了這種穩(wěn)定性。“由于Java如此普遍、如此流行,我們幾乎在你能想到的所有垂直行業(yè)都有各種規(guī)模的客戶,”Tene說。“當(dāng)他們希望Java運行得好或更好時,當(dāng)他們要么需要Java應(yīng)用的良好指標(這是我們Prime平臺的強項),要么只是想要非常好的、負責(zé)任地構(gòu)建、有支持的開源產(chǎn)品(這是我們Core平臺的核心),我們都會為這些客戶提供服務(wù)。”
此外,Tene說,JavaScript用于Web圖形用戶界面,而Python是開發(fā)者用來“編寫非常輕量級的東西和服務(wù)”的方式。“但每當(dāng)你看到事情走向成熟——從原型設(shè)計和一些初始功能發(fā)展到‘我需要大規(guī)模運行這個,并且不能讓它的成本是應(yīng)有成本的50倍’時,它們往往會轉(zhuǎn)向像Java這樣的東西。”他列舉了Twitter(現(xiàn)在的X)和LinkedIn作為例子。
“我們看到很多人用Java或基于Java的語言(如Kotlin、Scala或今年JVM上出現(xiàn)的任何新語言)重寫大型后端,但從這個意義上說,它們都是基于Java的,我們看到的這種情況只多不少,”Tene說。
6.現(xiàn)代Java的復(fù)興
與此同時,那些可能還記得Java冗長和笨重的用戶,可能會對其現(xiàn)代的化身感到驚訝。“將于今年晚些時候發(fā)布的Java 25,與Java 8相比,在易用性、友好度和項目啟動便捷性方面都有了顯著提升,”Tene說。
該語言還通過虛擬線程等創(chuàng)新?lián)肀Я嗽圃_發(fā),這些創(chuàng)新有望簡化并發(fā)編程。“至少在Java中,我們正在嘗試進行一種轉(zhuǎn)變,我認為隨著Java 25及更高版本的推出,我們將有機會回歸到操作在線程中運行的簡單舊概念,并能夠同時運行數(shù)百萬個此類線程。”
Azul也通過諸如檢查點協(xié)調(diào)恢復(fù)(CRaC)這樣的項目為Java的即時啟動能力做出貢獻。“我們領(lǐng)導(dǎo)的那個OpenJDK項目專注于為Java應(yīng)用程序和云環(huán)境提供非常快速的啟動。所以,可以想象一下那些需要自動擴展的微服務(wù)或需要快速啟動的云函數(shù)。”
7.會有新東西取代Java但我會為之興奮
盡管Java目前占據(jù)主導(dǎo)地位,但Tene承認,在技術(shù)領(lǐng)域沒有什么是永恒的。最終會有東西取代Java。“當(dāng)那發(fā)生時,我敢肯定,無論它叫Java還是別的什么,我們都會深入研究它、熱烈討論它,并為之興奮。”
但就目前而言,在其誕生三十年后,Java繼續(xù)證明,有時最好的技術(shù)并非最新潮的——而是那些行之有效、可擴展且持久耐用的技術(shù)。正如Tene在談到接下來可能會出現(xiàn)什么重要的編程語言時所說:“我們只是還沒看到它,我從21世紀初到中期就一直在這么說,所以,你知道,我一直在尋找,只是還沒看到它。”
不過,目前看,Java的王者之威依舊。毫無疑問的是,Java30年鑄就的生態(tài)已經(jīng)足夠強悍,即便放在今天這樣一個癡迷于追逐下個“重大事件”的行業(yè)中,沒有哪個企業(yè)敢放豪言:拋棄Java吧!
這表明,可靠性、可維護性和強大的生態(tài)系統(tǒng),通常比尖端、前沿的功能更為重要。
參考鏈接:https://thenewstack.io/azul-cto-java-at-30-still-rules-enterprise-dev/



















