Microcosmographia by William Van Hecke

What's a preference?

I got into a Twitter debate with Lukas Mathis, my favorite writer about software design. It is really hard to have a proper debate on Twitter! I thought I should lay out my thoughts, and my understanding of Lukas’s position, here.

Mac OS X Lion introduced a new type of trackpad scrolling that works the way iOS does: you drag as if the content is on a piece of paper and you are sliding it along. But you can still switch back to the old way, which I can barely believe anyone ever thought felt natural: you drag in the direction you want the viewport to move — even though the viewport doesn’t actually visibly move on the screen! And really, if you need to use the word “viewport” to describe how something works, it can’t be very natural!

Apple, too, felt strong enough about this basic interaction to solidify the consistency across platforms and change to content-scrolling on the Mac. In my case, it took about a day or two to get used to the new way. I even installed Scrollvetica, by my coworker Jim Correia, to make Snow Leopard work the same way. But I am of course an Apple fan and a software designer. So I was eager to switch to the future of scrolling and do things “right”.

But there are likely to be many confused and frustrated people out there, discovering that the viewport-scrolling they’ve gotten used to over the years has been reversed. Shouldn’t they be able to go back? (I do love the way Apple makes you turn off a setting labeled “Natural” in order to go back.)

And here is where Lukas and I disagree. He says that scrolling direction should not be a preference setting at all. We’ve figured out the right way of doing things, and we should encourage people to learn the new way. Just like how, for example, we make people learn to use Mission Control instead of Exposé.

In general, I agree that software creators should find the best way of doing something and ask people to learn, rather than finding several decent ways and asking people to decide. But there are two cases where I think preferences make sense:

One, dealing with technical differences in people’s setups. Sometimes you just have to work differently because you are interoperating with different types of servers, running on different hardware, and so on.

And two, dealing with abstracted input devices. Any input, other than something direct like a touch screen, has some sort of mapping going on. A keyboard layout is the way you want the keys to map to symbols on the screen. Keyboard shortcuts are how you want combinations of keys to map to commands. And scroll direction is how you want trackpad drags to map to moving content. These mappings are to some degree arbitrary, and people build up their own understanding of each mapping over time. The more time they have spent, the more painful the eventual change is going to be.

In the case of most changes, like onscreen controls moving or Mission Control replacing Exposé, people can see the change and adjust their interaction accordingly. But having a fundamental input change is frustrating; there is no change to notice until you have already made the mistake. The way you give input feels more personal, because it’s about how the computer reacts to you, not just about how the computer behaves. When something goes wrong, it seems like the computer thinks it’s your fault.

Of course, scrolling direction is easier to relearn than a keyboard layout. But if you are keen on taking advantage of Lion improvements today, I don’t think you should be required to go through that input frustration today. Encouraged, yeah. But not required.