I hate skins and I love native GUI widgets. Microsoft and Apple had a relatively strong set of user interface controls that people are familiar with. Yet loads of developers seem keen on reinventing these devices from scatch. Media players seem to be particularly bad at this. Microsoft’s own Windows Media Player and Apple’s own QuickTime Player both seem to throw out the entire GUI toolkit and start from scratch, building totally confusing (and totally x-Treme) interfaces.
A good user interface should get out of the way. Particularly an interface for an application that delivers content (show us the content, and get out of the way). If you want totally x-treme, you don’t upgrade your media player skin – you download Limp Biskit videos.
When the Mozilla project moved to create their own cross-platform GUI toolkit, many people who were concerned with the user experience cried foul (including myself in this January 2001 rant about skins, and this August 2002 update). The idea struck me as the result of developer-centric thinking and complete disregard to the end-user. A cross-platform GUI would make things much easier for the developers, and a bit easier for the minority of users who work on multiple operating systems, but it isn’t much good for Joe-Windows-User.
Here we are, three years later, and I think they may have been onto something. First, let me be clear that you should always use the available operating system native GUI widgets when you can. Chances are the alternatives you will develop will suck.
Mitch Kapor’s Open Source Application Foundation has chose to stick with native GUIs on their Chandler application. This is a smart decision. Most skinned application suck. Trillian would be a great instant messaging program if it weren’t for the over-skinning (that said, I do use Trillian as I find it to be the best of the worst).
Put the UI in my hands
Enter XUL (pronounced “zool”). XUL is the XML User-interface Language developed by the Mozilla project. It allows developers to define the user-interface of their application using a combination of “off-the-shelf” standards (primarily CSS and JavaScript). The end result is a relatively accessible architecture for interface design.
XUL does to the user-interface what View Source did to web development. Though I have the advantage of a web-development background (familiarity with the key technologies, like CSS), I can do things to a XUL-based app that I could not do on other applications. For example, I found some of the icons on the toolbar of the Mozilla Firebird browser to be poorly designed – so I replaced them (this was as easy as saving new PNG files and dropping them into a .JAR file). The search box was too narrow – so I made it wider (this was absurdly easy).
These may seem like insignificant examples, but it opens up a level of control over the application that is not possible with other design methods.
It’s about quality and consistency
Another key development that has softened my stance of Mozilla’s break from the OS native interface is quality and consistency. Microsoft has been squandering their lead. The quality and consistency of the Windows GUI has been deteriorating rather than improving. Microsoft has also devalued their native Windows interface by allowing it’s own applications, including their media player and the massively important Office suite, to shirk the standards.
XUL, meanwhile, has gotten much better. The software is constantly improving (and incorporating native OS widgets where appropriate – which is a nice touch). Performance is no longer an issue on newer hardware. Where XUL-based apps might have taken a performance hit compared to native Windows apps, the difference is insignificant on recent hardware.
The Mozilla Firebird browser project shows that XUL can be used to develop a quality interface.
Will the operating systems rise again?
I should note that Apple’s OS X may be an anomaly in that the quality has actually been improved over previous versions of the OS. Regardless of your opinion on the style of the OS, it is clearly well rendered. Microsoft is planning on following in Apple’s footsteps by having DirectX handle the desktop GUI in the same way Apple is using OpenGL. There is a chance here that Apple and Microsoft may leap ahead of other interface systems. However, I think it’s more likely that developers of XUL will tap into these improvements than be left behind.
Platform Freedom and Platform Friction
In 1997, Netscape’s Marc Andresen claimed that:
“[b]rowsers will reduce Windows to an unimportant collection of slightly buggy device drivers”
If anything, it is XUL that has the power to do this. I originally thought that the ability to develop applications that run on multiple operating systems with relative ease wasn’t much good, since the overwhelming majority of computer users are running only Microsoft Windows. However, after my recent stint on a Mac for a week and having switched from IE to Mozilla Firebird as my primary web browser, I’m starting to see something more significant going on.
A friend of mine pointed out that for the average novice Windows user to switch to an alternative operating system, they would also be forced to deal with an entire new set of applications. However, if Mozilla Firebird becomes your primary web browser and OpenOffice.org becomes your primary office suite, the platform friction is greatly reduced, as these applications are available on other operating systems. Web-based services and applications are another layer that can work well on any OS. Once you’ve got Johnny windows user into his Hotmail account, he doesn’t care if he’s running Windows 98, OS X, KDE, or Gnome.
But I still hate skins
I do still hate skins. I dream of a simple media player that uses native GUI controls. I hate that every new version of Microsoft Office includes redesigned menus and toolbars. However, in the accessibility of XUL, I see a small example of how the wall between developers and users can be torn down.
More info on XUL: