What have you found for these years?

2007-08-30

ActionScript 3.0

其實我也忘記為什麼了,忽然就毅然而然決定 port 到 as3 上。
可能是因為看到 dcat 上說 flash player 9 佔有率已經非常高,
且就我自己的觀察也確實是如此吧?

所以儘管對 as3 沒什麼好感(好像只改 lib 嘛?),還是決定試試看。
不過我想最重要的一點是,as3 的錯誤訊息比 as2 多太多了,
有一次我有個 bug 怎麼樣都看不出來在哪,換成 as3 一 compile 就知道了。
既然如此,何不 give it a try?

事實證明,好在這隻程式我才剛開始寫,不然想從 as2 port 到 as3,
我看還是重寫比較快﹍﹍。雖然語言層面上並沒什麼修改,但是不只是 lib 大修,
整體設計的 framework 架構已經完全不同了嘛﹍﹍。

什麼?沒有 _root? 沒有 attachMovie? 沒有 createEmptyMovieClip?
沒有 XML#load? 沒有 removeMovieClip? 沒有 loadMovie? 天啊,
我不信這些功能會沒有,只是怎麼全部換個樣了??google 了半天,總算上了軌道,
感覺如何?有些東西變得太煩了,非常 java style, 而我是算很討厭 java 的,
這點讓我感到不太舒服。以前簡單的 XML#load 現在除了需要 XML 外,
又要 URLLoader, URLRequest, 甚至又有 XMLDocument, XMLList,
一堆 XML 開頭的東西,都搞不清楚要用什麼了。

不過撇開這些討厭的東西不談,as2 原本一些非常愚蠢的設計,總算都拿掉了。
同時這也表示,as3 沒那麼「簡單」了,對於所謂 designer, 門檻變得高很多,
因為他跟 java 真的是越來越像,連架構都很像了。早期我看過不少人的 flash code
別說 as2 了,恐怕還停留在 as1 吧?想叫他們換種寫法,卻發現有些東西解釋起來
還真的是有點困難,一路講下去就很想說你還是砍掉重練吧﹍﹍。

這些跳過不提了。總之最讓我高興的兩點,第一個是我終於不用再給愚蠢的 dummy name,
想這些用不到的名字實在是很煩,還要擔心產生的名字會不會重複,真的很想
Math.rand().toString() 下去,雖然我好像也還沒真的這樣幹過。

另一個就是我終於不用再寫更愚蠢的:parent.getNextHighestDepth() 了。
除了一直要打很煩外,名字又長,highest 我又老是打成 hightest 之類的。
也不用再去搞那個煩中之煩的 swap depth... 那確實是相當 chaotic.

還有 Delegate.create, 好像也不用了,但我不是很確定,只是文件上這樣寫。
也就是說,應該不會再有這種 dynamic scope 的問題了﹍吧?這就讓我想到
higher-order ruby 專欄上的一段敘述。在 perl 中,你必須多做一步才能讓
事情正確;在 ruby 中,你必須多做一步才能讓事情錯誤。這表示 perl 與 ruby
都很強大,大部份的事情都可以做到,只是預設的方式不同 :p

as3 我覺得似乎就沒有那麼強大了。我還是去找了 lib 來用,沒有 sprintf,
也沒有 hash map. 是有 Dictionary, 不過既然有人用 dictionary 去
做 hash map, 表示這個 dictionary 也有所不足吧?另外我記得這好像是
python 的命名習慣?

還有他的 package 限制好像比 java 還多,這也很煩。但整體說起來,
應該還是好處多些,因為壞處就只是煩而已,但好處是可以減少很多的混亂,
使得一些演算法上的設計可以不用那麼複雜。

btw, 我前幾天看到有人完全用 ecma-script 的方式寫 as2...
到處都是 prototype @@ 這作者大概跟 ecma-script 很熟吧?
要我這樣寫肯定會受不了的,雖然就可以做些比較有趣的 hack...
還是沒 ruby 那麼方便就是了。動態語言目前還是 ruby 最簡潔又強大。

