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