歡迎您光臨本站 註冊首頁

Java的輝煌 還能延續多久?

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
    Oracle對Sun的收購引發了人們對Java未來的一絲擔心,Oracle能否繼續保持Java的開放性,面對Ruby、Python或PHP等一批輕量型語言的崛起,Java能否繼續保持其在開發領域的領導地位?

  14年前,Sun公司的一位營銷天才把一門試驗性的跨平台語言由象徵踏實的“Oak”(橡樹),改名為香氣四溢的“Java”(咖啡)時,可能他沒有想到這門語言能有後來的輝煌。事實上,如果現在Sun想為這門語言改名,以準確體現其在計算機行業的地位,似乎Oak更形象。今天,雖然Java語言並非真正意義上的遍地開花,但它已經出現在眾多場合和設備中,而且它享有運行穩定、設計精良的美名; Java代碼也許無法主導所有計算機或所有平台,但它離成為通用語言已近在咫尺。

  Java之父詹姆斯·戈斯林(James Gosling)在Oracle主辦的OpenWorld大會上登台發言時闡述了這一點。他調出JavaFX幻燈片,上面是一連串統計數字:超過8.5億個具有Java功能的桌面機和大約100億個具有Java功能的設備。實際上,Java虛擬機在電子設備中司空見慣:電子書閱讀器Kindle、藍光磁碟播放機和智能電話(包括不太智能的手機)等。iPhone(手機上網)應用程序可以在成千上萬部iPhone上運行,但Java嵌入在26億部手機上,從不太智能、20美元就能買到的手機,到最新一代的黑莓和Android手機無一不包。

  請戈斯林到OpenWorld大會上演講,只是Oracle掌門人拉里·埃利森(Larry Ellison)希望向工程師們一再保證這門語言前途光明的手段之一。Oracle想要併購Sun,但它仍得等待歐洲監管部門批准這一決策。美國政府已開了綠燈,但歐洲政府官員由於擔心MySQL的發展還沒有同意這一起交易。戈斯林和Sun董事長麥克尼利(McNealy)都表示,一旦併購工作完成,Java會從Oracle得到比以往更多的關注和資源。

  從近期來看,埃利森傳達的信號也許不是很重要,因為如今Java已成氣候,要改變發展方向也並不容易。當然,也有一些人認為,Oracle的商業模式太不一樣了,所以它必然會對Java生態系統的每個部分進行重大變化。總體來說,每拿出一個Java可能變化的理由,就有同樣充足的理由表明Oracle可能還是希望保持現狀。

企業級應用是主戰場

  Java最先在伺服器端找到了自己的位置,未來這個領域仍是有望看到Java虛擬機的主要地方。對Oracle的所有產品來說,大型伺服器也是主要的安身之處,所以出現這對組合自在情理當中。雖然PHP編程員青睞MySQL,但對數據密集型的企業應用來說,許多最要緊的項目還是使用基於Oracle的架構封裝而成的Java,這種情況應該不會很快發生變化。

  Sun稱,GlassFish應用伺服器每個月的下載量超過100萬人次,Tomcat等比較舊的平台仍然很常見。由於Java這項技術備受推崇、運行速度快、真正跨平台,大型企業(如銀行和保險公司)對Java開發人員求之若渴。

  不過,Java不再被認為是最新最酷的語法。一些編程員對靜態類型語言的結構滿腹牢騷,紛紛改用更新穎或更簡單的語言,比如Ruby、Python或PHP。現在許多較簡單的Web應用程序就是用這些語言開發而成的,因為它們編寫的代碼容易修改,能快速建立原型。然而,這些使用便捷的新語言常常離不開Java: Ruby開發人員常常使用JRuby(基於Java實現的Ruby語言),因為Java虛擬機能夠更出色地處理繁重任務、釋放多個線程。Jython(基於Java實現的Python語言)也相似。

  Java現在正在加入一些最新的編程技術,以此遏制這些新語言大舉入侵。Grails明顯模仿了Ruby on Rails的許多簡單的說明性模式;Grails這種框架利用名為Hibernate的資料庫中間件,把Groovy等腳本插件結合起來。Groovy本身添加了眾多的動態選項便於代碼解釋,同時可以直接鏈接至Java應用編程介面(API)的任何部分。甚至不需要考慮Python或Ruby,因為Groovy憑藉一種精巧、現代的語法,讓Java編程員可以使用似乎變化無窮的龐大庫和底層穩若磐石的虛擬機。

