Decisions All the Way Down

A common complaint about Apple is that they think they know what’s best. Here’s a (poorly titled) example:

The general philosophy of [OS X Lion] seems to be “We know better”. A computer company that thinks it knows better than me how I should use my own computer?

This common complaint frustrates me, because it evinces a lack of understanding of what software is. Developing software is making decisions for the user. When you buy software you are paying the developer not only for their execution of their decisions (how well it works), but for the decisions themselves.

“Well,” you say, “they should at least give me some preferences.” Okay, what preferences should they have? Oops, looks like those arrogant bastards are making decisions for you again.

“I’ll code my own solution so I can decide what my preferences are,” you say. But dammit, those jerks have gone and decided what functions to include in the language you’re using to code! The nerve. Looks like you’ll have to move down to a lower-level language to code the functions that Apple so condescendingly excluded.

But what’s this? The Apple disease has spread! You’re now working in Assembly and the designers of that language have imposed all sorts of requirements on code structure and format! This is worse than you thought.

Turns out, it’s decisions all the way down.

You’re not going to solve this problem by using Windows, or Linux, or any other OS. They all make decisions. It may take longer for you to reach the edge of the software where those decisions become clear, but it’s there, and no matter the OS one day you’ll reach that far off horizon and possibly wish they had decided something different. And in the meantime how much time will you have wasted making decisions that could have been made for you?

I don’t begrudge anyone their right to complain about software decisions. I just wish they would frame it correctly. You’re not mad that Apple, or Microsoft, or whoever, is making decisions for you. You’re mad that they aren’t the decisions you would make.

It’s not possible to make software without “making decisions for the user”. That’s what software is. The success of software is largely dependent on the quality of those decisions. I choose Apple products because, at least right now, they make better decisions than anyone else.