Auto-save for recovery purposes is one thing, but when completely replacing the 'Commit when I tell you' to 'Save everything in real time' can have unintended consequences.
Auto-save for recovery purposes is one thing, but when completely replacing the 'Commit when I tell you' to 'Save everything in real time' can have unintended consequences.
My favorite UI would be a mixture of Apple's Lion logic and Google wave: Give me a prominent time slider, give me snapshots each time I hit the save button (which are basically just special markings on the slider) and let me use the slider to easily revert to any state. It gets more complicated with multiple users who commit asynchronously, which is something I will try to solve in an upcoming project of mine.
A good example of this principle IMO is Apple Pages and Numbers. They are both succeeding at being powerful/expressive when you need it (Cmd-alt-i) and easy for the other times. It's just a shame that they haven't been updated and still lack some important features like plugins and bibliography.
In fact, there is no "commit". You just do things. And that's the way it should be.
After getting used to that, it's pretty annoying to use Windows, which keeps asking you whether you want to cancel or apply things in every possible situation. Sometimes it even defaults to reverting your changes if you just close the dialog box (like when changing the desktop background image in Win8, for example).