Monday, April 14, 2008

Intelligence by default

One of the workhorses of GUI design is the radio button: a set of choices, of which you're allowed to pick exactly one. If you click on a choice that's not selected, the previously selected choice winks out and the new one lights up.

This device has been around for a long time, particularly in car radios (thence the name). The ones I remember as a kid were big honking things that made a satisfying clunk when you pushed them and mechanically wound the tuner dial to fairly near the station you wanted. Push another one and, sproing-chunk, the old one popped out and the dial moved again. Good for endless amusement.

As an aside, there doesn't seem to be much call for, say, an "exactly two" widget, though I do remember a Bruce Tognazzini article on how one might implement such a thing. "Exactly one" makes sense for a single-valued function, like the frequency of a radio tuner, and "pick all you like" makes sense in many contexts, but other restrictions are trickier. It's just as likely to be "if you pick A you can't pick B" or "pick up to N units worth".

Introducing a special widget for such cases would mean working out the expected behavior and making sure the user knows what to expect. For example, if it's "pick exactly two", which one goes away when you pick a new one? The top one? The oldest one?

Anyway, the useful thing about radio buttons in real radios is that you get to pick the stations yourself. This extends to a more general concept of "presets". Fiddle with the buttons and then store a the setup, retrievable at the push of a button. You can get back to that state whenever you want, without having to set everything up again, and you can use that state as a default baseline for further fiddling.

Presets go back at least to the development of the pipe organ and remain important in electronic music. It would be interesting to trace the history of the idea.

Working with an interface or web site that allows presets (or templates, or similar setting of defaults) is night-and-day more pleasant than working with the same interface without them. The benefit is partly from the programmability, but it doesn't matter so much whether I stored the settings or you did, so long as they're the right settings and I can get to them easily. It's not that an interface with presets seems smart, so much as one without them seeming dumb.

No comments: