Java準備好支援HTML5了嗎?

fa4fa1發表於2012-10-29

原文連結: http://www.theserverside.com/news/2240146307/Is-Java-ready-for-HTML5

每一個新的蘋果移動裝置和蘋果筆記本都支援最新的HTML5標準。一些大的社交網站,包括FACEBOOK,已經在內容推送功能中使用了HTML5技術。但是高階JAVA應用開發人員依然有一個疑問:JAVA社群是否已經準備好為HTML5的開發與整合做出努力?

HTML5直接用瀏覽器提供更具互動性的內容,簡化了富內容的推送過程,並且減少了對專利技術(比如Adobe Flash和微軟的Silverlight)的依賴,提升了使用者端的體驗。在富內容領域裡, Oracle提供的純JAVA解決方案只有JavaFX, 在與HTML5融合使用的同時,其生存環境也會受到後者的威脅。

在2011年9月的JavaOne大會上,為了簡化利用了HTML 5技術的應用程式的開發,Cameron Purdy 和Adam Messinger 揭開了Avatar專案的神祕面紗。“你現在雖然可以在使用HTML5做前端工作的同時使用Java做後端工作,但是這並不會給你帶來任何樂趣,這麼搭配並易用,並且讓Java開發人員和HTML5開發人員配合起來也很困難”Adam Messinger 在談到當前HTML5技術與標準Java技術配合開發時說。

遺憾的是,在大會之後,Adam Messinger不再擔任Oracle公司Fusion Middleware部門的副總裁一職,而是加盟了Twitter,擔任Infrastructure Engineering部門的副總裁。雖然距Avatar首次面世已經有六個月了,但是Oracle的網站上幾乎沒有提及這個專案的任何資訊。

當然,其他Java社群裡的人會認為Java實際上已經為與HTML5融合做好了準備。對於大多數的企業應用,Java是在服務端上執行的,它從服務端把內容推送到Web端。這些推送出來的內容通常不會被認為是執行於JVM的位元組碼生成的。模型-檢視-控制器(MVC)的方法意味著Web層(檢視)將會與用Java實現的控制邏輯、資料、業務邏輯分開進行開發。

有了獨立的Web層,從HTML4轉移到HTML5只用上幾節課,升級如HTML5新特性這樣的開發技能,然後開始利用HTML5 canvas ,silder和video就可以了。儘管Java社群堅信他們的應用可以在檢視層和邏輯層完全分離的情況下進行開發,然而事實上,很多網站的渲染技術和HTML4的規範緊密的聯絡在了一起。

例如,JSF(為Web應用程式的UI層開發而設計的Java EE標準)就包含了大量直接對映到HTML4規範的標籤。這種緊耦合引起了廣泛關注,JSF很可能會在下一個標準的版本釋出之前牢牢繫結在HTML4上。但很多專家預計,對JSF開發者來說,從HTML4過渡到HTML5將比想象的要更加快捷。

讓JSF為HTML5做好準備

JSF的規範分離了其邏輯層和渲染層,這意味著只要在已存在的JSF元件上替換渲染器即可容納新的標準。

從其他技術換成HTML5很簡單,你只要更換渲染器就可以。甚至你只需要更新,不用更換就可以。這和我們把HTML5當做一種全新的技術根本不一樣。所以你只需要把渲染器更新使他包含HTML5的標籤,然後一切就大功告成了。我確信他們在討論的JSF2.x支援HTML5標籤。如果你看一下豐富的元件庫,你會發現實際上把其他技術換成HTML5會比你想的更容易,因為渲染器並沒有特別地和實現繫結在一起。他們只需要更新HTML5表全的元件和功能就可以了。

此外,JSF是為非常強的靈活性和自定性而生的,所以看到很多position documents已經被應用並且展示著HTML5 drag-and-drop 和 inline editing的能力可以在JSF元件中可以繼續發揮作用。

於是,以前的Java框架和專案需要進行程式碼的維護才能適應現在的工作,然而程式設計師去做這項工作是需要動機和動力的。這就是為什麼在選擇框架時專案的健康度(具體體現在維護該框架社群的活躍性和發展狀況——譯者注)及其貢獻者的活躍性是相當重要的。AppFuse框架的發明者Matt Raible 受到了像Tapestry這樣活躍Web框架的影響,開始跟進對HTML5的支援。

我認為一個專案的健康程度十分重要,因為如果一個框架沒人進行更新維護框架就不會與時俱進,於是就沒有會長期去喜歡使用它。在今天一些框架,例如Tapestry上你就可以發現這一點。我現在越來越多的使用Tapestry,你會發現這個框架在這個專案正在專注於很多前端的技術,其中就包括剛剛推出的HTML5。

Java已經為融合基於HTML5技術準備了很多種不同的方法。如果你一直採用MVC的設計理念進行開發,那麼通過升級檢視元件來使用新的標籤和特性將比用文字編輯器開啟JSP然後不停地敲程式碼更容易。如果你在使用一個像JSF 下的Tapestry這樣活躍並且健康的框架,那麼框架的貢獻者和維護者已經將HTML特性加入其中了。

HTML5在Java程式設計師開發的應用中盛行起來所需要的時間將由使用者對最新基於HTML5的特性在應用中的需求和Java開發社群可以多快接受只能由HTML5所帶來的革新而決定。

譯者:徐淙浩(就讀於東南大學計院本科大二) 這是我的第一篇譯文,我本來並沒有想去承擔如此重的任務。但在姚琪琳老師的鼓勵下,我試著去挑戰一下自我。在認識圖靈系列以前,我一直對計算機書籍的翻譯質量有著很大的成見。但是今天,我自己做了一回譯者,真的覺得翻譯的確不是一件容易的事。對於技術類的翻譯在達到不出技術錯誤的同時還要做到信、達、雅,讓中國的讀者讀起來不覺得彆扭。 感謝姚琪琳老師對本文第一段提出的修改意見。 希望大家多拍磚,我也好學習一下。

相關文章