« Tamarin Project | Main | Global net access »

November 07, 2006

Tamarin commentary, day 1

Tamarin commentary, day 1: Through the day I'll be updating this entry with links & pullquotes I find particularly interesting. It's like drinking from a firehose, though... Adobe's donation to Mozilla of scripting engine sourcecode will take us all awhile to assimilate.

David Berlind "Could Adobe's contribution to Mozilla force MS to take Internet Explorer open source?" "The more I talk to people about Flash becoming the 'operating system' of choice for highly interactive-based Web apps, the more I hear 'uh huh.' AJAX and Flash are like peanut butter and jelly with one providing base-level interactivity and the other bringing that interactivity to life. In the absence of any competition from any of the big players, this code contribution will further cement Flash's role in the future of interactive Web-based applications."

Bill McCoy (Adobe staffer): "This is not the first and certainly not the last open source contribution by Adobe, but it is definitely the most fundamental so far, and opens the door to other win-win engagements in the future." (Adobe has contributed source code to Mozilla, but as I understand it, we have not "contributed the source code to the ActionScript Virtual Machine"... there are still parts that make ActionScript ActionScript, and the donation was more for the pure ECMAScript parts of the AVM.)

Frank Hecker (Mozilla staffer) offers a great orientation to the Adobe engine and the collaboration, particularly oriented to those in the Mozilla community. "Note that Tamarin is not an open source version of the Flash player; it is simply the virtual machine embedded within Flash Player 9, and does not include all the other components that make up Flash (including the bits that display graphics and play music and video). Adobe will continue to develop and distribute the Flash player on its own as a product separate from Firefox itself... The current SpiderMonkey JavaScript engine (used in Firefox, etc.) will not be replaced, as it does more than just provide a virtual machine; rather the Tamarin code will be integrated into SpiderMonkey. On compilers, the current SpiderMonkey engine can convert JavaScript to byte code, but does not have the ability to convert byte code to native machine instructions; this is a major feature that Tamarin provides... Not only do we gain an important new piece of technology that's critical to our products, we and Adobe both gain the benefit of being able to more closely work together on ECMAScript language technology and avoid unnecessary duplication of efforts; this in turn will allow both the Mozilla project and Adobe to put more resources into other areas important for future innovations." [via Mike Potter]

Dion Almaer discusses it from an Ajax-oriented point-of-view: "This is huge news... The latest VM from Adobe is a fantastic JIT engine that screams on recent benchmarks. Joining that team with the Mozilla team is going to lead to a fantastic VM inside Firefox. Congrats to all involved!"

Slashdot should be particularly fun to read today... my favorite comment so far: "AJAX in Flash, with a Web 2.0 hype engine. May god have mercy on us all."

Charles Ying was one of the first to examine the codebase, last night... talks about compiler, JIT, garbage collection, and ARM. "If you are working on a browser or mobile scripted apps platform (AJAX, Laszlo, Flex, etc.) platform, this is a huge deal. With Firefox adopting the engine, and its performance and E4X language support characteristics, Tamarin and its offspring might likely become the defacto execution and compatibility benchmark for AJAX and any scripted environments in both desktop and mobile."

Darron Schall focuses on the compilation from platform-neutral deliverable bytecode, to native-code instructions and their significant performance benefits. "I want to point out something that could easily be missed in the announcement: Adobe has released a 'self hosting' open source ECMAScript compiler...."

Mike Potter points out several prior Adobe contributions to opensource work. There's the Adobe Source Libraries work at opensource.adobe.com (server down today due to change in physical location)... Adobe has recently released its Color Management Module for use by others... Adobe Digital Editions is rendering code for the open ebook spec... Adobe has a long history in enabling media metadata... Mars opens up intelligent documents to open XML. Last week's CMM and Mars releases seem similar to Tamarin to me... in all cases, the Adobe technology is forming the base substrate for a new explosion of abilities atop these known capabilities.

Gordon Smith, on the Flex engineering team, has a good technical summary:


