« The Web scalability myth | Main | I know, I'll use a framework »

The Uniform Interface

[warning: this is rant, essentially correct, but a rant nonetheless]

REST advocates (myself included) are big on uniform interfaces. Not just REST advocates though: SQL advocates, CVS/SVN advocates, TupleSpace advocates, Browser advocates, RDF advocates, Speech Act advocates, SOA two-pin advocates. I like to think that the lesson of the uniform interface was learned for the last time in the middleware and web industries in the flight from SOAP RPC-encoded to Doc/Lit. If you bet wrong on RPC-encoded a couple of years back, Doc/Lit is like having your cake and eating it - it's something much better and you get to avoid admitting you willfully ignored the RESTful option.

Now what about user interface design? Every software application I own has a bespoke interface. No doubt this has a lot to do with differentiating oneself in tough markets, and I do like variety and novelty, but come on. These apps are needlessly different. Mozilla mail is nothing like The Bat!, which is nothing like Outlook. Yet they are essentially identical tools in the same way cars are essentially identical tools. The difference between car-makers and software-makers is that if sofware-makers made cars, they'd think they were doing a bang-up job by putting the brake above your head. Strangely, car-makers have found saner ways to compete with each other and enthrall customers.

And yes, some tools need to reflect highly specialized domains, but even within such a domain, you'll regularly see Really Stupid Differentiation. The dirty secret is that these interfaces are there for behavioural lock-in, a complement to data-lock-in, something a vendor does to heighten what Shapiro and Varian call "switching costs". The other dirty secret is that as software technologists, we deliberately reflect how insanely complicated writing software can be in the applications. To you, it's just a damn button, what's all the fuss? To us, it's six-months, round the clock. Security is also like this - in a world obsessed with security, all the really good security technologies are lying idle because they're inconvenient on the users.

It's far, far easier for the developers to call the users stupid, or for the execs to fall victim to the Innovator's Dilemma. Think about folders and filesystems- it's the 21st Century and I'm still having the details of how my computer works forced down my throat every time I have to open a file or have to sort my mail. Why am I doing this, instead of the computer? After all, at the end of the day, there are are limited number of actions I perform on my data. I join some things together, read or write something, or maybe play something - often these amount to doing the same thing. While I've heard and read a variety of theories as to why we're stuck with god-awful user interfaces, I think the answer is simple: hardly any-one has the guts or imagination to make a simpler, uniform interface.

I hate learning new applications that are doing the same job as the old ones - that's such a timewaster. I only sort, sift and organize because I have to. I loath doing it. I probably have as much information across my computers right now as the Internet did twenty years ago.

I can't be really expected to manage all this data by myself, nor can you. Badly designed software applications are not helping.


October 26, 2003 03:52 PM

Comments

son of parnas
(October 31, 2003 04:06 PM #)

With a flat structure only, how do i treat related
things as a unit? If i want to delete my
apache installation or copy it somewhere i would need a unifying key of some kind. Is that
really different than a path? Having a good
search on a hierarchy is just fine. No need
to go flat in the file system.

Bill de hra
(November 1, 2003 04:07 PM #)

No, there's no need to go flat on a file system, but there is a need to hide away the details of the filesystem. If you want to copy or delete an apache install you can do that without caring about the underlying structure, as long as that install has a "file://" scheme name - copy and delete being uniform HTTP actions ;)

Trackback Pings

TrackBack URL for this entry:
http://www.dehora.net/mt/mt-tb.cgi/1108

Listed below are links to weblogs that reference The Uniform Interface:

» U-UI from Raw
"...if sofware-makers made cars, they'd think they were doing bang-up job by putting the brake above your head" Bill... [Read More]

Tracked on October 27, 2003 09:19 AM

» Why aren't user interfaces more like cars ... from Lorcan Dempsey - Weblog
Now what about user interface design? Every software application I own has a bespoke interface. No doubt this has a lot to do with differentiating oneself in tough markets, and I do like variety and novelty, but come on.... [Read More]

Tracked on October 29, 2003 10:56 PM