Adobe Apollo - 用 Flash 核心技術開發主流應用程式
大約十年前 Java 以他的跨平台虛擬機器架構掀起一陣熱潮,很多人熱切期待著有一天,需多主流的應用軟體會透過 Java 達到完全跨平台軟體的境界。十年後,有那個熱門桌上應用軟體是用 Java 寫的呢?我自己在用的只有 Azureus BitTorrent Client。Java 攻佔桌上軟體市場的夢想,還很遙遠。另一方面,Macromedia (現在被 Adobe 併購) 在幾年前,也開始增強 Flash 的功能,為進攻桌上軟體市場準備著。一兩年前 Macromedia 推出 Flex 算是第一波攻勢,我從來沒看過有人在用,新聞消息也少的可憐。
今天剛好看到 Adobe Apollo 的網站,看來,這次 Adobe 打算一次把 Flash 打造成一個完整的桌上型程式開發環境。Flash 一值都有很不錯的 2D 繪圖功能,大概在 Flash 7 左右加入了一些元件技術,讓開發 GUI 程式簡單一些。不過 Flash 被關在 Flash Player 裡面,因為安全考量,也缺乏很多存取系統資源跟資料的能力。現在 Apollo 整合這些技術資產,加上整個設計完全針對桌上型程式的開發,提供了很多以前 Flash 缺乏的重要功能,我看到了幾個讓我覺得特別有用︰
1. 跟 Flash 一樣,用 Apollo 開發的程式也是跨平台的。
2. 網路︰完正的 socket API 可以拿來寫很多網路應用程式向 Bit Torrent cliemt 或 FTP client。
3. 桌面整合,這是最關鍵的,讓 Apollo 程式看起來像是一般的程式,而不會像是次等公民。例如︰存取系統剪貼簿,拖曳,開啟其他程式,跟其他現有的程式溝通,等等。
目前看來,Apollo 可以當作是一個加強功能的多媒體 Widget 引擎,開發一些提供特定功能而且有漂亮,高互動性介面的程式。我自己蠻喜歡用介面漂亮的程式,例如 uTorrent, Skype, WinAmp 都很不錯。不過 Flash 應該可以提供更多的彈性作出更有趣的介面,著重介面的同時,Apollo 看來也提供了足夠的設施,讓程式可以有足夠的功能性跟其他的軟體競爭。畢竟,軟體功能如果矮人一截,還是沒有競爭力。
另一個問題是,Apollo 有沒有辦法在比較複雜的桌上型程式開發上,跟 Java 或是 .Net 競爭呢?例如,一個讀信軟體好了。我想,以目前我所看到 Apollo 的功能,是沒有什麼技術上的限制,不過複雜的軟體最好要有完整的開發環境,包含 IDE,除錯等功能。另外程式資料一多(幾千封 email) Apollo 執行環境的效能跟記憶體管理,也變的很重要。Apollo 有沒有野心跟實力往上吃下這個市場,還要在看看後續的發展,不過目前,我很看好用 Apollo 開發小型,特定功能高互動性的多媒體程式,像是RSS reader, 及時通 IM client, 聊天軟體,簡單的相簿秀圖軟體,等。
Adobe Apollo:
http://www.flex.org/ACDS/apollo.pdf