<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: actionscript</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/actionscript.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2009-10-05T21:15:45+00:00</updated><author><name>Simon Willison</name></author><entry><title>Developing for the Apple iPhone using Flash</title><link href="https://simonwillison.net/2009/Oct/5/adobe/#atom-tag" rel="alternate"/><published>2009-10-05T21:15:45+00:00</published><updated>2009-10-05T21:15:45+00:00</updated><id>https://simonwillison.net/2009/Oct/5/adobe/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/devnet/logged_in/abansod_iphone.html"&gt;Developing for the Apple iPhone using Flash&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A brilliant feat of engineering: Adobe worked around Apple’s “no runtime allowed” rules by writing a compiler front end for LLVM that compiles ActionScript 3 to ARM assembly code, and apparently ported the regular Flash drawing APIs as well.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actionscript"&gt;actionscript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/adobe"&gt;adobe&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/compilers"&gt;compilers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flash"&gt;flash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hacking"&gt;hacking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/iphone"&gt;iphone&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llvm"&gt;llvm&lt;/a&gt;&lt;/p&gt;



</summary><category term="actionscript"/><category term="adobe"/><category term="compilers"/><category term="flash"/><category term="hacking"/><category term="iphone"/><category term="llvm"/></entry><entry><title>ActionMonkey</title><link href="https://simonwillison.net/2007/Jul/24/javascriptactionmonkey/#atom-tag" rel="alternate"/><published>2007-07-24T15:29:33+00:00</published><updated>2007-07-24T15:29:33+00:00</updated><id>https://simonwillison.net/2007/Jul/24/javascriptactionmonkey/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://wiki.mozilla.org/JavaScript:ActionMonkey"&gt;ActionMonkey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
SpiderMonkey + Tamarin = ActionMonkey. New JavaScript engine for Mozilla 2, incorporating code from Adobe’s Open Source ActionScript VM.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://ejohn.org/blog/actionmonkey/"&gt;John Resig&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actionmonkey"&gt;actionmonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/actionscript"&gt;actionscript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/adobe"&gt;adobe&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/spidermonkey"&gt;spidermonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamarin"&gt;tamarin&lt;/a&gt;&lt;/p&gt;



</summary><category term="actionmonkey"/><category term="actionscript"/><category term="adobe"/><category term="javascript"/><category term="mozilla"/><category term="spidermonkey"/><category term="tamarin"/></entry><entry><title>Tamarin</title><link href="https://simonwillison.net/2006/Nov/9/tamarin/#atom-tag" rel="alternate"/><published>2006-11-09T12:24:45+00:00</published><updated>2006-11-09T12:24:45+00:00</updated><id>https://simonwillison.net/2006/Nov/9/tamarin/#atom-tag</id><summary type="html">
    &lt;p&gt;On Tuesday, the Mozilla Foundation and Adobe &lt;a href="http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html" title="Adobe and Mozilla Foundation to Open Source Flash Player Scripting Engine"&gt;announced&lt;/a&gt; the &lt;a href="http://www.mozilla.org/projects/tamarin/"&gt;Tamarin project&lt;/a&gt;, an open-source ECMAScript virtual machine based on the ActionScript engine used by Flash Player 9.&lt;/p&gt;

&lt;p&gt;Frank Hecker's &lt;a href="http://www.hecker.org/mozilla/adobe-mozilla-and-tamarin" title="Adobe, Mozilla, and Tamarin"&gt;overview&lt;/a&gt; of what this means is useful, but &lt;a href="http://lxr.mozilla.org/mozilla/source/js/tamarin/core/avmplus.h#40"&gt;the Tamarin source code itself&lt;/a&gt; provides this interesting piece of historical insight:&lt;/p&gt;

&lt;blockquote cite="http://lxr.mozilla.org/mozilla/source/js/tamarin/core/avmplus.h#40"&gt;
&lt;p&gt;AVM+ is the ActionScript Virtual Machine&lt;/p&gt;

&lt;p&gt;AVM+ offers an order of magnitude performance increase over
the "Classic AVM" in Flash Player 7.  Our performance target is 10X.&lt;/p&gt;

&lt;p&gt;AVM+ implements ActionScript 3.0, the new version of the ActionScript
language that is compliant with the ECMAScript Edition 4 standard.&lt;/p&gt;

&lt;p&gt;AVM+ is also built for modularity.  It will be part of the Flash Player,
but is a self-contained module which can be incorporated into other
programs with ease.  It may also be submitted to the ECMA standards
organization as a reference implementation of ECMAScript Edition 4.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Adobe's reputation for solid engineering shines through here - it seems that what is now Tamarin was designed for integration with other applications from the very start.&lt;/p&gt;

&lt;p&gt;The most important thing we can expect from this is a serious improvement in JavaScript performance in the Mozilla family of products, thanks to Tamarin's &lt;acronym title="Just In Time"&gt;JIT&lt;/acronym&gt; compiler that can convert ECMAScript bytecode to machine code at runtime. JavaScript/Ajax applications will run faster, and the Mozilla applications themselves will perform better as much of their UI is written in JavaScript and XUL.&lt;/p&gt;

&lt;p&gt;This performance boost will benefit other applications as well. Tamarin is being integrated with &lt;a href="http://en.wikipedia.org/wiki/SpiderMonkey"&gt;SpiderMonkey&lt;/a&gt;, which is used in a variety of applications such as the &lt;a href="http://widgets.yahoo.com/"&gt;Yahoo! Widget Engine&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reading through Brendan Eich's technical overview of &lt;a href="http://weblogs.mozillazine.org/roadmap/archives/2006/10/mozilla_2.html"&gt;Mozilla 2&lt;/a&gt;, it looks like the Mozilla team also plan on taking advantage of this performance boost to move code from C++ to JavaScript 2 in many places, simplifying their code base and reducing the likelihood of security flaws in the code.&lt;/p&gt;

&lt;p&gt;Even in these buzzword filled days of Ajax and Web 2.0, JavaScript is still seen as a poor cousin to so-called "real" programming languages. With a high performance open-source VM like Tamarin available, maybe more developers will start to re-examine JavaScript's role outside the browser.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actionscript"&gt;actionscript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/adobe"&gt;adobe&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamarin"&gt;tamarin&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="actionscript"/><category term="adobe"/><category term="javascript"/><category term="mozilla"/><category term="tamarin"/></entry></feed>