I interested an interesting trend these days. It seems that the evolution of the user interface came about a full circle and we are more or less at the starting point again. But on our journey we learned a thing or two about usability and so our revised UI design is somewhat more polished.
The early interfaces were mostly CLI – you were presented with a minimalistic prompt and had to type in a command to do anything:
This type of interface is not very user friendly, and the barrier of entry for new users is high. For one, you have to remember set of commands. If you make
a typo the UI punishes you with the dreaded “command not found” response. It is a bit intimidating for the beginners.
This is where our traditional GUI with buttons, windows, sliders, check boxes and visual boxes improved user experience. However it also has a downside. GUI dumbs down the user experience. If the UI designer did not create a button for it, then there is no easy way to do it. The design is crucial, and things like button and menu layout affect user experience. If you hide some functionality under nested sub-menus and give it a cryptic name, most users will never find it. So GUI is not a perfect interface. Not by a long shot. But it is much more intuitive than CLI.
Now we are seeing a new form of UI coming along. I call it search based UI:
Launchy and Quicksilver are good examples of this. On one hand they are your command line interface. You interact with them not by clicking and dragging, but by typing. However they are more user accessible than your good old CLI. They are completely intuitive, allowing you to start applications and open documents by simply typing few characters of their name, or their purpose (for example the word browser may pull up Firefox and etc). They are context sensitive, so the user is never faced with the unfriendly “command not found”. You don’t have to memorize commands, and the visual prompts help you to adjust the command as you type it.
It is still a type of GUI, but an evolved one – one that tries to work with the user, and guess his needs rather than present him with a rigid structure that has to be learned. I think that search based program/document launchers combined with limited subset traditional GUI elements will be the UI of the future.
I suspect that working with your computer will become more and more like browsing the web. Right now with the advent of AJAX the web experience is getting closer and closer to the desktop experience. I think the two will continue getting closer, until they merge into a single, seamless user interface. Browsing the files on your hard drive will be no different than browsing the web. Using a local application will be no different than using a rich online application. In fact they might become one and the same.
Thing Google Gears on speed – local caching of your data from online applications, and remote caching of the data edited by the local apps. All bound together by a simple search box which can parse through both your local and remote data, and start both local and online applications. Users no longer will need to learn the interface – they will just start typing what they want to do, and adjust their query according to the visual suggestions till they get what they want. They will no longer need to look for saved documents because they will just need to search for them, and they will pop up. They will no longer need to worry about saving files, because applications will simply save it somewhere (be it local drive, or online storage), then cache and index it where needed. Next time you want it, you just need to search for it.
This is my prediction for the future. Mac is already on track here with their Quicksilver. Microsoft is not far behind – or at least they seem to have the right idea with their WinFS. Yes, that fabled file system is still vaporware but it seems like a step in the right direction if we want to have a search based UI.
What sometimes worries me is that we don’t see much of that push forward in the Linux world. Sure there is Beagle and bunch of Quicksilver and Google Desktop clones. There seem to also be various projects for a database driven filesystem such as Fuse, RelFS and etc. But I’m sometimes worried that we are playing catchup to the big proprietary OS makers. And I don’t like that.
Feel free to disagree with any of this here, and prove me wrong.
It’s funny but I haven’t read Jeff Artwood’s article about online applications becoming faster and more user friendly than desktop applications before I wrote this post. What he talks about is very relevant to my point here. He describes how his wife opted to use Google Maps instead of MS Streets and Tips because of usability. Jeff points out that allot of UI innovation right now is happening on the web right now – and that Desktop apps should try to catch up.
This is essentially the same point I was trying to get across here. Online applications try to ape desktop apps with Ajax, while desktop apps learn about simplicity and minimalism from the web. Soon the experience will be seamless – and most of us won’t even notice or care if an application is running in the browser, or locally. :P
[tags]user interface, ui, gui, quicksilver, launchy, beagle, relfs, fuse, winfs, search based ui[/tags]