A while back I waxed lyrical about the user interface ideas in Haystack, a personal information management tool being developed at MIT.
One of the things it does, and something which I think would make a huge difference to ease of use for novice computer users (that is, those who haven't already been inured to the inconsistencies of interface even within software applications) is that wherever an item appears in the interface, the same actions are available in the context menu. So, for example, when I right click on the name of a person as it appears in a list of email messages, I get the same options as when I'm in the address book view.
It's not a ground-breaking idea — consistency — and yet people seem intent on ignoring it. I suspect that inconsistent interfaces expose inconsistent code, and this suspicion is supported by the following comment from Michabelieveel Parker on his Symbolics XL1200 "Lisp Machine"
The Genera operating system is object-oriented to a degree that even the NeXTStation can't aspire. Everything on the screen is an active object; you can do a directory listing on the console, and each filename knows what it is and what you can do with it. Mouse over it and it hilights to let you know it's active. Left-click on it and you get a menu with options for edit, rename, delete, compile, etc. Any error message that gets printed out to the console will have active keywords that if you click on them will bring up the online manuals to the appropriate spot. You can bring up a dialog inline in the console, and after you finish with it it will remain in the scroll buffer like any other text. Imagine what an XML shell would be like, and you're starting to get the picture. Except that this type of behavior is consistent everywhere in the system, the editor, the help system, the browsers, the inspectors, everything.
I think that the McCLIM (an open source CLIM implementation) listener is an implementation of this same idea (perhaps it's part of the CLIM specification), so maybe I should put a bit of effort into getting McCLIM up and running.
There are other interesting aspects to the approach suggested. I am quite keen on the idea of this merging of the GUI and command line schools of interface design. I can type at a command line, and then manipulate the results directly.
Recent Comments