Rhino on Rails

Steve Yegge wrote a blog post about his work on porting the Rails framework to JavaScript (Rhino). It is definitely an interesting project and I would like to see it open-sourced. Here are a few interesting quotes from the text:

* On Jython

Jython seemed like the obvious choice at first, except that it hasn’t had much momentum since around 2001. It used to be arguably the best non-Java JVM language around; Jim Hugunin did an amazing job with it. Unfortunately it’s had almost no love in the past six years, and it’s now lagging the Python spec by several major versions (2.2 vs. soon-to-be 2.6).

* On Rhino

The Rhino code base reads almost like C code: it avoids allocation and does as much as possible with jump tables to avoid the overhead of virtual method lookups. It has two code paths: a bytecode interpreter that runs in a tight loop, and an optimizing Java bytecode compiler that turns many expensive-ish JavaScript property lookups into Java local or instance-variable lookups. It’s a pretty serious piece of software.

* On open-sourcing the framework

We’ve talked about open-sourcing our “Rhino on Rails”, but so far it’s been no more than idle chit-chat. For one thing, work on the framework plays second fiddle to work on the actual application, so it’s progressing slowly, mostly as 20% work. For another, we’re dependent on various other Google infrastructure components that are themselves in the process of being open-sourced, although I don’t know if any of them have been announced yet.