JavaFX預覽版弱點明顯 恐難扭轉Sun劣勢
無論是在傳統的桌面應用領域,還是在如今的新興瀏覽器應用領域,Sun公司都面臨著來自對手的強大競爭。不過,Sun公司也在想盡辦法重現昔日輝煌,近日Sun公司發布了JavaFX預覽版開發工具包,人們稱這是Sun扭轉劣勢的最后一個王牌,但是根據這個預覽版工具的表現來看,顯然還難當大任。
對于JavaFX來說,最大的問題是憑借什么讓人們來接受它,畢竟人們現在已經擁有了Adobe公司的Flex和微軟的Silverlight,而后者在2008北京奧運會中已經向人們展示了它的優秀。
從理論上來說,JavaFX最具競爭力的功能恰恰是Sun最難放棄的一塊領土:無需改變即可在Java SE和Java ME平臺上運行同一個JavaFX應用。
效仿Laszlo實現多平臺支持
為了實現這個功能,Sun正在采取一種類似Laszlo項目的方法。Laszlo允許相同的程序可以同時運行在使用JavaScript技術或Flash技術的瀏覽器中。JavaFX可以分為JavaFX Script和JavaFX Mobile兩部分,分別用戶實現在不同平臺上的JavaFX應用。例如,Java SE平臺使用Swing組件來實現圖形呈現。
如果相同的JavaFX應用無需改變就可同時運行在你的手機和桌面計算機上,這無疑是Sun真正的一個突破。
至于這種虛假的多平臺實現方法從長期角度來看是否可行,那是另一回事。任何一個大型的程序必將不屬于JavaFX,它們一般會選擇使用核心的Swing和Java API,鎖定在你的桌面應用中。在Java ME支持出現以前,我們不會發現Sun的雄心壯志能實現多少,而Java FX的支持估計最早也要到明年春天。
開發工具的改進和不足
對于這個預覽版,工具依然是JavaFX優缺點并存的一部分。具有JavaFX插件支持的NetBeans 6.1,再加上Java 6;update;10,Sun為開發者提供了非常有競爭力的富客戶端應用開發和部署平臺。
NetBeans插件具有一個漂亮的即時預覽功能,任何代碼改變都可以讓applet重新編譯和重新顯示。這個功能雖然看起來不錯,但是我認為大多數開發者在新鮮感過去后會關掉這功能。
JavaFX預覽版中在工具方面存在的不足是,在明年春天以前還沒有圖形編輯器供開發者可用,這很可能成為開發者在Flex和JavaFX之間做出選擇的決定性因素。
除了NetBeans可視化開發工具外,Sun公司表示它正在與第三方緊密合作,以提供一個快速應用開發(RAD)工具,顯然我們還能具有一個Eclipse插件,至于具體的發布時間我還沒有從Sun哪兒得到答案。對于未來要增加的功能遮遮掩掩,這顯然不是贏得開發者之心的好辦法。
相形見絀的demo
在預覽版中新增的還包括一個天氣應用的示例:很高興JavaFX終于開始關注這部分內容。但是不幸的是這個示例有些讓人失望,只是一些數字與幾個云形動畫的拼湊而成,如果你讓這個程序運行幾分鐘以后,你會發現它還會變得像蝸牛一樣慢。而且“今天/明天”天氣的切換操作也有點問題。
圖1、JavaFX示例
網上看到的其它演示也同樣不能令人眼前一亮。javafx.com網站本身的設計就比較差勁,顯然這個網站并未遵循可用性原則而設計。在找它的演示頁面的時候我就廢了半天勁,最后找到了這個右邊灰色背景灰色文本的鏈接。
費勁力氣找到這個鏈接后,展現在你眼前的不過是兩個最不起眼的演示程序。第一個范例就是簡單的讓一些方框實現旋轉,這種東西Flash很多年前就可以做了。第二個demo是股票價格程序,看上去有些意思,但是經過使用你會發現它只是一些靜態的圖和令人討厭的白色背景的組合,在使用之前我曾經期望里面的表格可以進行分類,或者表格的列可以實現拖拽,但是這些都沒有,僅僅是一個簡單的表。
你把它與Adobe的Flex 3 的Dashboard相比一下的話,你會迅速發現Sun的處境真的非常危險。
Flex在與瀏覽器的集成方面也已經領先一步。人們對早期的Java applet的主要批評之一是它們不能與所在的頁面非常好的融合。一個改變了視覺風格(字體、線條粗細、顏色等)的Web設計器可以對樣式表進行修改,但是applet依然看上去和以前一樣,依然要求重新編程、重新編譯和重新部署。
很明顯的答案是為Swing增加對外部樣式的支持,這是Flex所采取的方式。由此帶來的結果是非常顯著的,這會把應用程序外觀控制權交到Web開發者的手中。
我曾經問過Sun負責JavaFX的高級產品經理Jacob Lehrbaum,將來是否會在JavaFX中增加對樣式表(stylesheet)的支持。盡管他看上去真的希望給我一個肯定的答案,但是至今為止未能實現。在這一點上與Sun在JavaFX上所做的工作很相似:看上去潛力很大,但卻總是只許下一些美好的承諾,而不去在現在來兌現。
客觀評價
OK,讓我們寬容一點。這只是一個測試版,而且demo僅僅是demo。我們希望正式版要好很多。JavaFX可以而且一定會表現的更好,因為它有機會讓應用程序無需改變就可以同時運行在桌面和手機上。
但是,根據迄今為止我所看到的,JavaFX目前還不足以在競爭中勝出,它還有很長的路要走。在擁有自己的GUI編輯器以前,JavaFX不是一個可行的選擇。我們希望Sun和JavaFX應該開始加速實現這一功能。
相關文章:
