Flash Open Source 的未來
終於又到了星期五,又是夜深人靜寫東西的好光
想寫Flash Open Source (以下簡稱OSS)這個題目已經一段時間,只可惜事與願違這幾星期實在忙的不可開交,一口氣看完兩本好書,分別是Head First Design Pattern與「敏捷軟體開發」,然後花了些時間把裏面的範例用AS3實作一次,順便將新觀念試用到幾個專案上運轉一下看效果如何,然後每週二四晚上大腦切換到HTML狀態教CSS+Web Design,一三五則切換到Flash狀態教RIA,更別提還有客戶在後面殷切的追殺…實在很刺激吶…
不過這個題目實在很有趣,所以今天先來寫一下。
*mtasc不繼續發展
首先這裏面最大的消息就是Flash OSS界的英雄級人物尼古拉斯先生在上上星期的 SPARK會議中公開宣佈他將不會再繼續發展 MTASC,也就是說不會有支援 AS3 版本的 open source compiler出現。
根據尼先生的說法,他認為Flex 2裏面的 compiler與framework表現已經非常良好(不論在語言的成熟度與編譯速度等幾個層面),因此沒必要再去做一個類似的東西(也就是 MTASC for AS3)做競爭,但這個消息一出著實讓整個OSS界嚇了一跳,在OSFlash上出現上百篇的討論。
引起爭議的地方在於,畢竟MTASC是檯面上唯一一個表現良好且速度極佳的OSS compiler,許多 OSS project都依賴者這個compiler才能發展下去,更別提像 ASDT, Swfmill, flashout等核心專案更是量身為MTASC打造,因此如果少了主角,就好像電腦沒了cpu車子沒了引擎或蘋果少了皮(呃 關蘋果什麼事?),一切就沒意義了。
為何這麼說呢?
我們可以先從其它技術領域的 OSS發展情況來看。
*用免費的東西做免費的東西
一般geek/hacker對OSS的看法都是:用免費的東西做免費的東西。例如用免費的 compiler做免費的工具程式,然後用免費的工具程式做免費的應用軟體。舉個簡單的例子,例如有了 gcc這個免錢的compiler,就發展出一狗票免費工具甚至作業系統(想想linux或php/mysql),而有了像php/mysql這樣的工具程式後,就有人去寫出 phpbb, osCommerce, wiki等免費的應用軟體。
想想看,如果今天hacker必需先花幾萬元買套 Intel C Compiler才能開發程式,還會有人去做免費的服務嗎?
因此同樣的情況也可以套用在flash OSS的發展上,它的因果關係是這樣的:
免費的compiler (MTASC) –> 眾多協力工具(Flashout, swfmill, ASDT/FDT…) –> 免費的flash 應用程式(例如之前介紹過的EnFlash, ASWing等元件組與DENG這個xhtml parser)
但現在最源頭的MTASC掛了(不發展下去就等同於死亡,原因稍後再說),其它一狗票週邊工具與專案頓時就陷入一片茫然不知所措的狀態,繼續發展下去也不是,停下來不動又很可惜,而且會有更多user抱怨,例如DENG的 Claus Wahlers就身陷這種矛盾中,更別提如果有人已經用 fame去開發商業專案然後現在正進行到一半….(yada~好險抽身的快)
*mtasc的未來
那為何說MTASC 不繼續發展下去就等同於死亡呢?(ok,說好聽一點是慢慢fade-away),原因在於現在AS3與FP8.5已經出來,而這兩者的改變與進步幅度之大恐怕是有史以來罕見,例如AS3完善的語法架構與 Display List概念,與FP8.5的JIT compilation技術等等,都是真正能登上商業戰場的創新之作,所以它們的全面普及是必然的,任何認真的developer都必需(被迫?)學習、熟悉並掌握它們,才有可能在未來三到五年的Flash RIA市場中繼續保持領先並游刃有餘。
所以在這種發展趨勢下,緩慢且結構不良的 AS2/FP8 恐怕是來日不長;保守估計在明年三月Flash 8.5推出後,轉換潮就會開始發酵,那時不單是coders,就連 designer都得學者用AS3寫東西(因為loadMovie(), attachMovie()與_root都沒了,不學新語法要怎麼混下去?),然後等明年中Flex 2(含flex builder 2, flex framework, Flash player 8.5)正式上市後,就會真正引爆RIA的革命,屆時這個領域只會有一種組合與標準,那就是AS3 + Flex Framework,想想看那時MTASC還能有多少舞台?
這種看法也是大部份mtasc支持者所擔心的部份,因為一來他們不願見到flash oss就此消失,二來也不願意目前已享受到的甜頭就這樣隨風而逝讓一切從頭來過,三來則是要學AS3與 framework著實得花不少時間與心力,那可不像從 mmc 換到 mtasc一般只是轉換 compiler但其它語法都相同的情況。
*flash OSS的隱憂
至於最近在OSS界另一個比較有趣的新聞就是macromedia似乎開始對oss的發展反饋出一些意見,比較明顯的就是mike chambers開始提出關於合法性與授權等問題,其中尤其是針對目前進步神速的 Red5專案(這是一個open source 的 flashcom project)提出許多質疑,當然他的目地或許並不在威脅oss界,而只是站在 community administrator的立場提出一些善意的想法,但他畢竟是官方的人,如果他開始反問amfphp 使用反組譯的AMF格式或red5想採用RTMP通訊協定是否真的合法無慮之類的問題,那實在很難不讓人聯想這是不是猛虎要飛奔的前一刻?
但矛盾的另一面則是,當DENG的作者公開抱怨如果mtasc不繼續發展,那他也不想改寫 Deng 2.0時,MM 的大大頭 david mendel(他是上個月前五個進駐Adobe的mm高層之一,地位之高可想而知)居然跳出來表示願意提供免費的compiler供他的team繼續發展下去,這種做法又讓人覺得其實mm似乎是很oss friendly的,他們不介意AMF/RTMP被人反組譯,甚至還offer要送免費的compiler來支助一個project發展下去,而且實際上flex 2是用 Eclipse改寫而來似乎也加深了mm是站在oss這一邊的印象。
所以比較 mike chambers 與 david mendel的說法與態度,前後的不一致是否也反應了其實mm在這件事上也還沒達成共識?又會否這只是一個 good cop/bad cop的遊戲?一個扮白臉另一個扮黑臉?
*OSS可行嗎?
關於這件事的發展,幾個值得思考的方向:
1、mm畢竟是商業公司,賺錢是它天經地義的職責,而保護智財權與維持良好社群關係也同樣是獲利的手法之一,任一邊沒顧好都可能會造成嚴重後果。
2、因此在獲利的前提下,何種做法才能兩者兼備?賺到面子也保了裏子?這點或許可從分析mm到底想賺什麼樣的錢(或講的術語一點,他們的獲利模式為何?)這個角度去分析,答案就會比較明顯。
3、觀察mm在 java 與 ECMAScript consortium 裏的參與程度與他們在max 2005時透露的諸多線索,或許可看出mm對開放某些規格與技術的態度。
*現況
所以今天整個flash 界的情況是這樣:
這個市場的老大哥mm剛推出了該公司有史以來最偉大的新技術,準備在2006年全面進攻商用市場(別忘了他們現在還多了個有錢老爸),但同一時間原本還在發展茁壯中的oss界卻因為根本的關鍵工具停止發展而出現崩解現象,並且此時又傳出oss的合法性問題,種種不確定性不但加深了oss community的不安,同時也突顯了終究發球權是在老大手上的現實。
所以站在這個時間點,再回頭看過去一年來OSFlash的發展,著實讓人有不勝晞虛之嘆啊~


