Let's have a look at Unity Heads-Up Display (HUD). By now, I'm sure most readers will have seen the screenshot of HUD and the old Machintosh, and some may have read or heard the expression WIMP for the first time. And you've most likely read at least one article under headings such as Ubuntu replaces menus with HUD. Of course, this is only the media being paid-per-click. It isn't true. In fact, it is the opposite of the truth. In all the official statements, it has been made explicit that the HUD is an addition to the menus and not a replacement. The news media, of course, will never let facts get in the way.
I confess, I sometimes eat at McDonald's, which is a fast-food chain. Whenever I do, I'm extremely hungry. Otherwise, I would be willing to wait a little longer for some proper food. I don't know if this is international, but at least in Norway, they have this weird concept of menus, which is what other people call meals. They don't mean a list of things you can order. They mean a collection of actual food. The same thing happens every single time I walk in the doors of McDonalds. I walk with quick steps directly towards the counter, and I tell whomever's behind the counter that I want a Big Mac, a chocolate shake and fries. The response is always the same; do I want a menu? I then tell them I don't want a menu, I want a Big Mac, a chokolate shake and fries. At this point, one of two things happens. Either the energetic McDonald's employee accepts that I have made my decision, or they begin to explain to me what a menu means.
Computers and McDonald's have taught me to hate menus. When I use computers, I never use the menus to discover the features of the program. I know what I want the computer to do, and if I don't, then I still won't look to the menus to discover things I can do. Because menus present only one or two words anyway. They don't explain what things do. The only reason for using them, is to trigger an action.
Up until now, there's been three omnipresent ways of performing an action; menus, toolbar buttons and keyboard shortcuts. Recently we've also gotten gestures, but I'll overlook them in this context. In a computer program, they are just different representations of the same thing. There's limited space on the screen, so you can't have too many buttons. Menus are more efficient, but still wastes a lot of space. Moreover, they're usually filled with items you never use. They're there to serve other users needs, or even just as fill-up or decoration! Many applications actually have a menubar for the sole purpose of looking more similar to other applications. They'll have a menu structure like File > Exit and Help > About and nothing more. Did I mention I hate menus?
So we're left with the few actions you do want to perform, and that's when keyboard shortcuts come into play. I love those. But they have issues of their own. You only have a given number of available shortcuts and they'll only make sense in certain languages. Let's have a look at some keyboard shortcuts in two of the applications I use most frequently; Firefox and Thunderbird.
Increase indentation ctrl+] (How do you even do that?)
Search again ctrl+G
Saved files ctrl+J
Bookmark this page ctrl+D
Show all bookmarks shift+ctrl+O
Ok. You get my point. They make absolutely no sense, even when you understand how they're intended to be used. They're also very difficult to remember since they mean completely different things in different applications. And if you don't remember, then you have to open the menus and find the menu item, which completely defeats the purpose.
This is what HUD fixes. Nothing more, and nothing less. Instead of pressing shift and ctrl with your left hand and Y with the other (simultaneously, just to make it more fun for new users), you tap (press and release) the Alt key and then you begin to write "downloads". As you type, a list of actions are displayed on your screen. You can then either type until the correct option is displayed or select one from the list. Now, this point is important; the system learns from your choices. The actions you never perform get lowered priority and the actions you perform often get high priority.
So, after a while, you'll very quickly be able to perform an action. For instance, I use the downloads window in Firefox all the time, so it will be sufficient to use Alt D, because nothing else I do frequently in Firefox begins with D. Actually, I wouldn't use Alt D, because I'm Norwegian and in my language, it's called "nedlastinger". So to me, it would be Alt N. This makes things much more user friendly, because the system adapts to your wishes and to your language. And if you do want to use a less common action, then just add a few more characters, and you'll get it. For instance, if I press alt Ny, then I will be presented with "Ny fane" -- which means "new tab". If I use alt Nyt, then I can access "Nyttige lenker" (useful links)
At this point, it is quite reasonable for an experienced user to ask if this won't make it more difficult to learn how to use a program, since people won't be able to tell you what keyboard shortcuts to use. But that's not the case for several reasons. First of all, the old keyboard shortcuts continue to work exactly as before. Secondly, HUD will not only search for menu items you're trying to access so that you have to remember whether the application calls it "Quit" or "Exit". It will also search through the applications help, such as tool tips. You should be able to use synonyms. For instance, when I play the electric guitar, I sometimes call it "fuzz" and other times call it "distortion". I never remember what different applications call it. But it is _my_ word that counts, isn't it? Of course it is. HUD -- at least potentially -- enables that.
Another reason why it won't make it difficult to learn, is that the system learns what you want, instead of forcing you to learn what the system expects. Humans should not be forced to adapt to machines. It is the machines who should adapt to humans. I believe that it is impossible to open the downloaded files window without thinking about downloaded files. So you can tell HUD "fil" or "dow" and it will present you with the appropriate actions. It is completely impossible to forget -- literally. (And I always use 'literally' in the literal sense) Most likely, you'll be able to just press enter. Do you still remember the shortcut to open that dialog that I told you before? It certainly is easier to remember "downloads" or "files" than it is to remember "ctrl+shift+Y". That is indisputable.
A bonus when using HUD is that you can access dynamic things by name. For instance when I'm on my desktop and I want to access the home directory on my laptop, I press alt and type "lap". That's because I have a Nautilus bookmark labeled "jo-erlend@laptop". If instead I enter "jo-erlend", then I'll get a list of shares for all my computers and nothing else. I can then just use the arrow keys to select the one I want. That's kinda cool, isn't it? And this should work in all applications that has a list of windows in a menu, such as GEdit has open documents, and others have recent or related documents.
Even if it'll take some time to connect voice control or EEG (control by thought) to HUD, it's still one of the best ideas in desktop computing I've seen in many years. Will it be good enough to be used by default in 12.04? I don't know. So far, it's quite buggy and the actions it presents are not relevant enough. Then it hasn't even been added to Ubuntu yet. It's only available in a PPA. There's still time, so that might change. From what I've seen, I think it should certainly be installed by default, but probably deactivated and with a configuration option in Control Center > User Interface so that it can be easily toggled. Without that option, it should not be included at all. But I would be very interested to read arguments against the HUD as an idea, considering it doesn't change the current behavior in any way, but only adds a new way of interacting with the computer.