This is a major contribution from Adobe to the open-source community, but let me try to clarify what it is and what is isn't. The code being open-sourced is for the core AS3 language, not for anything specific to Flash. The contributed engine is able to execute a program that uses core classes of the language like Array, Date, RegExp, and XML. It is not be able to execute a program that use Flash-specific classes like Sprite, TextField, SharedObject, or URLLoader. In particular it supports no Flash graphics.

Mozilla will use this engine by adding browser-DOM classes such as Window, Document, Form, Anchor, etc., which are the "domain objects" that a browser manipulates, in the same way that Flash uses this engine by adding classes for its domain objects such as Sprites. Once this is done, webapp developers will be able to use AS3/ES4 as a fast, type-checked, object-oriented "JavaScript" if they want to.

So this has nothing to do with putting Flash into Firefox. Firefox users will still require the Flash plugin to run SWFs. But contributing a high-performance virtual machine for a type-checked, object-oriented language is still a big deal!

Ryan Stewart took notes of the Eich/Lynch chat session, and is checking on putting the entire log online. Current highlights include MXML/XUL harmonization.

Scott Gilbertson at WIRED has a good entry to the context and possible implications... the different roles of different ECMAScript implementations... the realworld problems of differing implementations of the same spec for the same work... curiosity about how Microsoft Internet Explorer will evolve.

Emmy Huang (Adobe staffer), on DevNet: "What Tamarin means to developers" "Because it is now available to anyone who wishes to use it, the code behind the lightweight, high-performance ActionScript Virtual Machine and Just-In-Time (JIT) compiler can 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 on the Flex Builder engineering team."

Mitchell Baker (Mozilla staffer) gives a high-level overview of what this may mean over the next few years. "The Internet is still new. Our Mozilla 2 roadmap lays out areas where we can help improve the overall usefulness of the Internet. It's a challenging roadmap with a lot of great work to be done. The challenge matches the benefit -- an Internet where user experience is improving, where key technologies are both open standards and open source, and where increasing numbers of people can participate. It's exciting, it's fun and it's worthwhile."

Bill McCoy (Adobe staffer) goes into detail in comments on the two-step compilation process: from source script-text to platform-neutral deliverable bytecode, and then from delivered bytecode to machine-optimized native code.

Neil McAllister writes in InfoWorld of how many of the early rushed reports got the details wrong. "It doesn't mean the Flash player is now open source. It doesn't mean Flash will now be better integrated with Mozilla Firefox. What it does mean, however, is that future versions of Firefox will probably do a better job of running JavaScript code than the current versions. And, because the Tamarin engine is still open source, the community will be able to examine and improve it, which will benefit Mozilla, Firefox, and Flash, all at the same time."

Benchmark tests between current SpiderMonkey and Tamarin engines, with both typed and untyped code. Results vary by the test, with all but two showing performance gains directly in Tamarin, and dramatic gains when strong typing is used. [via Paul Robertson]

Posted by JohnDowdell at November 7, 2006 10:02 AM

Comments

Ahh, thanks for this summary. The quote from Gordon Smith above really cleared things up for me.

Posted by: aq at November 7, 2006 12:20 PM

it was more hope than prediction; http://weblogs.macromedia.com/jd/archives/2005/12/my_prediction.cfm

glad to see we are on course :)

cheers,
:)

[jd sez: You were indeed prescient. Next time I need advice about the future I'll hunt for someone with no name but a gnomic little grin.... ;-) ]

Posted by: :) at November 7, 2006 01:28 PM

Thanks for collecting these links, and for linking back to my post. Note that your trackback to my blog took effect (it has to go through moderation), so no need to keep submitting it :-)

[jd sez: Sorry, yes, on each edit my MovableType installation wants to resubmit, and I have to cut it off manually. Thanks again for that writeup!]

Posted by: Frank Hecker at November 7, 2006 01:32 PM

Posted by: Jesse Ezell at November 7, 2006 07:58 PM