I hate arrogant software!

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

Most people will be familiar with dialogues that prompt you with something like “Are you sure you want to be that stupid?” They rarely put it so bluntly, but that is effectively what they are asking. I have no problem with such prompts, because either I am about to do something stupid and its good to be told so, or I know better than the software and so I gladly accept full responsibilities for the resulting action.

There is a class of dialogue though that really riles me: the sort that says “You cannot do that”. Two examples are shown below, by my two “favourite” companies: Apple and Microsoft:

You can't do that dialogue

You can't do that dialogue

In both cases, not only is a piece of software arrogantly telling me what I can and can’t do, both are wrong. I can eject my computer from the dock: I press the eject button. I can eject my CD: I again can press the eject button, or shove a piece of wire on the hole next to it to force it open. And being a bloody-minded sort of person, I am highly likely to do both when faced with such a dialogue. In both cases, the message could be put across both more factually accurately, and far less aggressively, by asking me, am I sure I want to be stupid? Ejecting the CD could leave me with a corrupt sound file. Ejecting the laptop from the dock could leave me with a corrupted backup on the external harddisk that won’t unmount. This leaves me to take responsibility if things go wrong, without annoying me.

So next time you add a dialogue to your code, please stop and think about your language use. Don’t be arrogant like Apple and Microsoft, just call me stupid instead 🙂