Java已經(jīng)存在了很長時間,并且在過去的幾年中,它進行了重大更改以保持其相關性。根據(jù)JetBrains 在2019年的開發(fā)者生態(tài)系統(tǒng)狀況報告,它仍然是開發(fā)人員中最受歡迎的編程語言。但它可能不會永遠保留該標題。

java

盡管它仍然位于許多編程語言的頂部,但其他語言(例如Python)也正在緊隨其后。實際上,TIOBE預測,在未來幾年中,Python將超越Java(和C)成為最受歡迎的編程語言。

Python不是Java的唯一競爭者。Kotlin的崛起也奪走了Java的部分份額,特別是在Google開始支持Kotlin進行Android開發(fā)之后。

Java恰好在正確的時間放置在正確的位置,類似于Python現(xiàn)在在正確的時間在正確的位置出現(xiàn)在AI和機器學習上的興趣激增。

根據(jù)Red Hat產(chǎn)品管理高級總監(jiān)Rich Sharples的說法,在25年前創(chuàng)建Java時,Java的設計考慮了網(wǎng)絡,并且具有許多用于網(wǎng)絡通信的功能。大約在多處理器系統(tǒng)開始流行的時候,它是最早利用這些硬件進步而無需開發(fā)人員進行過多工作的語言之一。

除了這些功能之外,它還獲得了Sun Microsystems,IBM和Oracle的業(yè)界大力支持,最終收購了Sun。所有這些因素共同使Java成為一種非常成功的語言,并且是數(shù)十年來許多開發(fā)人員的首選。

Sharples解釋說,之所以如此受歡迎,是因為它仍然可以滿足跨網(wǎng)絡工作的需求。當然,它也是開源的。“如今,技術領域發(fā)生的幾乎所有有趣的事情都是圍繞開源進行的。而且在主流開放源代碼中也相對較早。因此,從技術角度來看,它已選中了所有復選框。”他說。

Java非常適合當時的環(huán)境,但是隨著技術的變化,它還沒有真正老化。Sharples解釋說Java做了很多“很酷的動態(tài)工作”,但是微服務和無服務器等技術并不需要這些功能。

根據(jù)Sharples的說法,當在這類環(huán)境中工作時,開發(fā)人員往往會在遇到問題時才重新開始。夏普萊斯說:“如果我們看到一個問題,我們看到一個錯誤,我們就將所有東西都燒掉,然后以最新版本重新部署新容器。”

因此,實際上不再需要Java擁有的所有這些動態(tài)功能。“您得到的很多東西在那些現(xiàn)代體系結構中并沒有真正提供太多價值……回想一下,Java被設計為在大型多進程計算機上運行。您幾乎可以保證自己擁有這臺機器,并且可以為每個JVM或應用程序服務器運行多個應用程序。那不是我們今天生活的世界。現(xiàn)在,您可以在一定時間內獲得虛擬機的一部分,甚至只是一個函數(shù)的一部分。因此,這些功能中的許多功能帶來了很大的負擔和復雜性,并且價值不大。因此,如果您將函數(shù)作為服務看待,您不會發(fā)現(xiàn)Java提到了很多東西。”

java

但是Sharples認為Java不會消失。他認為Java可能會在很多年甚至幾十年內仍會經(jīng)歷增長。

有許多項目使Java在當今的環(huán)境中蓬勃發(fā)展,例如Oracle的GraalVM(它允許在共享的運行時中實現(xiàn)互操作性)和Red Hat的Quarkus(這是Kubernetes的本機Java框架)。

負責Java Enterprise Edition(現(xiàn)為Jakarta EE)的Eclipse基金會執(zhí)行董事Mike Milinkovich也認為Java本身將會發(fā)展以支持這些技術。“我認為從JVM到Java都將發(fā)生Java更改,” Milinkovich說。“因此,JVM中的任何新功能都將有助于將JVM與Docker容器集成在一起,并能夠更好地在Kubernetes中對Docker容器進行檢測,這無疑將是一個很大的幫助。因此,我們將尋求Java SE向該方向發(fā)展。”