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