Monday, July 07, 2008

How To Host Every Language in Every Language

Atul writes:
Last week, Scott Petersen from Adobe gave a talk at Mozilla on a toolchain he’s been creating—soon to be open-sourced—that allows C code to be targeted to the Tamarin virtual machine. Aside from being a really interesting piece of technology, I thought its implications for the web were pretty impressive.
The next steps Scott took are the most interesting, because he starts using this to build stock Python and Ruby runtimes that are hosted on Tamarin. This is a fascinating solution to one of our biggest itches: more languages on more platforms.

Imagining the sheer number of languages (most) this opens up to running on any Tamarin run-time (Flash and Firefox 4) is mind boggling. Go on, let your mind be boggled. Combine this with the basic idea being targetted to other platforms and you've got a lot of possibilities. Target other bytecode, like Java or .Net, and you open up more possible cross-builds than you can count. Platforms begin to fade on the borders.

At the same time, Mozilla is already busy learning to convert DLR bytecode to Tamarin bytecode, so I guess Java is the only bytecode left anyone (maybe) cares enough about getting to run on it. Down the road, could this mean Flash (and Firefox 4) will be the only platform supporting, essentially, any and all languages and libraries, in some form or another? Impressive.

Not only would Tamarin support Python, but potentially all major implementation of the language. Choices are great.

Of course, the same will be done for every platform, and once again the pattern repeats itself. Vendors will fight over control of the platform, just to be made irrelevent by one layer above them.

No comments:

I write here about programming, how to program better, things I think are neat and are related to programming. I might write other things at my personal website.

I am happily employed by the excellent Caktus Group, located in beautiful and friendly Carrboro, NC, where I work with Python, Django, and Javascript.

Blog Archive