Friday, April 16, 2010

You Know You've Made a Good Decision When...

You all know I'm not the biggest fan of Apple. But I had to give them some props while trying to figure out some Audacity behavior today. Audacity has some bugs and weird behavior with closing windows on Windows and Linux (Bug 151, if this sort of thing interests you at all). One problem is that it's unclear what should happen, in a multi-window application, when you use an internal program command to close the last window. You might quit the program (this is what Firefox does, for example). Or you might clear out the window so the user can start a new document (like at least some versions of Microsoft Office).

On Mac it's perfectly obvious what should happen when you close the last window. The program stays open and active, just with no windows. It retains control of the menu bar, from which you can start a now document. An application with no open windows is perfectly natural on the Mac. Some programs even start with no windows open (like XCode with the splash screen disabled). Apple's decision to conceptually separate the concepts of windows and applications has stood the test of time. Other platforms have seen the rise and fall of the MDI. On Windows the taskbar once listed open windows. With Office 2000 you sometimes had one entry for the application plus one for each document. Then windows from the same program might be combined. And now, in Windows 7, they're always combined, with the additional change that some tabbed programs treat their tabs sort of like windows (I dislike this change a lot).

The mark of Apple's great design is that it left no other decisions to be made. It hasn't changed in years, while programmers on Windows and for X11 have come up with lots of different solutions and continue to do so, never satisfied. Windows and X11 do not give programmers what they need to have a nice, clean solution, so we cycle through various different sub-optimal solutions. We have to make tricky decisions over and over again.

Why do I mention this? Because of how it contrasts with Apple's position on the iPhone development ecosystem. Apple decided in the beginning that their app store was the only place you could legally get iPhone apps. This has left them an infinite number of other decisions to be made. Every time someone writes an iPhone app Apple has to decide whether it wants to sell that app or ban it.

Now that's a hard decision, and I don't envy Apple in having to make it. Selling something is a pretty strong mark of endorsement. And refusing to allow it on a device is a very strong mark of disapproval. There will inevitably be apps where Apple should logically fall somewhere in between, but Apple has forced itself to make this tough decision every time. I imagine myself in this position. If I opened a software store I would not carry "hot babe picture collection" apps that mostly serve to titillate men and objectify women. But if I created a computer or phone I wouldn't ban them from it. Free speech and that. In an independent store I might consider carrying porn apps that I thought were basically egalitarian — according to True Porn Clerk Stories, which is apparently no longer available on the Web, gay porn tends to be much better in this regard than straight porn. At the very least I'd carry apps full of politics that could be described as radical and language that could be described as obscene. But if my store was officially associated with my device I might take a more guarded stance to avoid alienating customers of the device.

Apple wants to sell apps, so it carried lots of dumb softcore porn apps for a while, and they sold in great quantities. Then it threw down the banhammer, unfortunately citing obscenity. It wanted to avoid alienating customers, so it banned political apps, but it will back down if it doesn't want to appear an onerous censor.

If only they had decided on an open development ecosystem with multiple software sources in the first place. They could directly sell just the apps that reflected well on them, and wouldn't have to ban anything. Their constant equivocation on issues of app availability and censorship is a reflection of their initial mistake.

No comments: