I think “Undo” is one of the best features we have in many desktop applications. I am not going to get into details of individual applications, but I used quite a bit of “Undo” in Visual Studio editor, Word, and more recently “System restore” on my Windows XP box. There are two reasons we need “Undo”, first we as human beings make mistakes all the time; secondly the application or system also makes mistakes from time to time. Real world is not perfect. By the same token in softare development world we usually use version control, i.e., we check in working code to repository every day (or a few days) so that we can roll back if we find the latest (and the greatest code) is not working.
Unfortunately in the real life there are no magic “Undo” buttons. For instances, if we get angry at people we know (I know I have been treated unfairly), the recepients can remember the incident for a long time. Human beings are not computers, the bad memory on human mind (or heart) are not easy to erase. It’s not that human beings are not forgiving (I know I am very forgiving :-), but forgiving does not mean forgetting. On the other hand, I think we can get smart on things, because we are smart than computers. Now that we know there is no magic “Undo” button, let’s think about it before demage is being done.