Java的歷史與未來:運行在100億臺設備的奧秘
原創【51CTO.com快譯自11月24日外電頭條】14年前,Sun的營銷小組在喝咖啡時一時興起,把當時還處在試驗階段的一個跨平臺語言從Oak(橡樹)改成了象征咖啡的Java,他們絕不會想到這粒咖啡豆在幾年后能夠迅速成長為參天大樹。
憑著沖動天馬行空的市場炒作年代早已過去,如果Sun想要更準確的反映如今這項語言在計算領域鋪天蓋地的地位的話,他們很可能要改回Oak這個原來的名字。盡管Java還不是真正的無處不在,但在整個計算行業的方方面面,它所擁有的強大力量都是無人可及的。
James Gosling在Oracle的OpenWorld大會上表明這點時使用了一個JavaFX的幻燈片,其中的統計數字為:世界上有超過8億5千萬臺啟用了Java的桌面,還有100億臺具有Java功能的設備。Java虛擬機在下一代的智能手機上隨處可見,從小小的閱讀工具到藍光播放器。iPhone現在風光無限,它有可能會賣出去幾千萬部,但如果算上那些不那么智能的手機的話,Java的影響力則是26億部手機,從最便宜的20美元手機直到最新一代的Blackberry和Android。
在今年舉行的JavaOne上,Larry Ellison與McNealy的握手也許是歷史性的
Larry Ellison不止一次的表示將全力支持Java業務,但Oracle對Sun的收購懸而未決讓人對Java的前途感到擔憂,有些人認為Oracle完全不同的商業模式會大規模的改變Java的生態系統,也有很多觀點認為Oracle應該盡量保持Java的原汁原味。
在企業生根發芽
#t#Java的第一次出彩是在服務器領域,這里仍然是它的主要舞臺,人們總是寄希望于Java虛擬機。大型服務器也是Oracle的看家本領,所以這里他們的組合可以輕松搭配在一起。雖然PHP程序員會喜愛MySQL,但在許多最重要的數據密集的項目中,企業依舊會使用Java搭配Oracle,這不會很快改變,尤其是那些最嚴肅的企業比如銀行和保險企業,因為Java的真正跨平臺能力和它的快速和安全。根據Sun的統計,GlassFish應用服務器每個月有超過100萬次下載,而Tomcat等舊平臺仍然很受歡迎。
的確,Java不再是最新最時髦的語言。一些年輕程序員開始抱怨并且轉向那些更新或是更簡單的語言,比如Ruby、Python或PHP,這樣他們可以快速的編寫一些比較簡單的Web應用,因為這些語言確實方便,能夠快速改變和快速成型。
然而這些新興的語言都與Java有著千絲萬縷的聯系。Ruby的開發者常常要用到JRuby這個Java語言實現,因為Java虛擬機在處理多線程的大量工作時做得更好。Jython,一個基于Java的Python克隆語言也采用了相似的處理方法。在51CTO.com推出的《7月編程語言排行榜:Java,正在老去的王者》中也曾提到:雖然這些語言擁有不同的名字,不同的語法和特性,但相同的一點時他們都是基于JVM的語言,并對Java API非常友好。
另外比如Ruby on Rails的許多簡單聲明模式來自于由Groovy與Hibernate等Java技術構建的Grails框架,直接連接到Java API。而Groovy本身添加了許多動態選擇,這讓Java程序員沒有必要去考慮Python或Ruby,因為Groovy可以享用Java龐大的類庫和牢固的虛擬機,同時又有時髦的現代語法。
走向移動設備
Java手機的數字是驚人的26億,這是因為即便是在現在市場上最簡單的手機里,都會有什么地方正在運行著JavaME。
運行Java的智能手機數目沒那么驚人。iPhone的巨大成功讓許多人重新學習Objective C,為了能控制比如內存消耗這樣的更低級別的系統問題。而Java把大多數的這些底層問題都隱藏起來了,程序員不容易微觀管理這些資源,但智能手機幾乎比任何其它平臺都更需要底層資源管理,因為就連電池的壽命這樣的問題都非常關鍵。
然而Java依然會有需求,因為BlackBerry會繼續使用JavaME作為新手機的平臺,并且增加了對觸摸屏的支持和配置文件的加速度。Android有點特殊,Google搭建Android時使用的是開源的Apache Harmony平臺及其類庫,而不是Sun的JDK和JavaME,但在編寫代碼時看起來和Eclipse大致相同。
在今年6月份舉行的JavaOne大會上,Oracle和Sun正式啟動了Java軟件商店,這也許會為Java在手機和其他設備領域的應用開發帶來新的活力和增長。
獲得桌面陣地
很多人一再聲稱Java在桌面上永遠不會成功,這種質疑聲從來沒有停過。然而事實是,盡管緩慢,但Java已經穩步的擠入了現代操作系統中。雖然基于Swing的標準應用在為了滿足各平臺的不同要求時依然顯得左右為難,但新選擇比如JavaFX和Webstart的發展則逐漸使通過網絡發布軟件成為可能。
JavaFX支持完整的Java API,作為圖形引擎已經能與Adobe的Flash一較高下,但它的開發語言卻和Java與JavaScript不太一樣,Java程序員需要新學它的東西。當然,新的動畫類會成為高度互動的桌面工具。在51CTO.com之前所報道的JavaOne揭示Java領域的幾大趨勢一文中,RIA和炫目的桌面應用將成為Java發展的一個重點。
Webstart試圖通過瀏覽器把軟件直接帶到桌面上,它一直在緩慢的進展著,雖然軟件的鏈接依然會因為一些奇怪不兼容而出現故障,但方向是正確的。
嵌入式領域
Java在原先人們最不報期望的地方也持續著興旺的勢頭。雖然C程序員可能永遠不會承認Java虛擬機玩弄內存塊的能力,但Java在低端手機、機頂盒、嵌入式芯片和其它低功率小玩意上的成功表明,虛擬機在競爭中的表現相當不錯。雖然從大鐵塊的平臺轉向小個頭的嵌入式代碼并不容易,但使用Java標準比起其他工具還是要簡單得多。
生活中的Java
事實上,不管收購的最終結果如何,Java的代碼基礎仍然具有相當的凝聚力,Java將運行在世界的每一個角落,臺式機、手機、藍光播放器或任何其他地方。想象一下,早晨被Android的智能提示叫醒,在Java的桌面上工作,晚上回家后在客廳使用藍光播放器看電視,這樣的生活多么愜意。
而有趣的是,那些躺在沙發上使用著Java應用的人可能不會想起Java的最初目標就是機頂盒,那時候它仍然叫做橡樹。然而正是這樣的一個目標為我們帶來了一個如此強大的系統和跨平臺的穩定性。
【51CTO.com譯稿,非經授權請勿轉載。合作站點轉載請注明原文譯者和出處為51CTO.com,且不得修改原文內容。】
原文:Java: What does its future hold? 作者:Peter Wayner