How many decisions do we make just because everyone has always done it that way? You write a desktop application, and you add a File menu, and that File menu has a menu item labeled "Save," and you bind Control-S to that "Save" menu item, right? Of course, we've always done it that way!
Why?
Control-S, and "manual save," are so natural, we never stop to think about whether it really makes sense. But if you do stop and think about it, I think you'll agree with me that we really don't need it.
A world without Control-S is a different world. When you make a change to a document, the application stores that change immediately. The upside is that you never lose your work because of a crash or power failure. At first, it may seem like the downside is that you can't undo, but that's not the case. All modern desktop applications support multiple undos. The downside really is just that you may have to perform a lot of undos to get back to the place you want. So, in the end, it comes down to what is more important: never losing any work or having to do multiple undos to go back to a previous document state. I think it's time to rethink Control-S. A good alternative might be a "Save a Copy" menu item, which allows you to save a snap shot, or a "Create Checkpoint" menu item, which saves a named checkpoint somewhere, possibly even in the document itself.
For more reading, check out Michael Feathers article entitled I'm Tired Of Saving! Michael suggests that the IDEs used by software developers could not only do away with Control-S, but could also run test suites in the background and provide instant feedback about any problems in the code. This is a step beyond just checking the syntax in the background.
Posted by Doug Sauder at November 26, 2005 01:22 PM