7 Comments Add your own
1. RitaLee&hellip | November 5th, 2005 at 1:18 pm
就我而言,ASDT會沒落不是因為MTASC不開發了,
我剛開始用ASDT時它應該還沒支援MTASC,
到今年年中它才支援MTASC的語法檢查功能。
真正ASDT會玩不下的原因而是因為Zorn出來了,
它提供一個官方的AS Editor,
而且我也懷疑ASDT的發展者還有興趣支援AS3。
不過,在我還在用AS2時,ASDT大概還是我工作的工具吧。
p.s. 下次上課你要不要改用ASDT.. code completion比較好。
2. jeremy&hellip | November 5th, 2005 at 2:04 pm
哈哈,rita所言甚是,其實我正在想下次帶primalscript去裝,這才是王道啊~~~
(還想順便把招牌黑底綠字設定也帶去,這樣上課就像在家coding,教課就像在做案子 orz)
3. Danger&hellip | November 6th, 2005 at 2:12 am
据说,MTASC 将使用 Nicolas 发明的 Neko 编程语言.
http://nekovm.org
4. jeremy&hellip | November 6th, 2005 at 10:54 am
嗯,他在宣佈neko並公佈RFC時我都稍微看了一下規格書,感覺只有一個:非常的沒前(錢?)途啊~
企業級用戶對是否換用OSS的 mtasc來開發本來就有不少疑慮(想想看甚至連是否要採用 flex 都等了一年),而mtasc還是 100%與 actionscript宣容,並且只要製作方式稍改一下即可。
但neko是等同於發明一個新語言,這是完全不同的故事啊,看看perl, python都出來多久了才能有現在的普及率,nicolas想讓neko成為同等級的東西恐怕路還非常非常遠…
我的直覺是:會用Ocamel寫compiler是很屌的事,能用ocamel做出 AS compiler是更棒的事,但只因為這兩點就產生錯覺以為user會跟者採用全新(且陌生的)語言來開發,在這點上他是太過於樂觀了。
西瓜永遠是偎大邊的啊~
====
btw, 歡迎 danger來玩
5. 小布&hellip | November 8th, 2005 at 7:51 pm
老師請加油!!想必一星期7天對你來說,要是再多一天就好了@@
6. jeremy&hellip | November 9th, 2005 at 12:22 am
哈哈 老天是公平的啊~
你也是忙的不可開交, 接案到手軟吧?
7. b6s&hellip | January 10th, 2006 at 5:06 pm
http://blog.linux.org.tw/~jserv/archives/001418.html
Trackback this post | Subscribe to the comments via RSS Feed