Web 2.0課後─RIA Vs AJAX之我見

昨天的Web 2.0課程第一次以助教身份上台介紹相關資料,介紹的內容主要是關於AJAX與RIA,其它還有一些Mashup與OpenSource的資源。我覺得老師開這門課很有意思,因為對於Web 2.0除了技術之外,其它還有許多關於創新、商業模式以及趨勢或反思方面的探討。很多想法,可能都沒有一個標準答案,所有在課堂上參與的人不只是個聽眾,還是個分享者。

我投影片準備的數量並不多,但是卻也整整花了一節課的時間才介紹完,由此可見討論的情況還算熱烈。在透過台下同學的提問與討論後,的確也引出了一些值得思考的問題,也迫使我再度思考:RIA是什麼?到底它跟AJAX的差別在哪裡?它能成為後來的潮流嗎?

我對RIA的想法,最早來自於研一的時後曾報告的過一篇相關paper,但沒有看過實際的例子,其實沒有太多的感受。直到今年暑假,參加Microsoft的MIX08大會後,我開始深刻的體會到,其實這才是真正的RIA,AJAX與其相比還有段蠻遠的距離。可惜的是,我目前找不到更棒的例子或影片,沒有辦法將我的震驚讓其它人感同身受。當然,其中有許多展示都是某些公司的第一手資料,也許還沒那麼快推出市場。

RIA是Rich Internet Application的縮寫,有些人認為當中的I應該也要包括Interactive與Interface的含義在裡頭。目前提到RIA,大致上指的是比較後期相較於AJAX所提出的一套技術,當中最有名的有三個:Adobe AIR、Microsoft Silverligt以及Sun的JavaFX。底下針對昨天台下同學對這部份問題的發問,我試著從資料整理中回答,最後我會提出我整個的想法供大家參考。如果有補充或指正,也歡迎在回應中告知我。

1.AIR後來好像叫Apollo?
A:這部份剛好反過來,AIR是由Apollo更名調整過來的。

2.像AIR或是Silverlight這類RIA技術到底是程式語言還是程式架構或是平台?
A:我個人的看法是,以開發者角度來看,有點像是各家公司所提出的一套整合的Framework。當然也都搭配有各自廠商推出的IDE與language,像AIR的IDE是Flex,Browser client是flash player,語言是MXMLActionScript;Silverlight部份的IDE是Visual Studio,Browser Client是Silverlight 1.1/2,語言則分為圖形表示用XAML+JavaScript,Server端可以用c#或VB.net配合;JavaFX部份的IDE使用NetBeans,Browser Client是Java Plugin with JavaFX extension,語言方面則是JavaFX script與Java。

3.有些Firefox的插件在看某些型態的網頁時也可以作到3D效果,為什麼還需要RIA?
A:根據我在MIX08中看到的資訊,Microsoft在WPF中甚至可以利用到DirectX 3D的功能。事實上,Silverlight在微軟的看法是當成WPF的精簡版,也就是不具備DirectX 3D及其它包含本機端Device控制的功能。那些在FireFox中看起來3D的畫面與真正用到DirectX 3D Engine作出來的效果當然是差很多的,一些光線明暗的計算等細膩部份就沒辦法表現出來了。至於到底需不需要這麼棒的效果?我覺得為何不?如果可以更好的話。我記得MIX08上就舉了一個線上看書的例子,書在翻頁時,連陰影、不同光線的亮度效果都作出來,非常逼真。

4.Google Gears應該不是要當成桌面端軟體的應用吧?
A:嗯...這一點我是有一些自己的看法。一般來說,離線應用是指在沒有連線的情況下也可以透過Web作存取,但是從Google推出Chrome加上Chrome有個功能可以將網頁在本機端建一個捷徑的方式來看,我認為這才是Google想作的最終極應用。況且其它RIA技術也都紛紛支援在offline運作,Google從Gears+Chrome切入到這個戰場我覺得是很有可能的。

我認為現今RIA技術的出現,必然會對AJAX造成一定的影響。AJAX的特色就在於其非同步處理的功能,這實現了在與Server端作資料傳送的交換時不需要把整個網頁作刷新,因此會使人覺得Gmail看起來很像OutLook,但事實上並不是。AJAX在圖形表現上完全受限於Java Script Engine的能力,自然無法跟利用本機端繪圖能力的RIA技術相匹敵。比如說,你要作一個很豐富介面的網站,用AJAX或許可以達到,但那大概要花費極大心力;相對的,使用更好的支持圖形化功能的新一代RIA技術,開發人員應該可以比較容易的作到這些事情。更極端的桌面端網頁程式的應用,AJAX就更談不上了,因其只能限定在Web上。但是AJAX也有其不可取代的優點,那就是不需要額外下載擴充套件,也是現今最普及的應用。

也許把目前一般使用Browser開網頁的習慣轉換成下載一個本機端軟體,然後從本機端軟體透過網路資料交換的應用很難讓人適應或理解。不過這對User並沒有什麼害處,實際上就有許多AIR的這類應用軟體。對User而言,他們只是作出一個選擇而已,並不會因為出現了本機端軟體的應用,就代表Web上的應用會被取代。比如Twitter,就有許多相關的AIR桌面版軟體,看個人喜好作選擇。就如同Web 2.0時代來臨,難道所有Web 1.0時代的網頁就都消失了嗎?對User而言,一樣只是多出了許多的選擇。當某些技術不被市場上的使用者喜愛,它自然會無法普及,如同過去的Java Applet一樣。不過我相信,新的技術總是不斷地出來,目地是更好的改善User的體驗或是開發者的效率。在資訊時代,我們都應該不斷地往前學習,對嗎?

Comments:

blog comments powered by Disqus

Blogger Templates by Blog Forum