Google gears 與 flex/apollo 的簡單比較

In General, flex   May 31, 2007 - 4:53 pm

最近每天早上起床都很歡樂,總是有新玩具或大消息出現,今天的新聞是 google 推出 off-line solution - Google Gears.

基本上這玩意的目地只有一個,就是讓 html/js 寫成的 web app 可以在離線執行,它的內容物也很簡單,就三個:

-database
-local server
-worker pool

其中 database 採用 SQLite,是用來在離線時儲存資料,等下次連線後再同步回server。

local server 是用來 cache 網頁資料,例如 google reader 裏用到的圖片、js檔等,這樣當離線狀態user才能開的起來。

worker pool 則是比較有趣的概念,就如其名所表示,它們是用來在背景裏做苦工的,主要目地是偷偷將離線時變動的資料批次傳回server去,但由於它是在背景執行,因此不會拖慢 browser,讓user苦等。

在官網站中最值得一看的就是 architecture 這頁,而其中最俱代表性的架構圖,呃,就是本文最上面那張,看懂那張圖,你就瞭 google gears 想玩什麼東西了。

很巧的是,最近兩個星期由於工作需要,我們也正好在大量的 survey occasionally-connected application (其實跟 google gears 講的 off-line app指的是一樣的東西)的技術,包含實作方式與patterns等,也找了無數高手長輩們請教,所以今天看到google gears 真是難免會心一笑,覺得倍感親切啊。

下午花了幾個小時把所有範例跟文件看了一遍,還動手把內附的sample app - gearpad 裝起來玩了一下並且 trace 了大部份的 js code,目前得到的結論如下

-這個概念很有趣,實作的手法也很大膽,但要user另外下載安裝程式恐怕接受度不高

-文件內容過於簡單,off-line app 要處理的事遠比想像中複雜(依 app用途、屬性、需要功能而不同),絕不像文件中那樣輕描淡寫就可解決,所以它的 gotcha 會在開發的中後期才出現,到時才是精彩的部份

-google 此舉很明顯就是在為自家一狗票 app 鋪路,例如現在 reader 已經有離線版,將來 docs, spreads 與 ppt 等軟體必然會支援,這個企圖應該很明顯就可看穿

-它的成敗取決於下列兩點
1、user的安裝率(目前在 firefox 上的安裝經驗實在很糟,無誠勿試啊)
2、developer 的支持度,如果有很多人夠熱心願意用 ajax 寫應用程式,它就有可能活下去(但真的有很多人想用 html/js 來寫一票應用程式?)

-附帶一提,用 js 寫 app 實在是很苦啊,看者那一堆 js code 再想想還要為不同os/browser 寫多個版本,實在是,難怪有人想改行賣雞排…

至於 gears 與 flex/apollo 的比較(或講成swf 優於 html 的好處也行),這裏簡單列一下隨手想到的

-不用 LocalServer 來處理 html/js/image 等東西

因為所有 app 需要的 resource 都可embed在swf裏或預先下載

-不用 Worker Pool,因為 flash player 執行速度快,本來就沒有 browser 被拖慢的問題

因此當然也就不需要user另外裝軟體(當然 flash player 或 apollo runtime 至少要有)

-swf coding 複雜度較 ajax 低,平台相容度高,且可兼俱影音等

這裏主要看的是 GUI programming 的難度等,眾所皆知用 ajax 寫大型app複雜度難以估計(不論你用什麼 UI framework 都一樣,更別提跨平台/browser),而 flex 開箱就內建了數十種 UI components 使用上較方便

比較有趣的是,從新聞報導裏得知這是一個 open source project,參與者有 Adobe, Mozilla 等多個企業,沒錯,是 Adobe,大家會覺得比較奇怪的是,原本 adobe不是一心打算用 Apollo 吃掉 desktop 與 off-line market嗎?怎麼會跑去跟 google 合作(難不成真的是銘謝谷哥在前面擋子彈之恩?) 這個問題在gears 的 group 討論區裏也有被提起。

我的想法是,這一點也不奇怪啊,google gears 跟 apollo 其實不算完全的競爭對手,反到是 flex/apollo 可以借用 gears 的部份功能,例如透過 html wrapper 裏的 javascript 去呼叫 gears, datastore 存取db與localserver,這樣app還是可以用 swf 做,但local persistence 的事就交給 google gears,必要時,也可以叫 google gear 幫忙 cache 些東西,所以看起來是有利無害的。

所以簡單講,外行看熱鬧,內行看門道,google gears 本身不是很新奇的玩意,但仔細看它如何處理 off-line app 的 work flow 則是比較有價值的部份。

by admin

3 Comments Add your own

  • 1. williamshyu&hellip  |  June 4th, 2007 at 5:44 pm

    FYI http://www.itmanagement.com/blog/20070531/googles-gears-open-source-project-now-available/
    “We’re very excited to be collaborating with Google to move the industry forward to a standard cross-platform, cross-browser local storage capability,” said Kevin Lynch, senior vice president and chief software architect at Adobe. “The Gears API will also be available in Apollo, which enables web applications to run on the desktop, providing developers with consistent offline and local database solutions.”

  • 2. jeul&hellip  |  November 5th, 2007 at 10:49 am

    現在 google 文件用習慣了,可是有時遇到沒網路的時候就沒戲唱了,讓我起了其他念頭,如架個個人使用的 wiki…。如果 google 文件能離線使用就太棒了。

  • 3. jeremy&hellip  |  November 5th, 2007 at 12:08 pm

    呃 如果我沒記錯,當google doc 開啟後,在離線狀態下編輯的內容會在下次連線時自動同步回去(實際上它還會做 diff/merge),所以可勉強算是有部份離線能力了 :)

留言回應

hidden

您的留言會先經過站長認証後才刊登在網站上。
your comments will be approved by Administrator before appearing on the page.

Trackback this post  |  Subscribe to the comments via RSS Feed

mobile phone