"History doesn't repeat itself, but it does rhyme."
-- Mark Twain
I was reminded of this quote by Twain today as I read two articles, one at InfoWorld and the other at InformationWeek, about the Mozilla team's plan to give Firefox's JavaScript performance a jolt.  Code named "TraceMonkey", the project is introducing support for just-in-time code compilation into its JavaScript engine.  This new feature has been included with the alpha version of Firefox 3.1, but it is turned off by default because of it's work-in-progress status.

This project is interesting from our standpoint because an increasing amount of our application relies on client-side JavaScript to provide our customers with a smooth experience in editing and maintaining their blogs.  While the rise of AJAX has included many singing the praise of rich internet applications, JavaScript's status as an interpreted language has forced us to keep an eye on performance as our blog authoring software becomes increasingly feature rich.

As ambitious as the project may be, the Mozilla team are thinking wisely here.  The narrative being pitched by Adobe and Microsoft is that if you want to create rich web interfaces that have good performance, you need to lock into one of their proprietary technologies, the kind of technologies that require downloading and installing plug-ins.  As JavaScript pioneer Brendan Eich astutely points out in the InformationWeek article, "Not everyone wants to get a plug-in."

I was also struck by this passage from that same article:
If Mozilla is successful in its efforts, the rationale for developing rich Internet applications will become increasingly questionable. As Eich sees it, RIAs are already at risk. "Those platforms that are not a browser are an increasingly thin value-add to what the browser can do," he said.
In these remarks I hear an echoes of Marc Andreesen back in the mid-to-late 90s, when he boasted that one day Windows would be reduced to
"an unimportant collection of slightly buggy device drivers" with a combination of Netscape's browser and Sun's Java technology.  It's even more amusing when you recall that part of this promise was tied to Sun's addition of support for just-in-time compilation for the Java virtual machine.

Will JavaScript succed where Java fell short.  It will be interesting to see how it all plays out.