Java的生旦淨末醜!

令狐不衝發表於2006-09-21
最近,關於金蝶Apusic號稱即將推出JSF開源社群“京劇臉譜”的訊息炒得沸沸揚揚(http://java.csdn.net/n/20060829/94196.html ),在好奇之餘,對京劇臉譜這個概念發生了點興趣。說來慚愧,雖自己是中國人,但對號稱“國粹”的京劇還真不怎麼了解,“外事不知問Google”啦,看了一些關於京劇臉譜的資料後,就寫下了下面的文字。

搞Java開發這麼多年,說起J2EE Web開發,還真是百感交集、愛恨交加:
我愛J2EE伺服器端程式設計帶來的高可靠性、安全性和執行期的高效穩定性;
我恨以手工方式來編寫JSP頁面程式碼,我恨基於有限的HTML介面元件進行程式設計!
俺一向佩服的牛人袁紅崗說得好:現狀讓人有時懷念VB、Delphi視覺化程式設計的時代,有時甚至會羨慕微軟的.net、Studio,因為它們的確使用起來很方便實用。
然而,Java世界所倡導的自由氛圍“一切源於技術,一切源於開放”已進入我的血脈!我追求一種自由和完美的理想技術主義,希望Java中也能有一個功能強大的視覺化工具!
我想,其實我和各位兄弟一樣,要得很簡單!

看了袁紅崗關於“Ajax+JSF雙劍合壁”的觀點後,說實話我是比較讚賞的。倘若Apusic果真能實現他們的承諾,那J2EE的Web開發將發生漸進而深遠的變化!!!
京劇臉譜大家都略有所知,分為生、旦、淨、末、醜5種,那麼,就以它為例吧:

“生”:容器級的Ajax支援
目前有JSF + Ajax這種思路的,恐怕也不是一家,但很多第三方的JSF + Ajax實現是提供一個元件庫以及一個附加的Servlet 或Filter來處理Ajax請;而Apusic號稱是直接由JSF容器來處理Ajax請求的,根據請求的型別來判斷這是一個正常的HTTP請求還是一個 Ajax請求。Apusic JSF引擎號稱實現了一個 AJAX Render Kit,可以在HTML文件中嵌入Java Script程式碼來實現Ajax特性,而替換Render Kit只需要修改配置檔案即可。

“旦”:舉重若輕的JSF引擎
常規JSF容器每進行一次客戶端與伺服器端的響應時,都需要把所有的狀態傳來傳去,對系統執行效能帶來較大的負面影響,而透過Apusic JSF號稱的Ajax特性,能夠只把發生變化的資料打包成Ajax請求傳送給伺服器端,而伺服器端也只會將發生變化的資料打包成Ajax應答,從而大大提升系統的執行效率。並且,傳統的JSF請求應答將重新整理整個頁面,而Apusic JSF號稱將只更新發生變化的客戶端元件,從而給客戶帶來更好的人機體驗。

淨:讓Web開發更輕鬆
以前要寫Ajax應用要寫很多Java Script程式碼,開發、除錯、維護這些 Script指令碼都相當煩瑣,如採用Apusic JSF技術,就不再需要編寫任何Java Script程式碼,引擎已經幫你生成了這些程式碼。Apusic JSF所有的標準元件都是支援Ajax的,某些第三方元件可能本身並不支援 Ajax,但使用一個名為<ajax:renderGroup>的標籤,可以立即將這個第三方元件轉換成Ajax Enabled。

“末”:豐富的UI元件
據稱Apusic JSF還提供了一個名為<ajax:status>的標籤,可以接受在傳送和完成一個Ajax請求時觸發的事件,預設的實現是在傳送 Ajax請求之前顯示一個HTML片段,在完成Ajax請求之後顯示另一個HTML片段,這些HTML片段可以包含文字和圖片。此外還實現了一個<ajax:invoke> 標籤,可以以RPC方式呼叫伺服器端Java物件的某個方法。

“醜”:隨意拖曳的視覺化設計
據Apusic開發部的人說,用Apusic JSF還包含其它一些差異特性,包括:控制元件的換膚功能,控制元件對IE、Mozilla(Firefox)、Opera等多瀏覽器的支援,以及強大的佈局功能等。透過Apusic JSF,實現UI介面其實並不複雜,只需要透過簡單的幾行程式碼,就能夠完成複雜的UI介面。

在JSF規範中,有這樣一句話:“JSF is designed to be tooled”。換言之,JSF規範從設計初開始,就非常強調對工具支援的依賴。幸運的是,目前對JSF提供支援的開發工具也逐漸豐富了起來,包括Oracle JDeveloper、Sun Java Studio Creator等等。金蝶Apusic宣稱也同樣提供了一個基於Eclipse的整合式開發環境:Apusic Studio,並透過該工具,能夠給JSF的開發帶來良好的支援,包括:語法加亮、程式碼輔助、斷點除錯、視覺化的設計等等。

總之:廠商靠產品說話。聲勢炒的這麼大,Apusic到底有多少實力和老袁的一世英名就看這次了,呵呵。在中國作系統軟體很不容易,希望Apusic的這個Java京劇臉譜能拿出點真東西。

相關文章