我們看到“Java 死了嗎?” 這個問題,年年都被拋出來,然而至今為止,從所有的第三方統(tǒng)計來看,Java 不僅活的很好,還在保持增長。雖然不斷有新的語言面世,TIOBE 仍將 Java 評選為 2015 年度最熱門語言,目前顯示它相比 2014 年,用戶增加了 5%,高于其他所有編程語言。
不僅如此, PYPL Index(一個基于谷歌搜索中教程搜索頻度對語言進(jìn)行評估的站點(diǎn))的數(shù)據(jù)顯示, Java 以 23.9% 的搜索量遙遙領(lǐng)先。
雖然有很多階段性因素令 Java 在過去 2 年迎來復(fù)興( android 開發(fā)的爆發(fā),Java 8 的發(fā)布,Spring 社區(qū)的發(fā)展,尤其是 Spring Boot),但是市場的主導(dǎo)地位只可能來源于優(yōu)秀的產(chǎn)品。以下是一些我們認(rèn)為 Java 不會很快衰落原因。
JVM 和 Java 生態(tài)
Java 虛擬機(jī)(JVM)將代碼編譯為字節(jié)碼,并在 JVM 中解釋執(zhí)行。由于 JVM 運(yùn)行在特定的硬件和系統(tǒng)平臺之上,這使得 Java 得以在任何設(shè)備上運(yùn)行,無論是 Windows 設(shè)備、Mac,或是某個不為人知的 Linux版本。
JVM 的最大優(yōu)勢是它增強(qiáng)了兼容性和穩(wěn)定性。因為你的應(yīng)用運(yùn)行在虛擬機(jī)而非直接運(yùn)行在實體機(jī)上,你只用編寫一次某個程序,就可以確保在所有的 Java 虛擬機(jī)實現(xiàn)上,都可以很好的運(yùn)行。這一原則是 Java 的核心理念的基礎(chǔ):“一次編寫,處處運(yùn)行?!?該技術(shù)使得 Java 應(yīng)用對底層環(huán)境的變化具備很好的彈性。
安全性 & 交互能力
Android 環(huán)境是研究 Java 原生安全性和通用性很好的素材。Android 占據(jù)全球移動市場89% 份額,基于 Java 運(yùn)行。由于 Java 允許操作系統(tǒng)運(yùn)行在虛擬機(jī)中,因此不需要為每臺設(shè)備分別編譯,這就提高了系統(tǒng)的穩(wěn)定性和易用性。
Android 完美的展示出了 Java 的另一個優(yōu)勢, 它與其他基于 JVM 的程序語言之間的交互能力,比如 Scala, Groovy, Clojure, JRuby 等等。當(dāng)你用“更加動態(tài)”的語言構(gòu)建你的應(yīng)用,依然需要使用 Java 以獲得強(qiáng)大的功能!
巨大的 Android 市場,依然不可避免的存在漏洞利用的風(fēng)險。 Android + Java 允許用戶運(yùn)行低可信的應(yīng)用,所有應(yīng)用都運(yùn)行在虛擬機(jī)中可以減小這種風(fēng)險。換言之,如果 APP 要利用系統(tǒng)內(nèi)核漏洞,唯一的途徑是利用 VM 實現(xiàn)的缺陷,好在 VM 被設(shè)計的足夠緊湊,并且通過定義良好的安全接口保護(hù)系統(tǒng)安全。
Java在大規(guī)模產(chǎn)品中的應(yīng)用
Amazon, Google, eBay 以及其他很多大型電子商務(wù)品牌,都使用Java作為他們的業(yè)務(wù)后臺。它們選擇 Java,是由于 Java 久經(jīng)考驗,并且有良好的擴(kuò)展性。任何語言、任何后臺都可以或多或少的管理一些用戶,但是 Java 能可靠的應(yīng)對至少 2 億用戶。我們來看一些突出的例子。
Hadoop
Apache Hadoop 是一個運(yùn)行在大型硬件集群上的 Java 框架應(yīng)用。 在設(shè)計之初,它便具有高吞吐能力,應(yīng)用于處理或者操作海量數(shù)據(jù)集合的應(yīng)用場景。 如今, Hadoop 被很多像 Facebook, Amazon, IBM, Joost, 以及 Yahoo 這樣的大型公司應(yīng)用于數(shù)據(jù)處理、分析、報表等方面。
Hadoop 的創(chuàng)始人 Doug Cutting 曾說過:“ Java 在開發(fā)者的生產(chǎn)率和運(yùn)行效率之間取得很好的權(quán)衡。開發(fā)者可以使用廣泛存在的高質(zhì)量類庫,切身受益于這種簡潔、功能強(qiáng)大、類型安全的語言?!?換言之: 沒有 Hadoop 就不存在大數(shù)據(jù),沒有 Java 就沒有 Hadoop。
Twitter 最近為 Java 和 Oracle 團(tuán)隊,贏得一場令人矚目的勝利。Twitter 原本基于 Ruby on Rails 開發(fā), 伴隨著 Twitter 的快速流行, Twitter 的經(jīng)歷非常清楚的暴露了 RoR 在擴(kuò)展性方面的缺陷?!笔〉啮L魚“(Twitter 的網(wǎng)絡(luò)不堪重負(fù)時的提示)出現(xiàn)的越來越頻繁,直到 Twitter 于 2012 年開始向 Java 遷移才有所改善。今天,Twitter 基于 Java + Scala 運(yùn)行,那條 ”失敗的鯨魚“ 便絕跡了。
Minecraft
Minecraft 是一款異常成功的游戲。早在 2014 年被出售給微軟之前,該游戲就早已為其開發(fā)者掙了數(shù)百萬美元。而 Minecraft 就運(yùn)行在 Java 上。
在廣闊的 Java 社區(qū)的幫助下,Minecrafe 被傳播給成千上萬的潛在建模愛好者。同時,Minecraft 也將 Java 介紹給新一代的開發(fā)者。只要簡單的 Google 一下 “在 Minecraft 中建?!保銜玫匠^ 65 萬條記錄,其中很多是面向 12 歲以下群體的編程教學(xué)資源。
Java 的未來
去年,Oracle 宣布 Java 9 即將到來,定于 2016 年 9 月發(fā)布。這次升級主要是將語言中眾多的功能拆分為較小的組件,希望通過這一變化,使 Java 更快、更易用。Oracle 的整體投資(經(jīng)常受到批評)最終還是保證 Java 可以繼續(xù)支持眾多依賴它的企業(yè),同時保持著對開發(fā)新趨勢的響應(yīng)。
Java 和 物聯(lián)網(wǎng)
“我確信 Java 的未來在物聯(lián)網(wǎng)。我很希望 Oracle 及其伙伴們,會將注意力集中到為 Java 提供徹底的端到端的存儲解決方案上:從終端設(shè)備開始,穿過網(wǎng)關(guān),直至企業(yè)后端。構(gòu)造這樣一個故事,并且將其運(yùn)作成功,這將有助于鞏固 Java 未來 20 年里的地位。這不僅僅對整個產(chǎn)業(yè)蘊(yùn)含著巨大的機(jī)會,而且我認(rèn)為 Java 可以在這方面做得很好?!盡ike Milinkovich (Eclipse 基金會執(zhí)行董事)如此說道。
Oracle 對此表示贊同,前研發(fā)副總裁 Georges Saab 說:“ Java 是物聯(lián)網(wǎng)時代最佳的技術(shù)。物聯(lián)網(wǎng)遇到的很多挑戰(zhàn),都是20世紀(jì)90年代 Java 在桌面和客戶端領(lǐng)域面對過的。你已經(jīng)有了大量不同的硬件系統(tǒng)。你希望開發(fā)者們可以看清系統(tǒng)的細(xì)枝末節(jié),深入理解它,并逐步向它遷移。Java 是少數(shù)允許你實現(xiàn)以上想法的技術(shù)。 ”
Java + Stormpath
也許有一些對 Java 批評的聲音,而且有些觀點(diǎn)也是合理的,但是瑕不掩瑜,比如:它提供杰出的開發(fā)、性能分析工具;JVM;海量的庫等等等等。在 Stormpath 中,我們從誕生之初,后臺就完全由 Java 實現(xiàn),最近我們又升級到了 Spring Boot。Java 萬歲!!