靜態語言下次應該試 scala, 看看他有多 functional. 我覺得,
要玩 functional 似乎還是需要靜態語言,動態語言很多 function
特性會變得很難做又不直覺。

12 retries:

老林 said...

Flash Player 9 目前有出一個 beta 版聽說效能比以往好很多,但是因為還是在 beta 而且又要把舊 player 移掉所以我還不太想裝,不過可以期待看看。

當初看到 AS3 那如同 Java 般肥大的東西雖然討厭,可是也不得不承認現在很多好東西都已經 port 到 AS3 上,甚至是 AS3 才有的,如:
http://www.cove.org/ape/
http://papervision3d.org
http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/
http://www.aswing.org/?page_id=7
http://wiiflash.org/

其實覺得還在 AS2 打滾實在是會少玩到太多東西。既然 ActionScript 以後還是會在多媒體工具上佔用非常重要的地位,那麼順應潮流就 port 過去吧。

我自己做過一個陽春版的 AS2 dictionary,其實 class Object 本身就有辦法直接做成 dictionary。那時是在想辦法怎麼讓 python 的 dict to_string 之後吐給 Flash(因為一些奇怪的需求)然後在 Flash 內以 class Object 建立一個 map,因此寫了很陽春的 str to map parser/maker. 只是後來實際上又沒用到就是了 :Q

Lin Jen-Shin (godfat) said...

會不會太多了 @@ 我是覺得 as3 正式版還沒推出多久,也不用立刻就跳過去。但是跳過去的狀況似乎還滿多的,也許這表示 flash 接下來還會有很大的成長吧 :p

唔唔,何不使用 as2lib? as2 內建的很多東西都還蠻不好用的。這點 as3 確實有滿大的改善。

Plumm said...

我是傾向支持 微軟的 Silver Light ...Silver Light 提供多種語言, 可以做到類似 Flash 的效果 :QQ

另問一下有沒有 rm 轉 mp3 的軟體可以推薦的?? 謝了 ^^

Lin Jen-Shin (godfat) said...

不要再叫我裝另外一個 client 了 :o
除非他的效能明顯勝過 flash...

找 rm 轉 wav 再轉 mp3.

老林 said...

Silverlight 一年多前就聽過,結果到現在身邊很多在玩多媒體這塊的人還是沒有很多人知道。

Silverlight 被許多資訊網站的報導號稱是 Flash killer,不過就個人的觀察,再等一兩年還不遲。C# 和 CLR 都還沒把 Java 等等的幹掉,現在 Silverlight 1.0 還在 beta 就在說是 Flash killer 不只笑掉人大門牙,還笑掉我的臼齒。

何況 Silverlight 目前配合 VS 2005 Express 也才僅能用 Java Script 寫 app,說多語言支援太早了吧?要大家都去灌那個 3GB 大的 VS 2008 Beta2 嗎?別開玩笑了。

而且多語言支援也不代表什麼,甚至還會讓我覺得毛毛的,剛剛試裝了 SL1.1 alpha runtime 去看了一些飯粒,有些飯粒沒炊熟讓 IE 吃了拉肚子或根本食不下嚥不說,有些居然會自動下載 dll,天曉得你的電腦到底吃到什麼以 C# 或其他 .Net-based 開發的 dll?

有廣大的 .Net developer 以及多種語言可供選擇,有代表 dev 和 designer 可以相處的比在使用 Flash 時還好嗎?別忘了它的視覺設計部份的本體還是在 VS2008 之外的軟體:另「兩個」叫 Expression Design 與 Blend 的東東。我要寫 Flash AS,一套 Flash CS3 從頭到尾搞定。

然後有個網頁在做 SL1.0 beta 和 Flash9 不同版本,看效果與功能一模一樣的 WinForm 介面,結果還是 Flash9 比較順。當然以後如果能完整的 integrate 較低層語言的支援,Silverlight 理論上會比 Flash 強大,但是現在講還太早,那些也頂多只是前景罷了。

