iPhone/iPod Touch/iPad 與 Flash 之間的恩怨情仇
後來的 iPod Touch 也不支援 Flash。
iPhone OS 2.0 發表,可以讓第三方軟體商開發程式,但是還是不支援 Flash。
iPhone OS 3.0 發表,還是不支援 Flash。
最近發表的 iPad 還是不支援 Flash。
照理來說,從 iPhone 1.x 一直到 3.x 都不支援 Flash,我原先以為大家會認清一個事實:Apple 並沒有開放 Flash 的動力。沒想到 iPad 一發表,"不支援 Flash" 又變成 "iPad 是個垃圾,一定會失敗" 的立論基礎,熱烈的情況跟 iPhone 剛發表時一樣沸騰。
事實上,Apple 不讓 iPhone/iPod Touch/iPad 這些裝置執行 Flash 有許多的原因,有檯面上,有檯面下。
檯面下的原因,當然就是因為 Flash 是個 VM,而對於 Apple 來說,VM 類的東西它是不願意放到這些 iDevice 上的,因為這樣會直接的衝擊到 AppStore 的銷售。雖然 VM 類的軟體現在有鬆綁的傾向,例如SEGA 模擬器已經準備要在 iPhone 上推出,但這是因為它遊戲是以 In-App Purchase 的形式購買,也就是說,只要能讓 Apple 抽到成,其實 VM 是可以談的。但是回到 Flash,在網頁上的 Flash 不可能讓 Apple 抽到成,因此要讓 iPhone 上的 Safari 可以看到 Flash,不可能。但是要在 AppStore 上架一個捆綁 FlashPlayer 的 Flash 程式是沒問題的,這也是 Adobe Flash CS5 所主打的一個功能。
檯面上的原因,就是 Flash 的效能低落以及高耗電。iDevice 這類隨身裝置,最重視的就是效能以及省電,Flash 恰好反其道而行,因此 Apple 有很冠冕堂皇的理由拒絕支援 Flash。高耗電的原因是因為效能低落,所以為了能正常運作,CPU 只好一直運作。而效能低落的原因,有一半是因為 Flash 本身就很複雜,另一半則是 Adobe 自己的問題,不過這個原因我不知道該算是檯面上還檯面下,就是 Adobe 不管是 v9 還是 v10 的 Flash Player on Mac,裡面都呼叫了系統提供的 Debugger() 函式 (via rentzsch)。這是什麼意思呢?就是 Flash Player on Mac 根本不是正式版,而是開發中的測試版,這邊所謂的測試版並不是 beta/RC 這類開放給一般使用者幫忙玩的測試版,而是開放給開發者測試的測試版。這類測試版的效能會差很多,因為程式會花費相當多的時間將內部的錯誤訊息丟出來,而且內部會有相當多的錯誤,非常的不穩定,許多人都認為這是 Safari Mac 版不穩定的最主要原因。你能想像這種程度的東西如果丟到你的 iPhone 上會造成什麼樣的災難嗎?
所以,Apple 要不要讓 iPhone/iPod Touch/iPad 支援 Flash 的問題突然複雜了起來,有冠冕堂皇的理由,有背地裡要維護的利益,有暗暗吃的悶虧。



















