Software as a service: have it your way

Last week I mentioned Greasemonkey, a Firefox extension that enables scripts to run in the context of web pages. Since then I've written a few of my own Greasemonkey scripts. The first, which I've shown in a screencast, is a next-generation LibraryLookup. Originally you had to click a bookmarklet in order to jump from an Amazon page to a book's record in your local library. Now, if the book is available in the library, the Greasemonkey script automatically inserts an alert into the Amazon page. As I discuss in the screencast, page rewriting is a hot topic that's about to go nuclear.


Two components make this possible. One is the scriptable DOM (document object model), which enables in-situ alteration of web pages. The other is the XmlHttpRequest object which is now available in all the major browsers, and which supports asynchronous interaction with remote services.

Combine the two and you get a powerful system for delivering realtime alerts in the context of web pages. AJAX (Asynchronous JavaScript and XML) is the new name for this strategy. But it's an old idea, and XML is optional. At its core this is about web pages that communicate autonomously and update themselves dynamically. You'll soon see a lot more of these, and you may well find yourself creating some too. [Full story at]

A few weeks back, in a comment posted to Dare Obasanjo's blog, Adam Bosworth noted that the "auction demo" -- which I saw him present in, I think, 1997 -- was the model for AJAX. Jean Paoli, who I joined this week on a panel along with Tim Bray, told me with great amusement that an InfoPath team member recently announced: "Hey, we're an AJAX application!" As I point out in the column, there's nothing new about AJAX.

Greasemonkey, though, does seem to open up uncharted territory. As I've mentioned before, a user of Gmail was able to add persistent search folders to the application. When search folders were added to Outlook, in version 11, everyone made a big deal about it, and rightly so. It's a major feature. Now I use search folders in Gmail every day, the feature is indistinguishable from the core application, and it was created by a user!

This kind of customization makes the already attractive notion of software as a service even more compelling. Imagine that your company subscribes to a hosted web app, and it's mostly great, but there are a couple of features you wish you could offer your people, and the vendor isn't coughing them up in a timely way. In an AJAX world you might have a pretty good shot at doing it yourself.

Former URL: