Apr 15, 2005, 12:56am EDT
In addition, a user should never have to explicitly save or store work. The system should treat all produced or acquired data as sacred and make sure that it does not get lost, without user intervention.— Jef Raskin, The Humane Interface
I agree with the conclusion, that one should never lose data, but I’m not convinced that means that there should be no explicit saving. One example of never saving is humane gmail autosave, a greasemonkey script that saves your email as you compose a new message (in case of a browser crash or whatever). So auto saving is one way to not have the user explicity save.
But there are certain cases where explicit saves are useful. For example, a version control systems like SVN or CVS are nice because they save multiple copies of the same file. But maybe software should do that automatically like Netapp storage systems that take snapshots of the filesystem periodically.
In fact, that seems to be more inline with what Raskin meant:
[U]niversal, unlimited-level undo and redo should be inherent to all systems; this is so fundamental that a dedicated key should be devoted to this pair of functions…
Of course, that’s hard to implement, so we settle for application level undo/redo and saving/loading from multiple files to emulate undo over application sessions.
For better or worse, this is one of the reasons I have users explicitly ‘save’ in webnote. It lets the user revert to previous notes across sessions. I admit, it’s not the ideal solution. Perhaps I should allow explicit saving to create snapshots while automatically saving the most current version. But then things get a bit complicated with multiple users . . .