一、前言
2011年的11月9日, Adobe 宣布放棄行動平台上的 Flash Player 開發,聲明稿一出後,引起各方譁然,台灣媒體開始捕風捉影、斷章取義的亂報,諸如 Flash 已死、 Adobe 向 Apple 投降等標題隨處可見,而搞不清狀況又激動的 Flash 設計師們,則開始哀鴻遍野,認為自己是被拋棄的一群,本法師實在看不下去這個因無知造成的亂象,所以寫這篇文章,希望以正視聽,不管你對這個消息關不關心,至少我把真相告訴你!希望這篇文章出來後,看過的人不要再隨著媒體人云亦云、Flash 設計師不要再抱怨了。
二、名詞解釋
我想大家一定覺得很奇怪,為什麼寫篇文章要像寫論文一樣,還有名詞解釋,其實名詞解釋才是真正的重點,這一整串的誤解,就是一群搞不清名詞定義的人弄出來了,況且為了讓我以下說明方便,所以我必須先把一些名詞作定義
1. Adobe Open screen project:透過 Flash Platform 讓開發者只用同一套程式碼,僅花一次開發的時間,同時把程式部署到多個平台上,然後讓使用者有一致性的體驗。
2. Flash Platform:係指 Flash, Flex, AIR 三種技術所構成之平台。
3. Flash:為 Flash Platform 實作技術之一,以 Flash Professional 作為主要開發工具,以Flash Player 作為載體,主要應用於互動式多媒體、影音播放、動畫、遊戲等創作,為封閉架構。
4. Flex:為 Flash Platform 實作技術之一,以 Flash Builder 作為主要開發工具,以 Flash Player 作為載體,主要應用於與伺服器端程式及資料庫整合之資訊系統開發,為開放原始碼架構。
5. AIR:為 Flash Platform 實作技術之一,以 Flash Builder 作為主要開發工具,可將專案直接編譯成多平台原生程式,主要應用於桌面端原生程式開發及行動平台原生程式開發,為開放原始碼架構。
6. Flash Player:為一瀏覽器之外掛程式,外掛後可以使瀏覽器瀏覽 swf 格式
7. 腦殘媒體:不經查證只會從論壇、PTT 跟 Mobile01 上面取材報新聞的媒體。
8. Flash 設計師:以 Flash Professional 從事多媒體內容製作之人。
三、聲明稿節錄
我與台灣腦殘媒體記者只會從論壇、PTT 跟 Mobile01 上面取材報新聞不一樣,我們直接看原文的聲明稿!
有興趣的人可以把它看完,沒興趣的人可以看我整理出的結論
1.關於 Flash Platform ,未來將聚焦在:
(1)以 AIR 開發行動平台應用程式
(2)在桌面端以瀏覽器透過 Flash Player 開發遊戲及動畫
2.未來將增加投注在 HTML5 (含開發工具、整合性方案及瀏覽器)上面的資源(包括經費與人力)
3.未來將不再主動開發行動平台瀏覽器適用的 Flash Player
四、個人評論
前面兩點並不受到大家的關切(但其實是最重要的),反而是最後一點,特別被拿來作文章,而且引起了非常廣泛的討論以及各方不同的解讀。事實上,以本法師的角度來看, Adobe 會做出這樣的決定,是再正常合理不過的,這也是必然的結果,那為什麼各方媒體會全面性錯誤的解讀呢?主要就是因為大家不了解 Adobe Open screen project
1. 什麼是 Adobe Open screen project?
主要是讓開發者用同一套程式碼,只需要花一次開發的時間,把程式部署到多個平台上,然後讓使用者有一致性的體驗,換言之,不管你的載體是什麼,只要你是透過 Flash Platform 完成的,你就達到 Adobe Open screen project 的目的,而這個計劃本身一開始就是採雙線並行的方式,一條是走瀏覽器的外掛,也就是大家熟知的 Flash Player ,你把你的程式部署到伺服器上,然後透過瀏覽器去看;另一條則是走原生程式開發,使用者必須下載你的程式,然後安裝在他的機器上執行,這也就是大家非常不熟悉,媒體記者根本搞不懂甚至沒聽過,只好選擇性忽略掉不報導的 AIR 。而不管你採用哪條路,你只需要寫同樣的一套程式碼,就可以部署在你要的地方,比方說,你可以寫一個遊戲,放在網路上用 Flash Player 執行,過幾天,你可以透過 AIR 把它轉發布成 iOS 或 Android 的原生程式,然後放到 App Store 或是 Android Market上去賣,除了 UI 部分因為解析度不同需要做修改之外,其他要改的地方非常的少,幾乎可以做到一套程式碼部署到多個平台上。
2. 為何不再主動開發行動平台瀏覽器適用的 Flash Player?
我們先來看看 Flash Player 的發展現況
個人電腦平台(PC、MAC)
以 Flash Player 來說,在個人電腦上面達到98%的市佔率,幾乎每台電腦上都裝了 Flash Player,因此靠著 Flash Player 便可達到 Adobe Open screen project 的目標。
行動平台(含智慧型手機、平板、智慧型電視)
但在行動平台上,則剛好相反,由於行動平台的特性,使得 Flash Player 非常不適合在上面運作,原因有四
(1) 行動平台的資源非常有限: Flash Player 過度肥大,使得行動平台在運作 Flash Player 時,非常耗電、過熱而且延滯。
(2) 市占率無法提升:行動平台的霸者 Apple ,它們的 iOS 系統並不支援 Flash Player ,而且未來根本看不到有任何可能性會支援,因此這造成 Flash Player 的市占率根本達不到一半,甚至永遠達不到一半。
(3) 使用者行為與個人電腦不同:可能是因為解析度和螢幕大小的關係,在個人電腦上,我們會掛網掛好幾個小時,但在行動平台上很少如此,如果要上網路瀏覽網頁,必定是逼不得已要去查資料,查完就下線了,使用者要獲取內容或服務的主要方式並不是透過網站,而是透過該平台自己的生態圈下載應用程式,安裝在手機或平板電腦上,這使得 Flash Player 的必要性又再度降低。
(4) HTML5 的興起與 Flash Platform 技術的濫用:講到 Flash Platform ,大家直覺都會想到惱人的廣告 Banner 、網站選單、開門動畫或是影片播放器,接著才會有人聯想到遊戲、多媒體互動製作,而鮮少有人會聯想到資訊系統及應用程式開發,這是長時間 Flash Platform 技術被濫用的結果,事實上這些大家直覺會聯想到的東西,是 Flash Platform 最不重要也是最被濫用的部分,而現在 HTML5 興起,透過原生的方式,完全取代掉 Flash Platform 這部分的角色,換言之,在 Web 上,如果網站設計採用 HTML5 標準的話,所有瀏覽器都可以相通,而原本 Flash Platform 被濫用的部分,也可以回歸到原生 HTML ,使Flash Platform 重新回到它應有的角色以及戰略位置。
那 AIR 又如何呢? AIR 在行動平台上就顯得非常吃香, AIR 本身就具有發布原生程式的能力,換言之你不需要改變現有的 Flash Platform 技術,只需要透過 AIR ,就可以轉發布成各平台上原生程式,並且結合該平台的生態鏈進行販售,這剛好符合行動平台的使用者行為,因此在行動平台上, AIR 反而是比 Flash Player 要適合發展。而且 AIR 已經發展得很好,這個遊戲在 iPad 上就拿到了付費排行榜第一
如果你是開發者,能直接開發原生程式並且獲利,你會想要透過 Flash Player 去執行嗎?開發完後還要找台伺服器放著,然後還要伴隨著讀取緩慢、效能拖垮、耗電又收不到錢的副作用,我想沒人會這麼傻。
那既然已經達成 Adobe Open screen project 的目標,為什麼還要繼續堅持開發幾乎永遠不可能達成目標的行動平台版的 Flash Player 呢?對一間公司來說,首要目標既已達成,放棄備援方案這是很正常的吧!
3. Adobe 不是反 HTML5 的嗎?那未來將增加投注在 HTML5 上面的資源是什麼意思?
對開發者來說, Adobe 投注在 HTML5 上面的心力遠勝過 Apple ,第一個 HTML5 的 IDE 就是 Adobe 出的,官方名稱叫做 Edge (目前仍為 preview 版,可免費下載),支援多平台的所見即所得設計模式,整個介面邏輯跟 Flash Professional 非常的像,對傳統的 Flash 設計師來說上手應該不難,此外也出了轉換工具,可將現有的 Flash 專案轉換成 HTML5 ,如果有留意 Adobe 動向的人,應該不難發現 Adobe 從來就沒有選邊站過,也沒排斥過 HTML5 ,這兩大技術的論戰都是只懂二分法的媒體跟粉絲群們炒出來的。
大家務必要記住一件事, Adobe 是靠賣 IDE 賺錢的公司,只要 Adobe 持續做出好用的 IDE ,管你是用哪種技術去實作,管你平台是他自己推的還是別人推的,他都能從中獲利,現在很明顯的看到 HTML5 是未來網頁設計的趨勢,不投資在他的開發工具上?難道要繼續在永不可能成功的行動平台版 Flash Player 上燒錢嗎?
4. 如果網頁設計將來要被 HTML5 取代,那 Flash Platform 的未來在哪?
我一直強調
Flash Platform 的架構很大,不是只有做做
banner ,播播動畫而已,這是最不重要的應用,也是最被濫用的應用,今天把網頁設計回歸到
HTML ,是絕對正確的做法,在行動平台上,這種
RIA 的需求應該是透過
widget 或是
native app 來達成,而非跑一個這麼大的
runtime 吃記憶體與耗電。
但在大型專案的製作上,就能顯示出
Flash Platform 的實力,如現在最紅的連線
DOTA 遊戲英雄聯盟,他的連線核心,是用
AIR 做的,
Unreal 與
Unity 這兩家遊戲引擎公司則宣布支援
Flash Player11 的發布,換言之,未來你可以用這種
AAA 級的遊戲引擎製作遊戲,然後發布成
swf檔,放到網路上讓人透過瀏覽器去玩,而目前
demo 出來的遊戲,不論是效能還是品質都令人讚嘆,
HTML5 要達到這樣的水準,所耗費的成本會遠大於使用
Flash Platform ,
Adobe 這樣的決策,只是讓
Flash Platform 跟
HTML5 回歸到他們應有的戰略位置,也讓這兩種技術的分界更加得清楚,
Flash Platform 與
HTML5 從來就不是敵對的,而是相輔相成的。
對 Flex 來說, Flex 本來就是鎖定在企業用戶的資訊系統開發,這由他所提供的元件庫和強大的資料處理與展現能力上可以看到清楚的定位,光是 chart 元件,就已經輕鬆幹掉許多商用的圖表元件了,而 Flex 與 JAVA,ASP.NET和PHP 等後端程式的緊密整合,以及完整的 Framework ,在具有前後端以及資料庫的大型資訊系統開發上, Flex 都不失為一個好的 solution ,加上透過 Flash Player 當載體,也沒有跨平台的相容性問題。
至於 AIR ,如果你真的看懂我前面所講的,那不用多廢話了,能在 Windows 上面開發各行動平台的原生程式,光這點就足以持續投資下去, Adobe 只要不斷的改進 AIR 產生出來程式的效能,以及提供更便利的 API 即可,我相信大有可為!
5. Android 平台上是不是再也看不到 Flash Player 了?
當然不是!這是目前最大的誤解! Adobe 只是停止開發新版本而已,原本到 Flash Player11 的版本還是繼續維護,在 Android Market 的程式也不會下架,我不知道為什麼會引申成為 Android 平台上面再也看不到 Flash Player ?然後讓果蠅高潮到不行,這他媽太跳 Tone 了吧!
換言之,對使用者來說,你還是可以用 Flash Player11 來看 Flash Platform 產生的內容;對開發者來說,只要你發布時,版本相容性選擇 Flash Player11 以下相容,那發布的內容就一定能被看到;對廠商來說,以現階段 HTML5 還沒普及的情況下, Android4.0 以下的平台上可以瀏覽 Flash Platform 發布的內容仍然是與 iOS 間最大的區隔,至於要不要凸顯這個區隔?這是競爭優勢還是劣勢?就交給你們家 Marketing 部門去決定了。
6. Flash Platform 是不是死了?
如果說 Flash Platform 比喻成一個人體,那 Mobile Flash Player 就可以算是盲腸,今天這個盲腸發炎了,而且吃藥醫了好多年都好不了,弄得很痛苦,最快最簡單的方法,就是把他割了,盲腸割掉,人等於死了嗎?沒有,人反而會更健康。同理, Adobe 已經用了數年的時間證明在行動平台上面植入 Flash Player 是不理想的,現在把他的開發資源終止掉,轉為更有效益的利用,讓 Flash Platform 的定位更明顯,這反而是好的,況且,只不過是不再開發行動平台上新版的 Flash Player ,又不是全部的 Flash Platform 都謝謝收看,你擁有的技能還是可以到處派得上用場,你到底在災難性思考些什麼啊?
五、給腦殘媒體
連Open screen project在幹什麼都搞不懂,官網第一頁就有定義了.....
一個科技網站,一位科技記者,應該要持平中立的去看待所有技術與產品,更應該要深入去了解背後的原理與意涵,而不是選邊站討好某個族群或是很聳動的用【投降】或【舉白旗】這種字眼來當作標題,事實上這整件事根本與投降或舉白旗無關,如果這樣叫做投降
那請問
蘋果之前跟微軟合作,算不算投降?
蘋果放棄 PowerPC 架構改採 intel 架構,算不算投降?
蘋果可以在 MAC 上面用 VM 安裝 Windows 系統,還以此做為宣傳的賣點之一,算不算投降?
如果以上三者都不能算投降,都是廠商因應趨勢選擇對使用者與公司最佳的決策,那為什麼 Adobe 達成 Open screen project 首要目標,放棄備援方案這檔事就變成投降了?
學著去了解你所寫的東西,如果不了解的話,去官網查證一下,或是問學有專精的人士,這並沒有很困難,不要斷章取義,把你不懂的東西忽略掉,在你對不懂的東西自以為聰明的腦補前,請先補補腦。
無知是一種幸福,但無知又到處亂講,則是一種罪過!
六、給激動的 flash 設計師
唉~同學,冷靜點好嗎?沒有世界末日,你的一身本領也沒瞬間化為烏有,你賴以為生的 Flash Player 也沒消失,甚至連 Android 平台上的 Flash Player 也沒立刻消失,我前面寫得很清楚,只是未來沒有新版本而已,你只要發布時發布成 Flash Player11 版以前相容,就大家都能看到了。
但你未來必須要面對並且接受 HTML5 這個新技術的來臨,資訊科技的世界本來就是瞬息萬變,要走這行就得有這種基本認知,我是認為目前 Flash Platform 在網頁設計上不但是大材小用,而且是濫用,建議你放開心胸,去接觸一下 Adobe 的 HTML5 開發工具 Edge ,你會發現跟 Flash Professional 的邏輯十分接近,如果你是一位有經驗的老手,我想要上手並不難;如果你是一位新手,建議你先學 Edge 會比較有投資報酬率,因為你現在所看到的這些網頁設計特效,未來十之八九都會被 HTML5 取代。
我一直認為Flash設計師本身是帶有美術天分的人,相信我,你這些年來所磨出來的 Sense ,永遠是你在網頁設計上的 Know How ,不會因為這樣的變動而消失,反而更可能因為新來的 HTML5 技術跟新的開發工具而發光發熱,大型多媒體專案用 Flash ,網頁設計用 HTML5 ,倚天劍與屠龍刀在手,笑傲江湖任我行,豈不快哉?樂觀點,好嗎?
七、結語
我在一年多以前曾說過這樣的一段話,【資訊科技的世界,不是零和而是競合, HTML5 他是一個 Option ,而不是一個 Solution ,這兩種技術都有他的 Destination ,永遠輪不到你幫他們做 Conclusion 】,一年多之後,世事變化很快,看起來 HTML5 跟 Flash Platform 都已經找到他們的 Destination ,我覺得這樣的發展很好,可以想見的是未來 Web 世界,在網頁設計上會慢慢回歸到 HTML ,而 Flash Platform 則是專精在大型互動式多媒體專案、遊戲、資訊系統及 Mobile App 上,兩者相輔相成。身為一個開發者,絕對不能選邊站,否則只會被淘汰掉,身為一個使用者,也不必選邊站,享受這些技術帶來的服務便是,我想未來 Web 的世界一定會比現在更豐富,更健康。