Adobe to open source Flash Player scripting engine

by Emmy Huang

On November 7 at the Web 2.0 Conference, Adobe announced that it will contribute source code for the ActionScript Virtual Machine (AVM2) to the Mozilla Foundation. AVM2 is the new scripting language engine for ActionScript 3.0 and was introduced with Flash Player 9. AVM2 executes up to ten times faster than the AVM that runs ActionScript 1.0 and ActionScript 2.0. The new open source project, known as Tamarin, will be hosted at

As a web developer, you may be wondering, "What does this mean to me?" For starters, in addition to driving the AVM in Flash Player, Tamarin will be used in the next generation of SpiderMonkey, the core JavaScript engine in Firefox, and in other products based on Mozilla technology. Future versions of Firefox will benefit from a new, high-performance virtual machine for running JavaScript — and applications built with JavaScript will perform faster and more efficiently than ever before. Because it is now available to anyone who wishes to use it, the code behind the lightweight, high-performance AVM and just-in-time (JIT) compiler can also be used to drive other applications and projects.

"Maybe someone will build a server that relies on the Tamarin virtual machine. Maybe someone will create a client-side product that uses it. Who knows? If you have a project that needs a modern, robust virtual machine, you can use ours," said Sho Kuwamoto, senior director of the Flex Builder engineering team.

Furthermore, as more and more people use Tamarin and as use of the machine expands into other arenas, the open-source project will bring a new level of portability for your existing skill set as a Flash developer. For example, you will be able to develop and reuse libraries and algorithms across both the Firefox browser and Flash Player.

By unifying the language across browsers and platforms, we also hope to open the Flex and Flash doors to a wider audience of web developers. "Developers who know JavaScript will be familiar with the language and syntax of ActionScript. It's going to make it easier for them to move into Flash and Flex development and help to expand the Flash ecosystem," said Mike Chambers, senior product manager for Apollo Developer Relations.

Additionally, standardization around a common language means your work becomes more portable, too. While there are unique extensions, DOMs, and supporting libraries that differ between the browser and Flash Player, you will be able to develop and reuse libraries and algorithms across both the browser and Flash Player.

Pushing the ECMAScript Edition 4 language specification

By partnering with Mozilla on the Tamarin project, Adobe hopes to accelerate the adoption of the ECMAScript Edition 4 (ES4) language specification. ECMAScript is a standards-based programming language widely used on the Web and is the standard upon which ActionScript, JavaScript, and Microsoft Jscript are based.

Adobe and Mozilla have been working together with companies such as Yahoo!, Apple, Microsoft, and Opera to develop the ES4 language proposal as part of the ECMA International Programming Language technical committee (TC39TG1). The Tamarin virtual machine will implement the final version of the ECMAScript Edition 4 (ES4) language specification.

"There is nothing better for a standard than to have it implemented in multiple products," said Jan van den Beld, secretary general, ECMA International. "Adobe is taking a huge step forward in driving standards-based Web development by open-source licensing its virtual machine technology."

Giving to the community and receiving even more

As product manager for Flash Player, I am truly looking forward to seeing how the open-source community contributes to, participates in, and benefits from the Tamarin project. With more contributors from various backgrounds looking at and contributing to the code, we'll continue to build a better virtual machine for ActionScript and JavaScript.

"Ideally, this will lead to a more secure, more robust, and better performing engine for ActionScript and JavaScript," said Adobe Engineering Director and Tamarin module owner Dan Smith. "And over time, as the virtual machine proliferates into other Mozilla projects as well as into technologies outside of Mozilla, end users should have a better experience, including better performance and improved security on the client side."

Flash Player isn't the only Adobe product that will benefit from Tamarin. The SpiderMonkey engine is the JavaScript engine within several Adobe products such as Adobe Acrobat, Adobe Reader, Macromedia Director, and Adobe Shockwave Player. In a roundabout way, Adobe is sending its technology outside in order to bring it back into its own products.

Where to go from here

You can learn more about the Tamarin project, read the Tamarin FAQ, and view the source code at For more information about the Mozilla SpiderMonkey project, visit

To learn more about ActionScript 3.0, read the ActionScript 3.0 Overview and visit the ActionScript Technology Center for more language resources.