Tuesday, November 7th, 2006

Adobe Open Sources JavaScript Engine in Mozilla Foundation

Category: Adobe, Announcements, Firefox

>This is huge news. Adobe and the Mozilla Foundation announced that Adobe has contributed source code from the ActionScript Virtual Machine to the Mozilla Foundation:

Mozilla will host a new open source project, called Tamarin, to accelerate the development of this standards-based approach for creating rich and engaging Web applications.

The Tamarin project will implement the final version of the ECMAScript Edition 4 standard language, which Mozilla will use within the next generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla’s free Web browser. As of today, developers working on SpiderMonkey will have access to the Tamarin code in the Mozilla CVS repository via the project page located at www.mozilla.org/projects/tamarin/. Contributions to the code will be managed by a governing body of developers from both Adobe and Mozilla.

“Adobe’s work on the new virtual machine is the largest contribution to the Mozilla Foundation since its inception,” said Brendan Eich, chief technology officer, Mozilla Corporation, and creator of JavaScript. “Now web developers have a high-performance, open source virtual machine for building and deploying interactive applications across both Adobe Flash Player and the Firefox web browser. We’re excited about joining the Adobe and Mozilla communities to advance ECMAScript.”

“This is a major milestone in bringing together the broader HTML and Flash development communities around a common language, and empowering the creation of even more innovative applications in the Web 2.0 world,” said Kevin Lynch, senior vice president and chief software architect at Adobe. “By working with the open source community we are accelerating the adoption of a standard language for creating and delivering richer, more interactive experiences that work consistently across PCs and mobile devices.”

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!

Related Content:

Posted by Dion Almaer at 8:40 am
18 Comments

++++-
4.3 rating from 46 votes

18 Comments »

Comments feed TrackBack URI

Wow – that is big news. Previous discussion made it appear that a JIT Javascript compiler would be 2010 thing for Firefox. Now I would like to speculate that it will be much sooner(?)

Comment by Jeffrey — November 7, 2006

[...] Ajaxian breaks this news about Adobe contributing source code from the FlashPlayer Scripting Engine to the Mozilla Foundation. This will take the form of a new project called Tamarin. It will continue to be used by Adobe as part of the ActionScript(tm) Virtual Machine within Adobe Flash Player. Not only does this open it to the community, but will ensure tighter integration with the open source and cross-platform browser Firefox. This is also a good news for Linux community as this might lead to a better experience with Flash in future. Kudos to Adobe! [...]

Pingback by iface thoughts » Tamarin - A Contribution From Adobe — November 7, 2006

Umm. I see Flash and javascript mentioned here. I didn’t realize that Flash used javascript. Obviously I’m confused. Can someone please explain the significance of the announcement in simple terms? Also, does this give give significant strategic advantage to Mozilla over MS/IE?

Comment by JZ — November 7, 2006

JZ,

Flash uses ActionScript which is ECMAScript (the standard). JavaScript, JScript, are implementations of the ECMAScript standard.

Basically, Flash runs on what you think of as a JavaScript VM :)

Cheers,

Dion

Comment by Dion Almaer — November 7, 2006

Tamarin = Flash + JavaScript + ?

想到以後可能可以不用裝 flash player 我就覺得蠻高興的… :p

剛剛看到一則消息,說是 Adobe 把它們的 ActionScript virtual machine 的程式給 open source 了,交付給 Mozilla 使用,改名叫做 Tamarin (不是 …

Trackback by 苦牢之最後一年 — November 7, 2006

So, can someone explain to me what the advantage of having a JIT is for web developers, specifically as it relates to Javascript? My understanding of JIT is that it takes bytecode, like what you get from a Java app or SWF, and translates it to machine code, tuned to specific platforms, at runtime.

But since JS is never compiled, I don’t understand the advantage of dynamic translation for JS. Am I missing something?

Comment by Jim Ray — November 7, 2006

Fortunately, Jeffrey, we won’t have to wait til 2010 :-). From the Tamarin project page at Mozilla: “Tamarin will support the forthcoming ECMAScript Edition 4 (”JS”) language and will be integrated into SpiderMonkey as part of the Mozilla 2 project, to be released in 2008″.

Recently Brendan Eich made various rather mysterious statements about a forthcoming open source JavaScript VM. Definitely, this is going to change the future of browser-based applications!
For the Open Source JavaScript framework qooxdoo (as well as all the other JavaScript frameworks), this is particularly great news as it had recently already revealed the major performance improvements of IE7.

Comment by Andreas Ecker — November 7, 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…

Trackback by JD on EP — November 7, 2006

Jim Ray: JS is compiled in Firefox to bytecode, so it’s not true that “JS is never compiled.” Some browsers parse to abstract syntax trees (ASTs) and interpret those recursively; others compile to continuations, as if the JS were Scheme or a Lisp dialect. In any event, JS can be JITed to gain performance. Untyped JS as is found on the web will need special care to realize the same gains that typed AS3 code sees in Flash 9.

/be

Comment by Brendan Eich — November 7, 2006

To Andreas Ecker: Just saw that myself on Ars and double checked here – thanks!

Comment by Jeffrey — November 7, 2006

Nice blog post summarizing what this means for everyone involved:

http://www.hecker.org/mozilla/adobe-mozilla-and-tamarin

Comment by Rob Sanheim — November 7, 2006

Hey, thanks, Brendan!

I guess what I meant when I said that “JS is never compiled” is that it’s never compiled by the developer, e.g. it’s still interpreted by the browser first, not dropped on the webserver as a compiled object (like a Java applet or a Flash SWF). So, the way I understand this is that there will be a generic JS -> bytecode compiler and then a platform specific bytecode -> machine code JIT that will further improve performance.

Comment by Jim Ray — November 7, 2006

Jim Ray: you’ve got it. Lately, when I speak, I hear requests for a standard bytecode format for JS. My answer is that the bytecoded, JITed VM space is a patent-encrusted mess, which means sunk costs of significant size. So I doubt there will be a standard JS bytecode, but I do suspect that a standard binary syntax for Abstract Syntax Trees (ASTs) could be agreed upon, based on the interfaces for reflecting on ASTs that we are working on for ES4. And binary-ASTs can be *more* efficient, both for transfer and for JITing, than binary bytecode formats.

/be

Comment by Brendan Eich — November 7, 2006

On my site where I posted about this, I was concentrating on the “killing two birds with one stone” aspect, but I wasn’t even aware of the performance gains to be had. Very cool indeed. Can’t wait.

Comment by rob cherny — November 8, 2006

As I understand the press releases AVM2 will compile and run AS3 in Mozilla. If this is the case a couple of things become possible (and probably more). You will have access to the AS3 API which includes XMLSocket, NetConnection, NetConnectionChannel, et al. This could not only replace XHR but would provide a ready made solution for reverse Ajax / Comet (directly replacing ad hoc solutions like AjaF). Going one step further you have SharedObject API for collaborative API. I realize a lot of this depends on server-side code but I guess my question is “How much of the AS3 API is Tamarin going to run on the clientside?”. Anybody?

Comment by Steven Elliott — November 8, 2006

Apologies for jumping the gun. I just took a look at Tamarin CVS and found disappointingly there is no support for AS3 only ES4. Oh well, it seemed possible if not probable.

Comment by Steven Elliott — November 8, 2006

[...] Adobe Open Sources JavaScript Engine in Mozilla Foundation at Ajaxian [...]

Pingback by Backdrifter: Adobe Donates ActionScript VM to Mozilla — November 9, 2006

Agreed.

Comment by Yoko — August 19, 2007

Leave a comment

You must be logged in to post a comment.