但很有趣的是虽然官方已提供了详细?FAQ 回答常见的问题,但仍然有许多误解存在Q也因此我特别针对这些问题请教了 Gordon Smith (from Adobe Flex team) 两h一?email 往q后Q大概已得出最佛_的答案,下面我试者将学到的资讯整理出来?
QActionscrīpt 3 ?Javascrīpt 2 的差?
AS3 ?JS2 都是依@ Ecmacript 4 规格所实作出来的语aQ它们的 core language 是完全一L?
Core language 包含: sealed classes, interfaces, namespaces, method closures, exceptions, strong typing, E4X {,所以像 Array, String, int {也都包含在内?
但在 core language 之上Q就会依它执行的环境不同Q而加上不同的 extension?
AS3: ?flash player 里执行,因此会加?flash所需?DOM (Document Object Model) 例如 Sprite, MovieClip, Socket{?
JS2: ?Browser 里执行,׃加上 Browser 相关?DOM, 例如 Document, Form{?
QTamarin 是什么?
Tamarin 是由 AVM2 延而来Q它只负责执?Ecmacript 4 core language 的部份?
因此 Mozilla Foundation 拿到 Tamarin engine 后,W一件要做的事就是在上面实作 Browser 相关?DOMQ例?Form 要怎么生成、Document 物g要如何存取?
Adobe 要做的事则是在上面实?Flash 相关?DOM, 例如 Sprite 要如何画出来QVideo 要怎么串流与播放?Audio 的蝲入与音量控制{?很显然的Q这部䆾工作已经做完Q不然你手上?flash player 9 是打那儿来的Q?
QAdobe ?Tamarin 往后的关系
如果日后QMozilla ?developer community 针对 Tamarin 做了某些最佛_Q例如有童出现?E4X 的执行效率提高了100?例如他写了一?routine/library 可以?xml ?processing time ~短为原本的1/100)Q这些改变一旦被加入 Tamarin ?codebaseQAdobe 也就可以׃n成果?
因此每当 Tamarin 有重大升U或改版ӞFlash Player 可能也跟者推出新版,因ؓ它内部的 core language scrīpt engine 也需要升U才能整?Tamarin 的改变?
Q这代表 Adobe 也将 Flash Player open source了吗Q?
不?
Flash Player = Tamarin + Flash-specific DOM
而这ơ开攑ևȝ只有核心?Tamarin engineQ因此跟 open source flash player 完全没关pR?
实际上做Z?universal platformQ最好也不要有太多的 branch/forkQ所以在可见的将来也不太可能见到官方做这件事?
Q将?Firefox 不再需?flash player 了吗Q?
不,从上面可知,Firefox + Tamarin 只是取得了一个快速的 Ecmascrīpt 4 core language engine, 但它q没有内?flash DOMQ所以用 Flash 开发的E式(swf)q是要乖乖在 flash player 里跑?
不然Qadobe q投入h力开?64bit ?linux playerQ难不成是做心酸的吗Q?
QTamarin 可以用在其它地方吗?
可以?
?Dreamweaver ZQ它有内?javascrīpt engineQ可以让user写一些巨集之cȝ指oQ自动化做某些事?
目前它是?javascrīpt 1.5 语法Q底层则是内Z SpiderMonkey engineQ然后在q之上,加入?Dreamweaver 独有?DOM, 例如 MenuCommand, EditorWindowQ让user可以?js1.5 L?Dreamweaver 的某些行为?
来QDreamweaver 可以选择改用 Tamarin 取代?SpiderMonkey 做ؓ内徏?scrīpt engine, q样user可以写 OO 式的 JS2 巨集?
q就是一个不同的应用实例Q而实际上 Fireworks, Flash, Acrobat {也都有q样的能力,知名?Red5 目前?Rhino 来也可以考虑改用 TamarinQ毕竟有?0倍速的免钱 scrīpt engineQ何乐不为呢Q?
QTamarin ?Flex developer 的媄?
q部份就很有,单来_影响都是正面的,只是要把旉N来看Q正面的效应大概要一Cq后才会出现Q但最多三q?2009)后就可以看出q步下的完全正,而且可能是决定性的一步?br>以上文字来自Q?a >http://ria.richtechmedia.com/
刚才q是忍不住到V8的官|读了些文档Q想看看到底它的技术特Ҏ什么?
V8官网Q?a >Google V8 JavaScript Engine
设计概念的文:Design Elements
有h初试V8的经q:http://d.hatena.ne.jp/amachang/20080903/1220405193
V8是BSD许可证的Q比较自由,方便用在各种目中?
它是一个相当快的JavaScript实现。根据其设计概念的文档,它的高性能主要来自Q?
引用
- Jscre, located under third_party/jscre. This code is copyrighted
by the University of Cambridge and Apple Inc. and released under a
2-clause BSD license.
- Dtoa, located under third_party/dtoa. This code is copyrighted by
David M. Gay and released under an MIT license.
- Strongtalk assembler, the basis of the files assembler-arm-inl.h,
assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h,
assembler-ia32.cc, assembler-ia32.h, assembler.cc and assembler.h.
This code is copyrighted by Sun Microsystems Inc. and released
under a 3-clause BSD license.
Jscre我没怎么听说q,不知道跟PCREQPerl Compatible Regular ExpressionsQ的关系是怎样的。在Jscre源码的目录里看到?pcre"的字P不过详细情况q是以后再看看好了。Apple Webkit里的JavaScriptCore应该是直接用了PCRE的吧Q还是说我看漏了…?
===========================================================================
今天Mozilla斚w也没忘记对Chrome/V8的发布作出反应。Brendan EichQJavaScript的创始者,在其blog上发表了一相兌论:
Brendan Eich: TraceMonkey Update
Brendan Eich 写道
Q向叛_的是TraceMonkey比较快,向左多的是V8比较快)
可以看到在Brendan做的SunSpider试中,TraceMonkey在递归密集的程序中速度会比V8慢许多,而在正则表达式等斚w则比V8快。据BrendanUͼTraceMonkey的开发时间还不长Q递归斚w的traceq没多少q度Q所以在q部分是比较慢的。但下一步将会解册个问题?