Flex如何頂住HTML5帶來的強大壓力
本文和大家重點討論一下Flex如何迎接HTML5的挑戰,最近業界對HTML5展開了大量的討論。以GoogleWave為代表的產品,已經實現了HTML5的部分功能,其他諸如Opera這樣的公司,更加直白的認為基于插件的RIA產品將會成為多余。
Flex如何迎接HTML5的挑戰
最近業界對HTML5展開了大量的討論。以GoogleWave為代表的產品,已經實現了HTML5的部分功能,其他諸如Opera這樣的公司,更加直白的認為基于插件的RIA產品將會成為多余。在本文中,我不想去比較Flex(SL、JavaFX不做討論)和HTML5的種種,我認為他們的目標市場是不一樣的,我的觀點是Flex這樣的產品不會被代替,國外也在進行相關投票,參考“HTML5,areFlash,Silverlight,andJavaFXintrouble?”.
從2004年我的***篇關于RIA的文章(上、下)開始我就已經認定Flex是未來的趨勢,誠然那時才從學校出來水平很低,文章寫得很爛。也許是Flex機遇問題也許我蒙對了,縱觀近5年Flex(AIR)的發展,速度是相當的快,可以參考riameeting的“AdobeAIR現在的安裝量已經超過了2億次”還可以參考7yue最近寫的“HTML5與Flash,不得不談的話題”,以及他附贈的插圖:
當然,現有的成就不代表Flex是萬金油人人都可以隨意使用,下面提出5點問題。
1.應用場合
“Flex和AIR不適合你的5個理由”一文中詳細說明了什么場合下不宜使用Flex,后面那位朋友的評論更加精彩。
2.編譯器性能
如果上面的某些理由比較牽強的話,那么下面的缺陷是實實在在的了,在“FlashBuilder,LinuxandWinningtheRIAWar”中,作者指出了編譯器方面的問題,比如對于一個大型的項目,修改一個地方重新編譯竟然需要5分鐘,在我的實際應用中,編譯后大小約700K的項目,在修改源碼重編時有明顯的延遲感,相當難受,不得不盯著右下的進度條。
3.操作系統支持
再有就是Linux平臺的支持,盡管官方說Linux下的市場很小,不過開源社區的力量不能忽視,在AdobeBugSystem上有“FlexBuilderonLinux”的FeatureRequest,看來大家都希望能在Linux上開發Flex,Adobe的CEO、VP們,請繼續支持Linux吧。
4、令人討厭的Bug
經常使用Flex進行開發,如果遇到某些地方用起來奇怪的時候,這時可直接判斷其為FlexBug.話說上周五測試提交了一個問題給我:選擇一個日期然后再選擇相同的日期后文本框內的日期被清空了(PS:我們用的是Flex2的SDK)。好吧,主觀感受這就是一個Bug,不是我,而是Flex的Bug.隨后在這里找到了答案“Flex3DateFielddoesnotclearselecteddatewhenitisclicked”,根據JoannChuangAnderson同學的回答,可知這是Flex2的Bug,但是這位可愛的用戶卻認為Flex3沒有這項功能而專門提個Bug,更搞笑的是Flex3還專門“Forconsistency,nowyouCTRL+Clicktodeselectthedate.”,讓人哭笑不得。遺憾的是,像這樣的小Bug能經常被發現。
5、易用性
界面上的文字不能隨意復制,用慣了HTML,想把上面的標題或者某些內容復制下來是相當的方便,還有圖片內容無法另存為,等等……(就算是目標市場不一樣,也得迎合部分來自于HTML中的使用習慣吧?)
Flex下一步會怎樣?不錯,Flex4要出來了,FlexBuilder3也將被FlashBuilder4替代,在“了解FlashCatalyst”一文中展示了如何消除UI和開發人員之間的障礙。更多關于Flex4和FlexBuilder4的消息可關注RIAMeeting網站。對于HTM***dobeCEO在其quarterlyfinancialcall上表示(譯文來自于InfoQChina):
“此標準能夠增進Web內容的變革及一致性,從工具角度來講,我們非常支持。我們的工具將支持創建和管理這一層次上的HTML內容。
我認為HTML5受到越來越多的關注,表明RIA實現及提供具有吸引力的用戶體驗對我們的客戶來說越來越重要了。我覺得對于HTML5來說,挑戰仍然是跨瀏覽器如何保持HTML5顯示一致這一問題。……
因此,隨HTML5的發展,我們將在我們的web著作工具中對其提供支持。但是從持續推動Flash及圍繞Flash和RIA的變革角度來看,我們仍認為瀏覽器的分裂實際上使得Flash更加重要了。“
◆更完整的InfoQ報道可參考“GoogleWave加速HTML5發展?”一文。Adobe也開放了其RTMP規范,看起來Adobe正在熱情的報答開放社區的支持,之前我在寫“Ajax輪詢以及Comet模式—寫在Servlet3.0發布之前”一文中提到了關于消息實時性的問題,到目前為止何時融入到自己的開源產品我認為只是時間問題。Adobe制定了野心勃勃的FlashPlatform,這個平臺包括了FlashPlayer、AIR、Flex、FlexBuilder(FlashBuilder)、FlashProfessional、FlashMediaServer、BlazeDS.基于這一平臺,今年Adobe又宣布了“OpenScreenProject”項目,旨在利用現有的平臺為Web、桌面、手機、電視以及其他的消費類電子產品提供統一的運行時環境,并聯合Nokia為開發者提供了1千萬美元的獎勵基金。貌似Java之前也有這種雄心,不過目前看來并不成功,希望Adobe不要重蹈覆轍。
***,再來看看HTML5,“GoogleWave加速HTML5發展?”一文中,看官們的回復比文章本身更重要,大家的回復揭示了:HTML5標準的推出尚需時日,而Google就急急忙忙的宣布自己的HTML5實現是為了占領市場,肯定要為自己的Chrome掃清規范障礙;而OperaCEO的言辭我就沒搞懂是何意圖了,規范是由幾家公司共同制定的,而這些公司之間的關系很微妙,Opera是站在哪邊呢?還是跟著Google叫好?還是多關心下自己吧。至于FF和Safari,比較低調,默默的做著自己的事情,而微軟則提出了精簡HTML5規范……
***企業做規范,二流企業……這些都是老生常談,在HTML5規范的多方角力中,最終會有個結論,但別忘了Adobe也是HTML5規范參與者之一。
【編輯推薦】