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:
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 🙂