走上移動之路

  Java手機的數量(估計約26億部)委實驚人,因為市面上許多最簡單的手機裡面都運行Java平台微型版(Java ME)。這讓Wattpad.com等公司得以構建在整個第三世界都能順暢運行的文檔閱讀平台。

  不過,運行Java的智能電話數量相對少一點。iPhone的巨大成功激勵許多人重新學習“Objective C”,這門語言讓編程員對於內存使用等一些系統問題提高了控制能力。Java為編程員隱藏了大部分底層問題,這是個優點,但前提是不需要管理內存等資源,因為要是垃圾收集出現一個小失誤,有些遊戲就運行不了。可遺憾的是,因為電池續航時間是極其重要的一個因素,智能電話需要比幾乎其他任何平台更嚴格的資源管理。

  不過,Java編程員仍然很吃香,因為黑莓手機在其新平台上繼續採用Java ME:它為手機的情景模式(profile)添加了支持觸摸屏和方向感應器的功能。而Android存在不可預知的因素。由於谷歌開放了Android的使用,許多手機廠商搭上Android這輛彩車。

  谷歌的Android建立在開源Apache Harmony及其類上,而不是建立在Sun開發的Java開發工具包(JDK)和Java ME上。對使用Eclipse編寫代碼的人來說,它們看上去幾乎一模一樣。在其他許多情況下也無關緊要,因為Android開發使用了很多XML表單,但如果這兩套開發框架離對方漸行漸遠,這種分裂可能會變成大問題。

收復桌面陣地

  大多數人仍然認為Java在桌面端從來沒有取得成功,這是過去。如今,Java正在緩慢而穩步地滲入到現代操作系統的各個角落。雖然用Swing編寫的標準應用程序因試圖定位在每個平台的最基本部分而繼續“遭殃”,但是有了像JavaFX和Web Start這些比較新的開發平台和框架,就有可能通過Web有效地部署軟體。本地平台可處理Java歸檔(JAR)的所有緩存工作。只要點擊鏈接,有時偶爾隨後點擊幾下授予許可權的對話框,軟體就可以安裝及更新,還可以隨時運行。

  JavaFX仍然是一個名副其實的未知因素。圖形功能現在可與Adobe的Flash相競爭;計算引擎可支持大部分的Java API,但這門語言是一門奇怪的混合語言,融合了正宗Java、JavaScript及其他的一些標記語言。其代碼比正規的Java簡單,所以Java編程員又要學習新的東西。不過,對極具互動性的桌面工具而言,新的動畫類也許值得花時間學習。Web Start正在繼續慢慢改進通過瀏覽器直接把軟體部署到桌面的功能。

  搶佔嵌入式領域

  Java還在人們最預料不到的地方茁壯成長。雖然C編程人員可能從來不會承認Java虛擬機巧妙處理存儲區、快速運行的功能,但Java在非智能手機、機頂盒、嵌入式晶元、Kindle及其他低功耗設備取得的成功表明:Java虛擬機完全有能力在嵌入式應用方面一展身手。Java的普及性還幫助編程人員從大平台遷移到小平台。雖然為大型機開發企業級應用軟體改成開發小型嵌入式代碼並不簡單,但Java標準大大簡化了這種轉變,這讓其他許多工具自嘆弗如。

  Java程序包也在變得越來越小巧。戈斯林用“塵埃”來形容一台硬幣大小、能夠識別Java的計算機。JavaCard是面向這類小型程序包的一種虛擬機和API,它即將迎來3.0版,這個裡程碑式版本將增添網路連接功能。儘管這些小不點還沒有小得足以放入到人的眼睛中,但直接與互聯網通話的功能卻讓它們顯得極具誘惑力。

