转一篇AVM相关的博文

from:http://ria.richtechmedia.com/2006/11/09/what-tamarin-really-means/#comments

 

What Tamarin really means ?

In General   November 9, 2006 - 12:35 am

Adobe 開放 AVM2 source 加入 Tamarin 計畫的新聞已經出來兩天,在各大forum與blogs裏都引起熱烈討論,畢竟能讓 javascript 跑的比現在快 10倍,確實是件大事啊。

但很有趣的是雖然官方已提供了詳細的 FAQ 回答常見的問題,但仍然有許多誤解存在,也因此我特別針對這些問題請教了 Gordon Smith (from Adobe Flex team) 兩人一陣 email 往返後,大概已得出最佳化的答案,下面我試者將學到的資訊整理出來。

*Actionscript 3 與 JavaScript 2 的差別

AS3 與 JS2 都是依循 Ecmacript 4 規格所實作出來的語言,它們的 core language 是完全一樣的。

Core language 包含: sealed classes, interfaces, namespaces, method closures, exceptions, strong typing, E4X 等,所以像 Array, String, int 等也都包含在內。

但在 core language 之上,就會依它執行的環境不同,而加上不同的 extension。

AS3: 在 flash player 裏執行,因此會加上 flash所需的 DOM (Document Object Model) 例如 Sprite, MovieClip, Socket等。

JS2: 在 Browser 裏執行,就會加上 Browser 相關的 DOM, 例如 Document, Form等。

*Tamarin 是什麼?

Tamarin 是由 AVM2 延伸而來,它只負責執行 Ecmacript 4 core language 的部份。

因此 Mozilla Foundation 拿到 Tamarin engine 後,第一件要做的事就是在上面實作 Browser 相關的 DOM,例如 Form 要怎麼生成、Document 物件要如何存取。

Adobe 要做的事則是在上面實作 Flash 相關的 DOM, 例如 Sprite 要如何畫出來?Video 要怎麼串流與播放?Audio 的載入與音量控制等。(很顯然的,這部份工作已經做完,不然你手上的 flash player 9 是打那兒來的?)

*Adobe 與 Tamarin 往後的關係

如果日後,Mozilla 的 developer community 針對 Tamarin 做了某些最佳化,例如有神童出現把 E4X 的執行效率提高了100倍(例如他寫了一個 routine/library 可以讓 xml 的 processing time 縮短為原本的1/100),這些改變一旦被加入 Tamarin 的 codebase,Adobe 也就可以共享成果。

因此每當 Tamarin 有重大升級或改版時,Flash Player 就可能也跟者推出新版,因為它內部的 core language script engine 也需要升級才能整合 Tamarin 的改變。

*這代表 Adobe 也將 Flash Player open source了嗎?

不。

Flash Player = Tamarin + Flash-specific DOM

而這次開放出去的只有核心的 Tamarin engine,因此跟 open source flash player 完全沒關係。

實際上做為一個 universal platform,最好也不要有太多的 branch/fork,所以在可見的將來也不太可能見到官方做這件事。

*將來 Firefox 不再需要 flash player 了嗎?

不,從上面可知,Firefox + Tamarin 只是取得了一個快速的 Ecmascript 4 core language engine, 但它並沒有內含 flash DOM,所以用 Flash 開發的程式(swf)還是要乖乖在 flash player 裏跑。

不然,adobe 還投入人力開發 64bit 與 linux player,難不成是做心酸的嗎?

*Tamarin 可以用在其它地方嗎?

可以。

以 Dreamweaver 為例,它有內建 javascript engine,可以讓user寫一些巨集之類的指令,自動化做某些事。

目前它是用 javascript 1.5 語法,底層則是內建了 SpiderMonkey engine,然後在這之上,加入了 Dreamweaver 獨有的 DOM, 例如 MenuCommand, EditorWindow,讓user可以用 js1.5 去控制 Dreamweaver 的某些行為。

將來,Dreamweaver 可以選擇改用 Tamarin 取代掉 SpiderMonkey 做為內建的 script engine, 這樣user就可以寫 OO 式的 JS2 巨集。

這就是一個不同的應用實例,而實際上 Fireworks, Flash, Acrobat 等也都有這樣的能力,知名的 Red5 目前用 Rhino 將來也可以考慮改用 Tamarin,畢竟有個10倍速的免錢 script engine,何樂不為呢?

*Tamarin 對 Flex developer 的影響

這部份就很有趣,簡單來說,影響都是正面的,只是要把時間放長來看,正面的效應大概要一到兩年後才會出現,但最多三年(2009)後就可以看出這步棋下的完全正確,而且可能是決定性的一步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值