The most excellent Firefox browser (see my tips
) is built on Mozilla code. So is the Thunderbird
e-mail client, and a bunch of other applications are “powered by Mozilla”
. The name for the underlying code to talk to the network, render HTML, display controls, etc. is XULRunner.
An app powered by Mozilla is better
than most Windows apps. As I've complained on the IntarWub
I wish my native apps worked as well as web apps in Firefox: ubiquitous text selection, spell-checking in every field, smart zooming, superb auto-update, user data cleanly separated in profiles, and powerful notions like bookmarking, caching, etc. But they don’t, they’re CRAP in comparison. I hate leaving the browser to screw around in native apps like iTunes, media players, and Norton Justshootme Virus. Then, to add insult to injury, these native apps are peppered with web links that don’t have Firefox’s context menu and so lack vital commands like “Bookmark this link” and “Copy link location”.
If native apps used the underlying code of Firefox, they'd work more like it and be better. However, Mozilla-based apps are heavier than they need to be:
- another .exe installer
- another copy of the XULRunner code on disk (18MB!) and in memory that you have to update.
There is a way to keep them lightweight, which is to run the application off the XULRunner code in Firefox. Firefox has an undocumented -app command line option
to run a XULRunner application using the platform code that came with Firefox 3. (See my post about standalone ChatZilla
for an example).
Strangely, Mozilla Corp and third-party vendors put no effort into promoting this. Mozilla folk seem to love extensions that improve Firefox, they have a Firefox extension called Prism
that lets you turn Web sites that are sophisticated "Web applications" (like GMail) into icons on the desktop, and they tolerate Mozilla-based applications. But the idea of "use your Firefox code to run lightweight local applications" is well-hidden. Maybe they're afraid of tying other products to Firefox requirements and upgrade schedules, or they assume disk space and memory is "cheap"
The best future is one where Firefox and Thunderbird ship as just another relatively small application that runs off a "central" XULRunner binary, same as all other "powered by Mozilla" applications. That's how the Browse activity on my One Laptop Per Child XO machine works.
One platform to rule them all
I realize you have to pick your battles and Mozilla has to focus on making great products that give users a better Internet experience. But it would be a shame if the solid, coherent, Web-friendly XULRunner platform lost out because it didn't promote itself. Fortunately there's next to no money in platforms (just bragging rights, lock-in, and mindshare) so no one else is trying too hard. The competitors:
- Every few years Microsoft promotes a different platform for building applications, currently it's Silverlight. No thanks, I keep declining it in Windows Update.
- Macromedia/Adobe has spent years getting people to write Flash-based applications, first as lightweight gadgets in Macromedia Central, then as Adobe AIR. But text and scrollbars alone in Flash are so jarringly inconsistent that I find Flash apps uncomfortable.
- Sun's Java is still around on the desktop, I think I have Eclipse and maybe BitTorrent apps using it.
One development that could quickly bring the promised land of all Mozilla-powered apps all the time are the coming low-cost 4PCs (power-performance-price-portability) and network tablets. Once you put Firefox or a Gecko-based browser on these, you've got that 18MB of code in memory, so reuse it to create the small fraction of your computing that isn't Web browsing. That's the vision behind this fantasy? Firefox web tablet
Labels: Firefox, web, XULRunner