Find file
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (43 sloc) 2.44 KB
timestamp: 2007-02-10 15:06:10Z
title: js invasion
id: 68
content: |
<p>"Firefox is a great operating system, I just wish it had a decent
web browser."</p>
<p>If you've been programming long enough you've probably heard the
Emacs version of that joke. (If you've used Emacs enough, you
probably know that it's not actually a joke.) Like Emacs, Firefox
isn't really an application; it's a dynamic development platform
disguised as an application. I suppose shouldn't be a huge
revelation to me since people have been building apps like
Thunderbird or Sunbird on the Mozilla platform for ages. Folks have
even been putting together
some <a href="">crazier</a>
<a href="">apps</a> in XUL. But Firefox was always
a big monolithic app written in a non-dynamic language to me.</p>
<p>Anyway, the cause of my most recent epiphany
is <a href="">Mozlab</a>. It's
a Firefox plugin that gives you access to a
killer <a href="">REPL</a>
for interacting with a live Mozilla session. There's
a <a href="">neat lil'
flash screencast</a> that explains its usefulness better than I can
here. The Emacs integration is also top-notch--if you've
used <a href="">SLIME</a> for
doing Common Lisp development, this is basically the same thing for
XUL. You connect to a running instance of Firefox and can send it
bits of Javascript that you are working on to evaluate.</p>
<p>All this to say: the flexibility that Mozilla gives you (when
coupled with the tools of MozLab) is well suited for ridiculous
amounts of customization using Javascript alone. It really is a
platform on which you can build apps that just happen to have access
to one of the best rendering engines written. I've often
<a href="">lamented about the lack
of a solid browser written in one of my favorite languages</a>. At
one point I thought the answer might be to try to get bindings to
the Gecko rendering engine in Ruby or Lisp, but this involves more C
than I can stomach. The real answer here is that Firefox is written
in Javascript, not C, and Javascript is dynamic enough to be
suitable for an application-building framework like Emacs.</a>
tags: javascript