Growl - Why Don't We Make This a Standard?

I spent quite some time today fiddling with my Growl code, and after the latest fix for compiler alignment was committed, I am now able to send notifications from my Linux boxes to my Mac. Application registration isn't quite there yet (I'm still sorting out the API), but it works - authentication and everything.

Source will be available as soon as I have decent documentation, so that I can release everything in one go.

Nevertheless, I got some e-mail asking me about Gnome bindings for it already, and that got me wondering - there's obviously some interest in this sort of thing for other platforms (and my personal intent is to use it to send notices from my Linux boxes to my Mac). Plus there has been the occasional attempt at doing better desktop notifications inside Gnome, so... Why not joining efforts?

Jabber Is Dead, Get Over It

Lots of people I talk to (including Melo, for instance), keep telling me they want their machines to notify them via IM (and, typically, Jabber). Now, I don't live inside an IM client. And I loathe the XML cruft that Jabber spits out.

But I experimented with IM notifications myself, and found it little more than a toy. Sure I can graft all sorts of things onto something that reaches me via IM, but unless you really need to act upon the notification (and assuming you bother to code the appropriate stuff into your bot), it quickly loses its shine.

I'm not going to rant on about Jabber - an IM effort that has utterly failed in delivering a server platform as easy to install and maintain as Apache (a target that was missed by miles, and for which there is no excuse) and which doesn't have a single usable client (it's IM, for chrissakes, why are the clients so bad?) has failed, no matter how open and flexible it might be.

And yes, I know Apple is going to support it in the next version of iChat - it doesn't make it any more relevant, since there is also the little matter of having no backing at all from major IM networks, despite the feeble chiming concerning the "many corporate deployments" (I've yet to see one live).

My take is that SIP Messaging will eventually replace Jabber - it's lighter, faster, and making wide inroads in the VoIP and mobile spaces. And as soon as people figure out it can be used for much more than that, I bet it will be as popular for interactive applications as HTTP is for surfing the web. The RFCs don't show it (and many people cringe when they see them), but a working subset can be implemented in a matter of hours.

You're Notified, Not Required

But let's get back to notifications. What most people who would like their servers to talk to them really want is to know something's happened. The notifier doesn't need to be a two-way channel, because the process of responding to a notification has two main characteristics:

  • You very seldom have to act immediately in response to a notification
  • When you do, you typically need another tool besides the notifier to accomplish something

Which is why Growl is in the "sweet spot". Its notifications are discreet and don't interfere with your work, fading in and out of your visual field to deliver information in a way that non-Mac users will have trouble appreciating. Like most successful Mac OS X applications, it performs its primary function so well that it becomes indispensable.

It does not crowd you for attention nor bulge with useless features. And it provides you with a single place to enable, disable or filter all your notifications - in the upcoming 0.6, even network notifications.

KISSing it

Now, I don't have the time to go about doing a Gnome port. But I think it makes sense, and that some Gnome hackers should get together, look at Growl and (this is the tricky bit) resist the temptation to reinvent the wheel.

Growl works, has a very simple network protocol (my proposal will eventually be updated to match the upcoming 0.6 release), and can already display notifications from my Linux box. So why not design the new Gnome notifications around a Growl-like system (with a centralised preference pane) and use the same network protocol?

(Some zealot will eventually step in with guns blazing and a severe case of the "not-invented-here" syndrome, but I think this one is a no-brainer.)

The SIP Thing, Again

Finally, a word about standards. And yes, I'm going to repeat myself - it kinda helps to get the point across. The one widely accepted standard that is suitable for this sort of thing (i.e., short one-line network notifications with nil network overhead) is SIP, and it's a no-brainer either. Growl semantics can be linearly mapped onto REGISTER and NOTIFY methods, it already supports standard authentication, and can be proxied across network boundaries (therefore making it potentially global in reach).

So here's a challenge for all those guys out there at PlanetGnome, and whoever else has been doing their own little Growl network repeater: ditch HTTP, cut through the REST and XML-RPC red tape and see if you can come up with a SIP-based notification system for Gnome, or a SIP bridge for the native Growl protocol (I'll probably try my hand at this last one, since I have my own mini-SIP library).

You'll find it worth your while.