It is fun talking to geeks who have recently converted to Macintosh coming from a career with Windows. They are excited about the possibilities of using all those Unix tools from the command-line (and who wouldn’t be excited about that?) and are disoriented by the differences.
I tell them that a lot of things are the same, that their new computer will still go wrong in frustrating ways and that the Finder is the way it is for historical reasons. The most productive part of the conversation is suggesting bits of software that make your computing career on Macintosh less painful…
[Growl!][growl] What a fantastic piece of software. [Mac OS 9][macos9] introduced modeless notifications and it was immediately obvious why it was a good thing. Before then you could bring a Mac server to a halt just by holding down the mouse button for too long, and many Mac applications wanted to get your attention by throwing up a global dialog box to let you know when something had happened. Due to the classic Mac relying on co-operative multi-tasking a modal dialog box could not only interrupt the front-most application but also stop all background applications until the dialog box was dismissed. So Mac OS 9’s mode-less notifications were a great thing.
On [Mac OS X][macosx] there is no built-in API for posting global mode-less notifications. Growl fills that gap. Growl provides [an API for Mac applications to post notifications][growlapi] and it presents those notifications in an unobtrusive manner, floating small windows on the top of your desktop that can be easily dismissed or ignored.
The truly great thing about Growl is how it has been adopted by developers. [BBEdit][bbedit] uses Growl; [Cyberduck][cyberduck] uses Growl; [pretty][transmit] [much][fontexplorerx] [every][adium] [great][colloquy] [Mac][netnewswire] [application][transmission] supports Growl because it is such an excellent way to post notifications.
And so it seems to me that Mac OS X itself should support a Growl-like API for notifications. Either the operating system should take advantage of Growl when a user has installed it or Apple should just ship Growl as part of the system to provide its functionality as a standard API for any application to post notifications.
I believe there is a need for such an API. Witness the [Google Notifier][gnotify] application which does _not_ use Growl for notifications but instead chooses to post floating mode-less notification windows that look an awful lot like Growl’s notifications but which behave in a subtly different manner. Annoying.
[growl]: http://growl.info/
[macos9]: http://www.apple.com/support/macos9/
[macosx]: http://www.apple.com/macosx/
[growlapi]: http://growl.info/documentation/developer/
[bbedit]: http://www.barebones.com/support/bbedit/arch_bbedit92.html
[cyberduck]: http://trac.cyberduck.ch/wiki/help/en/howto/growl
[adium]: http://adiumx.com/
[colloquy]: http://colloquy.info/
[netnewswire]: http://netnewswireapp.com/
[transmission]: http://www.transmissionbt.com/
[transmit]: http://panic.com/transmit/
[fontexplorerx]: http://www.linotype.com/fontexplorerX
[gnotify]: http://toolbar.google.com/gmail-helper/notifier_mac.html