Tamarin
On Tuesday, the Mozilla Foundation and Adobe announced the Tamarin project, an open-source ECMAScript virtual machine based on the ActionScript engine used by Flash Player 9.
Frank Hecker’s overview of what this means is useful, but the Tamarin source code itself provides this interesting piece of historical insight:
AVM+ is the ActionScript Virtual Machine
AVM+ offers an order of magnitude performance increase over the “Classic AVM” in Flash Player 7. Our performance target is 10X.
AVM+ implements ActionScript 3.0, the new version of the ActionScript language that is compliant with the ECMAScript Edition 4 standard.
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.
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.
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 JIT 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.
This performance boost will benefit other applications as well. Tamarin is being integrated with SpiderMonkey, which is used in a variety of applications such as the Yahoo! Widget Engine.
Reading through Brendan Eich’s technical overview of Mozilla 2, 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.
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.
Lawrence Oluyede - 9th November 2006 13:41 - #
Paul Moore - 9th November 2006 16:29 - #
grumpY! - 9th November 2006 17:27 - #
Philippe Jadin - 9th November 2006 19:42 - #
Thom Shannon - 9th November 2006 21:05 - #
Ian Bicking - 9th November 2006 22:01 - #
Thomas Lockney - 9th November 2006 22:42 - #
Thom, would you also implement the entire browser host environment? Before you do that, take a look at Dojo, which provides a pretty nice shim for different runtime hosts.
Jeremy Dunck - 10th November 2006 04:50 - #
whoops - 10th November 2006 05:36 - #
Um, server side Javascript? Since IIS 1, which is what, ten years ago?
I never understood why anybody would want to use a different language on the client and the server.
Kirit - 10th November 2006 13:10 - #
whoops - 10th November 2006 17:08 - #
whoops-- I'm pretty sure Kirit was referring to the typical development pattern done on top of IIS, which was ASP on the server (in the form of VBScript, a truly awful language) and JS on the client.
Pitting Perl (or any language with reasonable design and libraries) is a total strawman. Kirit's question is reasonable. If choosing between JS on both server and client or JS on client and VBScript on the server, it seems a straight-forward answer, yet most IT shops have gotten it wrong for years.
Jeremy Dunck - 11th November 2006 04:16 - #