Amazing feats of Javascript

Posted by Antonio 2 months, 3 weeks ago (June 7, 2008)

Javascript runtimes hosted in the browser are in the air.

A few weeks ago, I was blown away by John Resig's "side project" implementation of the Processing language in Javascript. I'd heard a lot of great things about Processing as a learning and visualization language but hadn't really bothered to look until I saw that John had more or less shoehorned it into browser, graphics and all.

Then this week, some Objective C fans came out with a Keynote clone that is also amazing not necessarily because we need another online presentation tool, but because its implementation was done with something they created called "Objective J" which seems to be a port of the Objective C language to the Javascript runtime.

(Both Objective J and Processing.js are actually translators in that they take the respective source languages, Processing and Objective C, and generate Javascript that then executes in the browser).

It's amazing that we've got enough CPU cycles to spare for this kind of thing. Layers upon layers of abstraction with pretty good performance to boot. And if that wasn't enough, the hackers behind WebKit are doing some crazy mojo to speed up on of the leading Javascript implementations out there— using techniques borrowed from all of the VM research of the last 30 years that have traditionally been applied to JVMs and the .NET runtime.

Maybe it is because I'm getting old and stuck in my ways, but I have little to no interest in learning Silverlight, Flash/Flex, or any of these other rich runtimes that vendors are trying to jam into the web. For a long time now, Flash has had its place, but it strikes me that improvements in technologies like the Canvas widget, CSS, and the speed and robustness of the Javascript runtimes are encroaching on Flash's long-time sweet spot and that at the current rate, it won't be long before it gets relegated to the role of media player.

Yay to the web becoming the platform to rule them all!

Tags:

Comments

Post a comment

(Please use only plain text. Though I will escape all of your HTML, URLs will be clickable)

Your name:

Comment: