Making Firefox extensible by you just became simple
When you're a developer with Mozilla Labs or another open source laboratory, one of the things you'll often find yourself doing is "launching" a project before it's anywhere near complete. That's what it means to be truly open. In the case of Aza Raskin and his design team, last night, he "launched" (that's Mozilla's term for it) a project to encourage Web site developers to build simpler but more accessible add-ons for the Firefox browser, by means of a JavaScript API and Firefox plug-in called JetPack.
Although Firefox is itself an exercise in JavaScript, crafting plug-ins to do simple things is not a simple matter. There's actually a cottage economy developing already around plug-ins, which Jetpack could disrupt merely by giving everyday programmers simpler means to make additions to the browser.
"Specifically, Jetpack will be an exploration in using Web technologies to enhance the browser (e.g., HTML, CSS and JavaScript)," wrote Raskin late yesterday in his Call for Participation, "with the goal of allowing anyone who can build a Web site to participate in making the Web a better place to work, communicate and play."
The surprise is that there's not much to it, and that actually may end up being its biggest benefit. With Jetpack installed in Firefox, the browser becomes instantly adaptable, even on a live basis -- a JavaScript coder can make changes to it without a restart. The language is JavaScript enhanced with jQuery, the transformative language extension that makes the language much more direct, driving events rather than merely reacting to them. The Jetpack API exposes just a few objects pertaining to the event matrix of the browser and some of the front end elements, particularly the status bar. That's where a lot of add-ons' exclusive output will appear, as the Firefox status bar becomes the counterpart of the Windows taskbar or the Mac Desktop dock.
Mozilla Labs Jetpack - Intro & Tutorial from Aza Raskin on Vimeo.
There's not much to show for what Jetpack 0.1 can enable a homebrew developer to do with Firefox right now, but the strongest case it's making for itself right now comes from the Gmail notifier demonstration, a little add-on whose total development time could not have consumed longer than an hour. Its principal function queries the Atom feed from Gmail for a string of text, and parses that text to obtain the unread message count. Another function adds the digits for that number to the graphic that appears for the add-on in the status bar.
Jetpack utilizes Mozilla and Mozilla Labs features that already exist: for example, it uses the Labs' experimental HTML 5-based inline JavaScript code editor Bespin as its programming front-end and even for a command line that gives immediate orders to Jetpack. And it uses the already popular Firebug as its inline debugger.
Last night's Call for Participation instructs interested parties as to how to download and install the Jetpack plug-in (not a big deal), how to submit bug reports, and where to find the Labs' very brief instructional videos and tutorials -- which may themselves been produced in an hour or less.