Dialog Button Text

I was reading p.g.o today, and came across this little snippet from Murray Cumming:

Show how much better [Save] is than [Yes] in a “Do you want to save changes?” dialog, with a “Really Discard Changes?” dialog as the punchline. This emphasizes our attention to detail, and to the user experience, so they don’t need to pay attention.

I've given this a bit of thought on various occasions over the past 8 months or so, and I can't really come up with a conclusion as to which I like better.

I think, for users unfamiliar with a new piece of software, using descriptive titles ("Save" instead of "Yes" in the above example), is good: it helps prevent possible data loss, and removes any amount of confusion. It also helps in the case where multiple applications have different conventions: perhaps one says "do you want to save changes?" and another says "really discard changes?", and you haven't used either of them enough to quickly remember which is which. Having a "Save" button in the former dialog, and a "Discard" button in the latter quickly disambiguates and avoids confusion. (Although, you could make the case here that app developers shouldn't use the negative form ever, and should always use the more positive, data-saving "do you want to save changes?" form.)

However, for the advanced user with a good memory, this is a pain in the ass. I know which apps ask what on close. For some applications, I get into the habit of using the keyboard to press the buttons. When I want to quit the app and ditch what I'm doing, I hit ctrl+q, which then brings up the "save changes?" dialog, where I press 'n'. Or if I do want to save, I hit 'y'.

Now, maybe that's not such a big deal. I guess it's ok to remember to hit 's' or 'c' instead.

But the situation changes when you bring in a bunch of other dialogs. Perhaps I'm using a file manager. If we had the "old" way, I'd have 'y' for affirmative actions ("yes, delete that file", "yes, move that file"), and 'n' for negative actions. Now I have a bunch of different keys: 'd' for delete, 'r' for rename, 'm' for move, 's' for save. And it's not just the file manager: these dialogs with a bunch of different keyboard shortcuts are a pain in the ass. Not to mention that there are still "old-style" apps around that use 'y' and 'n'.

So I'm still on the fence. Designing for general usability seems to indicate that the new way is better, so that's what I'll follow in any apps I work on. But a small part of the advanced, keyboard-shortcut-loving user in me dies every time.