view source

ActionScript Virtual Machine2 is now open source

November 8th, 2006 . by polyGeek

Adobe has released the Flash Player virtual machine to the Mozilla Foundation as project called Tamarin. (Read Adobe’s press release.)

If you’re a designer/developer like me who didn’t major in Computer Science in college then you’re probably asking, “What the frak does this mean?”. To help with that I put together a short tutorial from snippets from Wikipedia.

A short overview: When authoring in Flash you produce source code. When you publish your .FLA file you produce a .SWF that contains bytecode instructions. When the SWF file is loaded into a browser it is executed by the Flash Player which is a virtual machine. The virtual machine then uses its JIT (Just-In-Time compiler) to convert the bytecode in the SWF into machine instructions that then creates the user experience you designed and coded in the first place.

The advantage to this process is that you only have to create one SWF that will run in Windows, Mac OS, or now Linux. Each OS has its own version of the Flash Player which turns your SWF into machine code that will run on that particular system.

What is a Virtual Machine? (full article)

… [a] virtual machine is a piece of computer software that isolates the application being used by the user from the computer. Because versions of the virtual machine are written for various computer platforms, any application written for the virtual machine can be operated on any of the platforms, instead of having to produce separate versions of the application for each computer and operating system. The application is run on the computer using an interpreter or Just In Time compilation. One of the best known examples of an application virtual machine is Sun Microsystem’s Java Virtual Machine.

What is bytecode? (full article)

Bytecode is a binary representation of an executable program designed to be executed by a virtual machine rather than by dedicated hardware. Since it is processed by software, it is usually more abstract than machine code. Different parts of a program are often stored in separate file, similar to object modules.

What is a Just-In-Time compiler? (full article)

In a bytecode-compiled system, source code is translated to an intermediate representation known as bytecode. Bytecode is not the machine code for any particular computer, and may be portable among computer architectures. The bytecode is then interpreted, or run on a virtual machine.

With all that info under your belt Frank Hecker has a great post to further explain these details.

If you don’t have a solid understanding of a DOM vs. a Language then read this: Language vs. DOM at Yahoo Groups.
Ted Patrick has a nice little flowchart in his Tamarin Implications post.

kaourantin.net: SpiderMonkey’s relative Tamarin joins the family. This guy knows his code and helps explain a lot of what this really means down in the code/compile level.

JD on EP: Tamarin commentary, day 1. A bunch of excerpts from a variety of sources.

darron schall: Compile ActionScript in ActionScript.

ZDnet: Could Adobe’s contribution to Mozilla force MS to take Internet Explorer open source?

After all is said and done this is going to mean a lot of different things to different people depending on what you do. But, most importantly I think, it’s going to help create a better platform for all sorts of browser based apps, both in Flash and Ajax.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Digg
  • Facebook

Leave a Reply

Name

Mail (never published)

Website

- Why ask? This confirms you are a human user!

   




© Copyright 2008 polyGeek.com / Dan Florio, All Rights Reserved Except Where Explicitly Stated
Web Developement Blogs - Blog Catalog Blog Directory
M2 Websites