There’s been lots of exciting news this summer about JavaScript performance improvements. We have Firefox’s TraceMonkey, Safari/WebKit’s SquirrelFish, and Google Chrome’s V8 all improving by leaps and bounds. On a sightly less exciting note, IE8 will contain 400 fewer memory leaks.
This is all very exciting for developers of highly-interactive web-apps, and it makes the Appcelerator style of client-side templating and interactivity even more responsive for the end-user. Though you may not see ray-tracers and bioinformatic apps being run in next year’s browsers, you’ll definitely see more processing and application state being moved from the server onto the client.
One rather surprising thing that speedy JavaScript enables is new languages inside your browser, like Objective-J or to some extent Appcelerator’s web expression mini-language. The surprising part about Objective-J is that it actually parses and interprets a full, real programming language when you open up a page. Seems like a lot of work, no? Regardless, the apps it generates are quite responsive.
Another project that could use a modern JavaScript engine to change how we develop web apps is something like Prophet, a distributed database that supports offline use because of its “self-healing conflict resolution”. Though it’s written in Perl, a port to JavaScript might now be feasible, enabling developers to construct applications that operate with all of their data management and business logic in the client.
There will of course be cool uses of JavaScript that we can’t even predict yet. Many thanks are due to the clever compiler hackers at Mozilla, Apple and Google!
Popularity: 6% [?]

October 1st, 2008 at 11:20 am
I suppose I should have googled for “javascript ray tracer” before deriding the possibility:
http://www.slimeland.com/raytrace/
I still don’t think that this kind of compute intensive task will be common within the next year.
October 2nd, 2008 at 12:53 am
Darn. You beat me to it. Saw your post in GReader, and I knew there was a JavaScript ray tracer out there.
Faster JavaScript can only mean good things for Appcelerator. Some other interesting JavaScript projects that can certainly benefit from improving performance are John Resig’s Processing.js:
http://ejohn.org/blog/processingjs/
and Sun’s Lively Kernel:
http://research.sun.com/projects/lively/
October 7th, 2008 at 2:01 pm
I’d heard CouchDB mentioned before, but reading about it today it seems very similar to the Prophet database I discussed. Though it does have a javascript interface, it doesn’t implement any/much of the database part in javascript.
October 28th, 2008 at 1:56 pm
http://mark.webster.googlepages.com/jsrt.html
November 3rd, 2008 at 3:21 am
While the increasing speed of JavaScript is indeed exciting, it’s really important not to put business logic on the client side. Business logic belongs on the server, where it isn’t trivial for users to manipulate the program state to attack your app.
November 3rd, 2008 at 10:52 am
Hi M.Cow,
You probably don’t want your security code to be all on the client-side, but there’s a large amount of program functionality that can be moved to the client. The only aspects of an app that must be on the server-side are data access (read and write) permissions: similar to how an operating system manages file access, a web app can have all of its non-permissions logic on the client, and treat the webserver purely as a persistent data store.
I think that we’ll soon see people building webapps that manage their persistent storage with distributed databases like CouchDB ( http://incubator.apache.org/couchdb/ ).
Do you follow the distinction I’m making between business/application logic and security logic?