而且 Adobe 又不是省油的燈,Flex, Apollo 以及改善效能的 Flash player,Sun 方面也有 JavaFX 之類的 solution,盡管 Microsoft 宣稱他強大的 .Net background 可以為 Silverlight 如何如何,但是我一直懷疑 .Net developer 與 Flash 目前擁有的各式各樣開發者之間,到底有何重疊性。有無想過隨便一個 Flash banner 的製作者和 .Net dev 之間有關連性嗎?

最後就是,我私心不希望 M$ 再打敗別人,連多媒體和 Web app 這塊都被獨裁政權給搶走 :P

Lin Jen-Shin (godfat) said...

可惜沒有精華區也沒有 m...XD

其實我覺得 dcat 上說得很對,玩 .net 的人跟玩 flash/adobe 東西的人,本身根本就沒有重疊,幾乎是兩個圈子。也就是說,silver-light 完全沒辦法搶到 flash 的市場,但是他還是有他的地位在,就是讓使用 .net 的人也可以開發 rich client.

至於 java 要被 c# 幹掉,我個人是覺得 sun 實在不太爭氣,儘管如此,java 的資產還是比 .net 多太多了,現在有多少東西有 java 的版本?所以 sun 出資開發 jruby 還真是一個自認 java 不足的一步啊 XD 也就是說 java 就語言上我真的覺得很爛,但是他的資源真的很多,為此多多利用一下也不錯。

另外 ie 佔有率我是覺得正在下降,再去搞那什麼 active x 之類的東西,實在有點不智。自動下載 dll 之類的我看多半是一定要失敗的﹍。安全性問題就搞不完了。

不過說到 develpoer 和 designer 共處,我覺得這真的是個滿大的議題。我之前在做東西時,有時候會覺得滿困擾的,因為雙方的作法差異有點大。但我認為 flash 在這點上其實是可以做到很好的,只要事前有一些共識就可以了。不知道 silver-light 這部份做得如何?

> 但是我一直懷疑 .Net developer 與 Flash 目前擁有的各式各樣開發者之間,到底有何重疊性。有無想過隨便一個 Flash banner 的製作者和 .Net dev 之間有關連性嗎?

我覺得這真的是重點,同時會 .net 和 flash 的人應該少到不行了。就我所知,目前 flash 大部份似乎都還是 designer 在玩的,對於多數 programmer 來說總是敬而遠之,對其也有相當大的誤解在(這我聽過好多了)。說要讓 silver-light 跨到 adobe 橫行的領域裡,總覺得很困難啊。現在 flex 和 air (apollo) 又已經發展得差不多了,ms 落後多少年要這樣跨過來,應該不是 .net 跨 java 這件事可以相比擬的。

話說回來,我覺得 ms 的東西都有一個特性,就是他是自己獨立的一個領域,用他的 solution 就通通要用他的,想再用其他的東西,通常會變得很難整合。造成的結果就是出現很明顯的 open source 派和 ms 派,兩者幾乎沒有重疊﹍。然後就會發現有些人的觀念幾乎是相反的,這還滿恐怖的。

Plumm said...

對了 godfat 這有時回應意見會自動重新 refresh 讓意見無法回覆.

rm 轉 wav, wav 轉 mp3? 我不是說找不到啦, 我想你對音樂比較熟, 有沒有你實際在用或是用過覺得不錯的啦.

Silver Light 其實微軟本意的出發點算不錯的了啦, 當然一開始成熟度就要像 Flash 相當是不太可能的, 可是 Flash 獨佔市場太久, 也就是說, 你要用 Flash 就非用 Action Script 不可, 沒別的選擇了, Silver Light 至少提供了多種語言的選擇, 短時間也許還不是 Flash 的對手, 但是將來應該可以和 .Net 和 Java 類似, 不喜歡 Java 的人, 也有 .Net 可以選擇, 對使用者來說這邊微軟並非獨佔, 因為要完全打敗 Flash 恐怕很難, 順帶一提說, 如果不是微軟, 要有其他公司, 恐怕也很難對 Flash 造成威脅就是了 ( 註: 目前其實獨佔市場的是 Flash 啊 ).

Lin Jen-Shin (godfat) said...

無法回覆是什麼情況?

