Atlas · Details
Rhino on Rails
AI Notes
Steve gave an improvised Foo Camp talk — by his own account ten
minutes after crawling out of a tent, hung over and unshowered —
about porting Ruby on Rails to Rhino, Mozilla's JavaScript engine on
the JVM. John Lam blogged it, and the inbox crush followed; this
essay is the bulk reply. The body is half project announcement, half
disclaimer. Steve's project at Google's Kirkland office needs a
Rails-style web framework, has to run on the JVM, and has to use one
of Google's four production languages (C++, Java, Python, JavaScript).
That rules out Ruby. Jython has stalled, lagging Python by several
major versions. Rhino is in better shape: a
spec-rigorous interpreter, a Java-bytecode-compiling optimizer, well-
defined multithreading, and Sun is now bundling it as
javax.script in Java 6. So Steve ported essentially all
of ActionView, ActionController, Railties, and a sliver of ActiveRecord
to Rhino — using a Pickaxe book, a lot of Emacs keyboard macros, and
no code generator. The closing tease — NBE, a "bona-fide magic
trick" he can't yet talk about — is The Next Big Language, which
shows up in print eight months later.
An early entry in Steve's 2007–2008 server-side-JavaScript-on-the-JVM argument. Rhino on Rails is the announcement; Rhinos and Tigers is the Google I/O keynote a year later; Dynamic Languages Strike Back is the Stanford defence.
Related listings
-
2008
Rhinos and Tigers
A year on, Steve gives the Google I/O talk that turns Rhino on Rails into a public engineering argument. Rhino on Rails is the announcement; Rhinos and Tigers is the keynote.
-
2008
Dynamic Languages Strike Back
The Stanford companion talk. Rhino on Rails is the project; Dynamic Languages Strike Back is the long-form defence of the project's premise.
-
2006
Execution in the Kingdom of Nouns
The Java critique that motivates putting JavaScript on the JVM in the first place. Kingdom of Nouns is the diagnosis; Rhino on Rails is one of the prescriptions.
Press & impact
The talk that triggered all this was improvised; the reaction was not. John Lam blogged Steve's Foo Camp aside, the trade press picked it up within days, and "Google ports Rails to JavaScript" ran through the Ruby and Java blogs for the better part of a week. A second wave of interviews followed in early 2008. The project itself never shipped publicly — which is its own long tail: the trail below ends with the community, three years on, asking where it went.
The 2007 reaction
The Foo Camp report that started the inbox crush, and the trade-press cycle that followed it over the last week of June.
The Foo Camp write-up the essay opens by blaming — "getting John Lam'd is worse than getting Slashdotted." The original iunknown.com post is gone; this is the Wayback copy.
The news write-up of the announcement, situating it against earlier server-side-JS Rails clones (TrimPath Junction, Phobos, Helma).
The Ruby community's read on Google routing around Ruby rather than adopting it.
Follow-ups and long tail
A second round of interviews in early 2008, and — three years on — the community noticing the port never saw a public release.
An interview revisiting the port eight months later, with Steve calling it "a transitional thing."
A video interview taking in Rhino on Rails, dynamic languages, and the JVM.
Three years on, the project still unreleased, the community asks where it went.