Undo is, of course, the single most awesome advance in user interface ever. What makes it awesome is that it lets the user poke around in the UI fearlessly.
Big useful software has lots of commands. Even if you have made it safe to browse and play with the commands it can be hard to organize the commands so users can find them. The Mac’s menubar was big help, but it only works up to a certain scale. A monster program; like full featured word processor or spreadsheet just doesn’t fit. One of the problems with multi-button mice is that few users manage to discover how to browse and try the commands are hidden under various mouse buttons. Similarly one of the problems with floating toolbars is that few users manage to get around to finding, exposing, and then trying each of the tools. And of course it all gets worse when the behavior of the tools varies slightly depending on selection state, what’s selected, and how many things are selected.
There is a long history of attempting to look over the user’s shoulder and guess what he’s trying to do. The most infamous example is of course the Microsoft paperclip. UI is a bit like a game, the hundreds of available commands provide possible next moves in the game. Given the size of the space of possible moves it seems obvious that the software might be able to make helpful suggestions. In a sense the way that menu items are enabled/disabled depending on what’ selected is just that; at least it avoids the foolishly suggesting commands that aren’t available.
This video shows an interesting extension to some of these ideas. The UI this case does two things. First off it suggests commands based on what the user has selected. That’s not really different than enabling/disabling menus based on what’s selected. The reason it feels different is that the the UI is also taking a guess what, of all the possible operations, it thinks the user is most likely to be doing. It’s guesses aren’t particularly impressive, but it’s very suggestive.
There is a nice additional trick shown. As the users is browsing to decide what command to invoke the UI shows him previews of what the command’s effect will be. Preview like this is easy if you have a solid undo infrastructure, and enough computes.