Java正在卷土重來?別開玩笑了,它明明一直很火
發(fā)布時間:2022-12-07“Java 不行了?”“Java 統(tǒng)治地位已不復(fù)存在?”
作為一門歷史悠久的經(jīng)典語言,在新語言層出不窮的時代,Java 似乎隔三差五就要面對類似的消極評價。隨意聽聽近來開發(fā)人員們的流言蜚語,你可能會認為 Java 正處于一個大的衰退期,甚至到了垂死掙扎的邊緣。再仔細看那些人氣數(shù)據(jù),你也會認為 Java 已經(jīng)慢慢地將市場份額拱手讓給了它的競爭對手。
但一些反對“Java 消亡論”的支持者可能會反駁說,是因為有越來越多的語言出現(xiàn),所以大家能分到的蛋糕也越來越小。
事實上,無論你看的是哪家排名,比如 TIOBE 指數(shù)、編程語言流行指數(shù)、RedMonk 的雙年度語言排名,又或者是 GitHub 的年度 Octoverse 狀態(tài),你會發(fā)現(xiàn) Java 自 1995 年發(fā)布以來一直都躋身前三名。
我認為,雖然早期 Java 的發(fā)展遇到過一些小問題,但如今這門語言及其更大的生態(tài)系統(tǒng)已經(jīng)加快發(fā)展步伐,以各種方式來滿足未來的需求。
同時,強調(diào)說,Java 一直都沒有離開過:亞馬遜、谷歌、Netflix、Pinterest、Spotify、Square 和 Zoom 等公司都在其龐大的代碼庫中使用了 Java。更不用說在過去的十年中,許多大型數(shù)據(jù)基礎(chǔ)設(shè)施都是由 Java 來提供支持的,這門語言可以說是 Apache Hadoop、Kafka 和 Spark 等公司的支柱。
那些年對 Java 的不滿
Java 于 1995 年首次亮相,并承諾能夠“一次編寫,隨處運行”(WORA),這一特性使它在當(dāng)時占主導(dǎo)地位且依賴平臺的語言(如 C 和 C++)中脫穎而出。
在推出后不久,它就通過 Java 小程序(applet)進入了 Web 瀏覽器,開發(fā)者們就突然有了一種可以跨越蘋果與 PC 戰(zhàn)線的語言,并進入到蓬勃發(fā)展的萬維網(wǎng)。雖然在 1995 年還誕生了 PHP、Ruby 和 Javascript,但它們都沒有像 Java 那樣迅速流行起來。
接下來短短兩年時間,Java 的受歡迎程度就排到了第三名,僅次于 C 和 C++。到 1998 年,它超過了 C++,并于 2001 年超過 C,攀升至第一寶座。在六年的時間里,Java 主導(dǎo)了軟件開發(fā)世界。雖然這一地位持續(xù)了十多年,但在 Java 世界中,并非所有人都對它感到滿意。
EPI-USE Labs 的首席解決方案架構(gòu)師 Andrich van Wyk 回憶起 Java 語言發(fā)展停滯不前的時期,那時候盡管它處于主導(dǎo)地位,但也受到了質(zhì)疑。低谷出現(xiàn)在 2009 年左右,當(dāng)時 Java 6 已經(jīng)推出將近三年,而 Java 7 還差兩年才能問世。當(dāng) Java 7 最終問世時,van Wyk 回憶說,它“雖然經(jīng)過了 5 年的開發(fā),但它還是一個相對平庸的版本”。
他將當(dāng)時描述為“開發(fā)人員渴望更現(xiàn)代的語言功能、更少的冗長代碼、以及新的編程范式”的時代。Ruby 的 Rails 框架可能正處于其最初的操作周期的頂峰,而 Node.js 才剛剛出現(xiàn),兩者都體現(xiàn)了代碼簡潔、快速原型化、以及可用于快速構(gòu)建現(xiàn)代 Web 應(yīng)用程序的庫等特性。換句話說,它們有許多 Java 所沒有的東西,至少在當(dāng)時來看是這樣的。
“所有這些東西后來都可以通過現(xiàn)代版本和 Spring Boot 等框架在 Java 中使用,但我們不得不等到 2014 年 Java 8 的發(fā)布來啟動這種復(fù)興。”van Wyk 回憶說,Java 6 和 8 之間間隔了近十年是問題的關(guān)鍵之處。
所以如果說有可以讓 Java 幾乎宣告死亡的時刻,大概就是那時候。對 Java 來說,幸運的是,公司和開發(fā)人員已經(jīng)在全力以赴地開發(fā) Java,并且它在許多組織中已經(jīng)是根深蒂固。所以即使有許多用戶越來越不滿意,以及語言的創(chuàng)新停滯不前,但 Java 仍然在提供大量庫和工具的同時也提供了性能。也許它從未真正實現(xiàn)“一次編寫,隨處運行”的承諾,但它具備高性能、內(nèi)存安全等特點,是互聯(lián)網(wǎng)基礎(chǔ)設(shè)施和大規(guī)模應(yīng)用的理想選擇。
不管怎么說,2014 年 Java 8 和 Spring Boot 的推出還是給 Java 生態(tài)系統(tǒng)帶來了一股新鮮空氣,開啟了一段復(fù)興期。Spring Boot 是十年前推出的流行的 Spring 框架的繼任者,它幫助開發(fā)人員消除 Java 的冗長,而 Java 8 引入了開發(fā)人員一直在破解期待的許多功能,如日期和時間 API 以及 Lambda 表達式。