Firefox as a Desktop Environment
I recently upgraded my laptop to Ubuntu Linux version 6.10. One updated application that came as a part of that was Firefox version 2. Since I last updated Firefox about a year ago I figured now was a good time to take a fresh look at the current state of Firefox and its associated extensions and enhancements.
For quite a while I've been using a standard set of extensions, including Adblock Plus and SessionSaver. I assumed that as a power user I had a pretty good idea of how to customize my browser. Once I started looking I discovered that an explosion of new extensions had occurred while I wasn't paying attention. In addition, some features formerly only available as extensions (such as spell checking) are now integrated into Firefox. As I browsed a fairly definitive list it dawned on me that many of these represented an entirely different class of extensions. While most of the older extensions I had been using were focused on modifying the browsing experience, many new extensions were something different, something like desktop enhancements or even desktop program replacements. Furthermore, I realized it might now be realistic to operate your entire desktop experience inside the browser, using a combination of extensions and web-based applications.
A new extension
First I investigated the extensions. The main difference is these newer sort of extensions aren't primarily concerned with the browsing experience - they don't help you resize your textareas or block ads or otherwise modify how you directly interact with the web. Instead, these tools take advantage of the cross-platform capabilities of Firefox to expand or enhance your entire computer experience, not just your browsing. Many of them use the browser for two things: a data connection to the internet and a cross-platform user interface.
The extension that initially got me thinking about this was Forecastfox. Forecastfox provides a comprehensive weather report including current conditions and forecasts right in the Firefox status bar. There's even a current radar map that pops up when you click on the status bar icon.
This extension immediately improved my desktop experience because I have been frustrated by all the different weather applications available on different platforms. Sure, I can always go to weather.com to check the current conditions but that's too much extra work for me. Over the years I have always tried to find a good application to give me the weather always right on the desktop. The Mac application Meteorologist worked great - when I had a Mac. Then my Mac died and I was back to Linux and weather uncertainty.
There are several desktop weather applications for Linux, but the one one I really liked (gweather) only works with the Gnome desktop. I use KDE so I was stuck with Kweather, and for some reason I have never been able to get this applet to work correctly. Why do I need to find and learn a different desktop weather application every time I switch platforms? Well, now I don't - I just install the Forecastfox extension wherever I happen to be. Firefox provides a consistent user experience no matter what OS I am using. In addition, since Forecastfox is an extension is seamlessly integrates into Firefox. I don't have to worry about reloading a web page or clicking on links, instead everything I need is right there at the bottom of the Firefox window all the time.
After this I kept looking, with a firmer goal in mind: how could I reduce my dependency on desktop applications? Even better, are there Firefox desktop improvement extensions that don't even have regular desktop equivalents?
I quickly found a Firefox extension which was completely unique, Verizon Minutes Used. To my knowledge there is no equivalent desktop application on any platform. This extension does just what you would expect: it displays the running total of your Verizon minutes used in the Firefox statusbar. There are lots of little extras, for example the number will turn red when it goes over a preset limit to remind you to watch your usage. You can hover the mouse over the minute display for a complete breakdown of your account usage including details like SMS messages sent.
I've found this extension to be invaluable and it really drives home the power of Firefox as the desktop. Almost everything I do on the computer is connected to the browser. Whatever other task I am engaged in, I invariably need to refer to Google or some other website. Since I'm always looking at my browser I might as well expand the experience and include other useful bits of information. In addition, since applications like this display data in the status bar my main browser window remains uncluttered.
There are Firefox extension equivalents of many standard desktop utilities as well. Two I find useful are and WorldClocks and Calculator. Both do what their names suggest. I know that everyone needs a calculator so that is a very universal extension. In addition, it is a comprehensive scientific calculator. Obviously WorldClocks is only useful if you need to know what time it is in another part of the world. I find this very handy as in my work I occasionally talk with people in England and India and this helps me avoid making a phone call when no one will be there to answer.
I should also mention FoxyTunes as it is a very popular desktop enhancement extension. FoxyTunes allows you to control the music player of your choice through toolbar or statusbar buttons. I don't use this extension but I did want to point it out as another way which Firefox can handle much more than just web browsing and reduce the need to switch between the browser and other applications.
Replacing 'Real' Desktop Applications
The big question is how far can this all go? Can Firefox become an "everything plus the kitchen sink" application? A Web browser equivalent to Emacs? I think the jury is still out on this. Firefox has some incredibly powerful extensions which are as good as standalone programs. One that servers to illustrate the power of extensions is the Mozilla Calendar Extension.
The Mozilla Calendar Extension was originally developed to be part of the integrated Mozilla suite of software. It uses the iCal standard and thus supports shared remote calendars. Everything you need in a calendar program is right there: event scheduling, alarms, task lists, etc. Additionally it plays right to the strength of the browser, namely that you always have your browser running. Thus your calendar is always just a click away and is completely integrated into your desktop experience.
Sadly this extension appears to be at a dead end; work on it has been discontinued. When the Mozilla Application Suite was abandoned in favor of the standalone applications (Firefox for web browsing, Thunderbird for email, etc.) work was stopped on the Calendar Extension. Today its code lives on in other Mozilla applications: Sunbird (the standalone calendar application) and Lightning (a Thunderbird calendar extension). A history of the Mozilla Calendar extension can be found in this Wikipedia entry.
The reason I think the Calendar Extension is important is that as I outlined above it is a complete desktop application, running inside Firefox as an extension. It demonstrates that it is possible to create Firefox extensions that completely replace complex desktop applications.
Mix In the Web
After reaching somewhat of a dead end on my quest to replace all my desktop applications with Firefox extensions, I turned to the web, specifically to hosted applications. With the power of AJAX web applications can now perform much more like regular desktop programs. A little searching soon supplied me with a few possibilities for replacing the big boys of the desktop application world: documents, spreadsheets, and presentations.
Google has been moving aggressively into this area as it has with so many web-based tools. Recently they unveiled Google Docs, which is a combination of a word processor (formerly Writely) and spreadsheet application. I spent some time testing both of these applications and they seem to be acceptable alternatives to the standard Microsoft office applications. Certainly they aren't as comprehensive but realistically most people don't use many of the features of the Microsoft applications anyway. One area these online applications excel is collaboration: once you create a document or spreadsheet you can easily share it with others, independently make changes, and track revisions.
There seem to be a particularly large number of web-based spreadsheets out there. One that is intriguing is wikiCalc (which was reviewed on newsforge a while back). A key point about these web applications is that they can perform all the same functions as desktop equivalents. A good illustration of this power is this wikiCalc screencast).
The final tool I looked to the web for was presentation software. I'm not a fan of PowerPoint but I recognize that everyone has to create presentations from time to time. The web presentation application that really stood out to me was Thumbstacks. This website single-mindedly focuses on the problem of creating and sharing presentations. There's an easy to use AJAX editor that allows for arbitrary text and images on any number of slides. Furthermore, Thumbstacks is smart about using the web. For example you can access your Flickr photo stream for images and share your presentations with multiple remote users at the same time.
Firefox will continue to grow and evolve into more than just a web browser. Currently, many desktop tasks can be accomplished inside the browser by taking advantage of the rich selection of Firefox extensions. However, extensions can't do everything. While there is no technical reason why an application such as a word processor couldn't be written as an extension, that isn't where the focus is these days. In addition, extensions do suffer from maintainability issues as they are separate pieces of code which must be installed on the local system.
Instead, the big desktop applications such as word processors and spreadsheets are being implemented as AJAX websites. This combines the connectivity and collaboration of the web with some of the power of a local user interface. When you combine Firefox extensions and web-based apps, it is possible to spend virtually all your computing time inside the browser. I predict that in the future these two approaches will eventually merge into one unified collaborative cross-platform environment.
copyright 2007 Philip J. Hollenback