First class UI constructs
So what’s a “first class user interface construct”? I’ll show you a perfect example in Google’s new gmail.
First some background. I’ve tried many, many webmail systems, and I actively use at least six for various purposes (Yahoo, MSN, gmail, fastmail, Outlook Web Access (OWA), and the free Linux ones). They all have their strengths and weaknesses. OWA has a beautiful interface, but it’s fairly expensive. Fastmail is my primary email system because it’s so flexible, but it’s UI is a tad clunky - geeky even. MSN is pretty but surprisingly awkward - just serviceable, really. Yahoo is quite good, but there’s just something about gmail that’s better.
For me gmail has two or three key features. The first is a slam dunk. All email conversations are threaded. This is so useful. For gmail, this isn’t an option or a filter - it’s just the way it works. Why would you want it to work any other way?
A more subtle feature of gmail is archiving as a first class construct or first class operation. You can approximate gmail’s archiving in any of the above mentioned email systems by moving messages to a folder named Archive. But that’s not Archiving as a “first class construct” - it requires thought and discipline to set up. You have to decide to set things up that way. Decisions are the enemy of learnability. With gmail, there is a button dedicated to the act of archiving. You can archive with the other email systems, but gmail elevates the semantic importance of “Archive” to a much higher level - making it a “first class” construct of the user interface. It’s in your face. I’ve been using gmail for my personal email for a few weeks, and I find myself compelled to keep my inbox nearly empty.
Next, gmail eschews folders in favor of labels (eliminating folders makes Archive stand out even more). In combination with archiving, labels provide enormous flexibility and power to organize email. They just feel better than folders - somehow less of a commitment. Instead of moving an email to a folder (a “commitment”), you apply a label to an email. Or apply multiple labels. Or none. They are optional.
Which brings us to the most obviously brilliant aspect of gmail - it’s built around search. All of these other features are built with the intent of creating a personal searchable email archive. Google’s search is the champ right now. It’s the most flexible, the most useful, and by far the fastest.
gmail still isn’t perfect, and in fact it’s only in beta right now, although gobs of people use it. Its biggest problem is the inability to use it with a professional “from” address (I can’t use me@mydomain.com - you can specify a reply-to, but that’s not quite professional quality). If (when?) they provide this ability, I won’t use any other email system. Well, it would be nice if they had the flexibility of fastmail in this arena, but there’s simply no way to make all those geeky features usable.
To be fair, Yahoo’s webmail has a pretty darn good search mechanism as well, although their “small business” product inexplicably omits the most useful search box from the UI - you have to click to the search page. And Yahoo’s support is notoriously brain dead. MSN’s email is the prettiest, but it’s just not as usable as the others. Fastmail is the most flexible but the geekiest. OWA and gmail share honors for having the most technically advanced front ends (lots of fancy JavaScript). It adds to a better experience (especially for gmail), but it’s more frosting than cake.
There are other cool features of gmail, too. The stars are probably the next coolest thing, but you have to try it out for yourself at some point. Now come on gmail - get out of beta and let me pay to use my own domain name!
gmail is a great example of a UI that is improved by taking a common operation from existing systems - archiving - and elevating that operation to a first class construct. When building UIs, it’s important not to get seduced by the geekiness of implementation details (”you can use any folder as an archive”), and it can be very beneficial to build UIs that compel the user to work a certain way. Users are compelled by the UI elements that are in their face - the first class constructs. Choose them wisely.