合作夥伴,會分道揚鑣?

  所有開發人員的最大擔心是:要是Oracle收購Sun的交易塵埃落定,會出現什麼樣的利益衝突變化?Oracle是靠收取大筆的軟體許可費成長壯大,其軟體可運行在客戶想要購買的任何硬體上。而另一方面,Sun通常是免費贈送軟體,然後通過銷售伺服器賺到一些錢。這些經銷策略也許不會立即發生變化,因為慣性實在太太了,但誰也不知道將來Oracle會做出怎樣的決策。

  一些人認為,Oracle過去在收取大筆許可費方面屢試不爽,只會鼓勵埃利森對Sun採取類似的手法。也許Oracle的銷售團隊眼下就在垂涎這個機會:針對Java以前免費的地方開始逐步提高許可費。為了避免重新編寫Java平台企業版(Java EE)應用軟體,許多企業很可能寧可支付每個CPU 100美元、200美元甚至100萬美元的費用。

  批評人士指出,Oracle很容易開發出新版Java虛擬機,針對不同的市場推出不同的性能級別。桌面虛擬機可能保持免費,Oracle甚至可能會掏錢請電腦廠商來推銷Java和JavaFX,而處理極限多線程方面的性能改進可能會收取非常高的費用。從用戶身上撈錢有好多法子,許可費相比之下往往便宜得多:要是讓拒不服從的編程員先學習一門新語言,然後重新編寫代碼庫,那成本高多了。

  但也有人認為,Oracle也許不會採用這一招。一名接近Sleepycat(這家開源資料庫公司在2006年被Oracle收購)的消息人士表示,Oracle已把技術隊伍的規模擴大了約一倍,而所有雙許可模式原封不動。軟體仍然採用開源或商業許可證這兩種形式。如果Oracle像Sleepycat那樣對待Java,社區許可及其他方案仍然會跟以前一樣免費、隨處可得,同時有更多的工程師來改進代碼。

  與其他各大Java合作夥伴的長期關係方面仍存在更深層的問題。谷歌繼續支持Apache Harmony,這個代碼超過125萬行的項目似乎一心要破壞Sun作為世界中心的地位。IBM輸掉了爭奪Sun的競標戰,現在發現競爭對手Oracle的實力更強勁了。IBM設計了Eclipse開發工具,可能也會開始把Java平台帶往另一個方向。

  其他合作夥伴的態度比較激烈。SAP公司首席技術官Vishal Sikka一再要求Sun發布Java社區進程(JCP),著重提到了Oracle在2007年提出的方案:將控制權交由一家“開放、獨立、與廠商中立的標準組織”,標準組織的所有成員在機會均等的前提下參與。雖然Oracle對相關細節基本保持緘默,但可以認為,這家公司會因為從Sun承襲過來的一些觀點而重新贏得尊重。

  但是,儘管其他合作夥伴可能會參與恫嚇的舉動,但他們可能會考慮“度”的問題,因為大家其實是相互牽制的,任何過激的行為都極可能會被阻止,因為大家都認識到“一次編寫、到處運行”理念具有的優勢。如果為Android手機編寫的代碼無法很容易地遷移至索尼藍光播放機或Glassfish伺服器,另一門語言就有機會應運而生。實際上已經有多家公司在編寫工具包,讓用戶可以在iPhone上輕鬆運行Ruby on Rails或Python軟體。

  另外,許多這些比較新的語言可能會成為不可小覷的競爭對手,而暗鬥過多隻會幫助它們攻城掠地。現在有幾十種非常好、知名度小一點的開源程序包,只要忠實的愛好者稍加轉換,通常就能把它們移植到每個平台上。比如,Python已經是一些科學領域的主要語言,谷歌選擇Python、而不是Java作為其應用引擎(App Engine)支持的第一種語言。雖然IBM、Oracle和谷歌在爭奪主導權的競爭中可能會相互排擠,但它們必須認識到:所有人都受益於標準化,而不是壟斷。要是誰敢過於排擠別人、企圖一手控制Java,其他廠商可能會奔向其競爭對手。

Java也開應用程序商店?

  Java代碼庫仍相當有凝聚力、相對標準化,這個事實惹得眾人猜測:Sun(如果合併案完成,還有Oracle)到底會怎樣利用Java的普及性來大發其財,又不提高許可費、擠壓每個人?如果有人開發出一種面向整個Java生態系統的應用程序商店(App Store),從而像銷售面向iPhone的應用程序那樣銷售用Java編寫的小組件(widget)—它們可以在桌面、手機、藍光播放機或可以使用Java的其他任何平台上運行,將會怎麼樣?

  最近已經有了面向Android手機的一批數量可觀的應用程序,Sun也在謀劃一家Java商店,好讓人們只需把應用程序拖到桌面上,或者只要再編一點代碼,就可以把各應用程序結合起來,從而讓它們可以在Java世界的幾乎每個角落裡運行。不過,處理截然不同的屏幕和用戶界面還是個挑戰。

  設想一下這種場景有多吸引人:開發人員編寫的某個應用程序在Android手機上運行著,他在辦公桌面上處理任務,回到家后在客廳的藍光播放機上順暢運行。

  把Java應用程序帶到坐沙發的人面前甚至有點出人意料,因為Java這門語言在被叫做Oak的早期階段,本意就是運行在機頂盒上。這種遠景將依賴於Java平台的最大優點:普及性和跨平台的穩定性,也許這些優點會幫助Java給其發明者帶來滾滾收入。



[火星人 ] Java的輝煌 還能延續多久?已經有382次圍觀

http://coctec.com/news/soft/show-post-74400.html