<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: tamarin</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/tamarin.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-07-04T08:26:27+00:00</updated><author><name>Simon Willison</name></author><entry><title>Running C and Python Code on The Web</title><link href="https://simonwillison.net/2008/Jul/4/adobe/#atom-tag" rel="alternate"/><published>2008-07-04T08:26:27+00:00</published><updated>2008-07-04T08:26:27+00:00</updated><id>https://simonwillison.net/2008/Jul/4/adobe/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.toolness.com/wp/?p=52"&gt;Running C and Python Code on The Web&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Adobe are working on a toolchain to compile C code to target the Tamarin VM in Flash. This will allow existing C code (from CPython to Quake) to execute in a safe sandbox in the browser.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/adobe"&gt;adobe&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browser"&gt;browser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/c"&gt;c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flash"&gt;flash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quake"&gt;quake&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamarin"&gt;tamarin&lt;/a&gt;&lt;/p&gt;



</summary><category term="adobe"/><category term="browser"/><category term="c"/><category term="flash"/><category term="python"/><category term="quake"/><category term="tamarin"/></entry><entry><title>Why Tamarin instead of...</title><link href="https://simonwillison.net/2007/Aug/9/john/#atom-tag" rel="alternate"/><published>2007-08-09T12:43:33+00:00</published><updated>2007-08-09T12:43:33+00:00</updated><id>https://simonwillison.net/2007/Aug/9/john/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ejohn.org/blog/why-tamarin-instead-of/"&gt;Why Tamarin instead of...&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Justification for Tamarin in Mozilla over Mono and the JVM. It mainly comes down to license compatibility and overall size.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/john-resig"&gt;john-resig&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jvm"&gt;jvm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mono"&gt;mono&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamarin"&gt;tamarin&lt;/a&gt;&lt;/p&gt;



</summary><category term="java"/><category term="john-resig"/><category term="jvm"/><category term="mono"/><category term="mozilla"/><category term="open-source"/><category term="tamarin"/></entry><entry><title>Quoting Aaron Straup Cope</title><link href="https://simonwillison.net/2007/Jul/29/parrot/#atom-tag" rel="alternate"/><published>2007-07-29T21:17:02+00:00</published><updated>2007-07-29T21:17:02+00:00</updated><id>https://simonwillison.net/2007/Jul/29/parrot/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.aaronland.info/weblog/2007/07/28/trees/#delmaps"&gt;&lt;p&gt;The recent announcement that Mozilla's next JavaScript engine, Tamarin, will also be a container for functionality written in Python and Ruby (and, one assumes, beyond) is proof that JavaScript is the new Parrot.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.aaronland.info/weblog/2007/07/28/trees/#delmaps"&gt;Aaron Straup Cope&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/aaron-straup-cope"&gt;aaron-straup-cope&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/parrot"&gt;parrot&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamarin"&gt;tamarin&lt;/a&gt;&lt;/p&gt;



</summary><category term="aaron-straup-cope"/><category term="javascript"/><category term="mozilla"/><category term="parrot"/><category term="python"/><category term="ruby"/><category term="tamarin"/></entry><entry><title>Brendan Eich: New Projects</title><link href="https://simonwillison.net/2007/Jul/26/brendans/#atom-tag" rel="alternate"/><published>2007-07-26T20:05:02+00:00</published><updated>2007-07-26T20:05:02+00:00</updated><id>https://simonwillison.net/2007/Jul/26/brendans/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.mozillazine.org/roadmap/archives/2007/07/new_projects.html"&gt;Brendan Eich: New Projects&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Exciting new projects from Mozilla. ActionMonkey is joined by IronMonkey (IronPython/IronRuby on Tamarin) and ScreamingMonkey (Tamarin for IE). Upgrading IE’s JavaScript using the Flash Player as a vector is a game-changing idea.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actionmonkey"&gt;actionmonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brendan-eich"&gt;brendan-eich&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flash"&gt;flash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/internet-explorer"&gt;internet-explorer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ironmonkey"&gt;ironmonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ironpython"&gt;ironpython&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ironruby"&gt;ironruby&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/screamingmonkey"&gt;screamingmonkey&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="brendan-eich"/><category term="flash"/><category term="internet-explorer"/><category term="ironmonkey"/><category term="ironpython"/><category term="ironruby"/><category term="javascript"/><category term="mozilla"/><category term="screamingmonkey"/><category term="tamarin"/></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>