唔唔,正常在聽音樂的人,不可能會用 rm 的。
1. closed codec
2. 音質太爛了
我目前在 windows 上覺得最好用的是
dbPowerAMP, 可以試試看,但我不是很確定他是否可以轉 rm.
你可以考慮買他的 power pack 之類的,
那功能就會很強大了。

那倒也是真的 XDD
不過從歷史看過來,凡微軟插手者,
後來該市場都會有一點混亂,
有時候真的讓人很困擾啊。

Plumm said...

無法回復就是.它會出現"這個畫面有安全性和非安全性項目, 是否要續繼的視窗?" 然後我選是, 它又 Refresh, 又問一次, 最後只好關閉視窗...再重新開一次 @.@

dbPowerAMP 這好像是商用軟體要錢的 @.@

另外微軟其實有點贊否兩論啦, 首先是微軟的東西剛出來時大多都不成熟, 但是過一段時間, 往往會發現微軟會進步的很快. 其次是, 微軟的東西好不好, 其實要看站的立場, 對於微軟的對手來說, 當然希望少一個對手, 可是如果你站在使用者的觀點, 尤其是國內啦, 會發現微軟的東西至少介面還算不錯, 而且大多都是使用者比較熟悉的 ( 意思就是還不會太難用, 不像有些公司一出來介面就很難用 ). 再來是對於系統開發廠商的話, 我覺得是微軟提供的整合性和支援和其他廠商相比之下也有一些優勢. 當然, 就技術面來說, 微軟不是最強的, 另外在行銷面來說, 微軟也用了一堆不良的手段. 可是這些的立場應該是對於相對於微軟的廠商而定的, 像 IBM 呀, Sun, 等等微軟的對手, 再去恨這些吧, 反過來說, 使用者的身份之下, 我覺得還是以好用度為主 (一般使用者也是這樣想的), 而開發者的話, 則是以開發工具好不好開發為主, 至少在這兩個方面, 微軟並不差說.

最後是, godfat, 我覺得學習語言, 可以有效填補腦中過剩的腦力, 首先是語言是長期抗戰, 不是短期比別人快 1 分鐘記起來 1 個單字就贏了, 而是有一堆莫名其妙的單字文法等著你, 就算這個過了, 還有聽和說兩個部份, 你如果腦力太過剩無從消耗的話可以考慮一下 :QQ

Lin Jen-Shin (godfat) said...

聽起來像是 IE 的 https 的問題。

有試用版不用錢,功能有限。
話說回來,要錢的軟體不叫商用軟體吧?

其實重點不是微軟的東西好不好,而是使用微軟的東西的人通常都很盲目,使得其他使用者感到困擾。例如一堆 IE only 的網站,很多都 only 得很無意義,例如路徑故意用 \ 而不用 / 之類的。稍微改一下其他 browser 就能吃了,偏偏就是不改。不過我想多半不是惡意,而是「無知」。

就技術面來說,我個人覺得微軟是「很弱」,只有財大氣粗所以整合不錯。對於純微軟的使用者,當然不會有太多問題,只要開發者不要太白目。問題是對於其他系統的使用者,微軟的東西相容性很弱,非常弱。你不能因為這些人是少數就棄之不理啊。開發工具也是一樣的。更何況,我一天到晚聽到微軟的 OOO 實在很難用,但是大家都用也只好用。例如忘記叫什麼的 version control 軟體,還有 iis 之類大家有目共睹的東西。

最後一段不予置評 XD

Plumm said...

商用軟體呀? 其實這算筆誤啦, 原意是想說要有那種非營利就免費的...

另外你說那種情形算是軟體開超過標準的東西讓使用者方便吧, 不過這種算擴充標準的, 其他廠商有些也會提供, 主要是看設計者的考量了...

最後是....微軟提供的不是頂級的東西, 但是對一般人來說算是還算夠用啦, 當然有一些不盡好用, 要等它出新版, 中間也有一堆失敗品如 Windows Defender 之類的, 我覺得是要優點和缺點都看啦

Lin Jen-Shin (godfat) said...

打是情罵是愛啊 XDXD

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0