Please forgive any copyright issues.
What Longhorn will (actually) be about (Technology)
Thu Nov 20th, 2003 at 07:35:01 AM CST
Believe it or not, Microsoft Longhorn will be both powerful and easy to use.
This article will tell you why.
(A warning in advance: stop reading if you are looking for leaked information from Redmond, this article is about reasoning from multiple public sources. I've been researching user interface design for a while and listening to bits of info about Longhorn from here and there, and the results of my mumbling is this 'what if' scenario. My intention is to raise the expectations of software developers by telling a good story about what could be done with current knowledge.)
Ease of use means making the computer work the way PEOPLE think, not forcing people to work the way COMPUTERS think.
Linux geeks and other developers, who have been conditioned to think like the computer because of the work they do, have the mistaken notion that advanced computer user means a user who has learned to force the natural human way of doing things into the artificial machine way a computer does things. Any interface that doesn't force this paradigm is "dumbed down."
Microsoft knows better than that. They have some great scientists in Human Computer Interaction (HCI), and they are listening to what they have to say. There will be no "Clippy" errors in Longhorn; even if there are, they are capable of mindwashing users to believe that any point where Windows breaks the natural way of working is actually a feature (see Defrag Tool) or their own fault (see Reboot To Fix). But Windows is already quite easy to use for end users, and it will only go better. And MS is listening to developers, too. Didn't you hear that .Net soon will have a command line interface?
Articles stating that Longhorn will be radically diferent provide a clue. People in IT don't believe this proclamation mainly because the technology will be nearly the same, based on the already available .NET and XML. But Longhorn will not be about technology but about it's use. Also it will be the biggest threat of lock-in integration since Internet Explorer, according to their stated intentions and considering previous MS market practices ("Microsoft doesn't think computer users should have to use one program to read and write a word-processing file, another to use a spreadsheet, and a third to correspond via e-mail. Rather, the company thinks, a single program should handle it all"). There will be no applications, just data objects with relevant commands attached. Object-orientation is easier to grasp for a final user than dataflow, and increasing it has been a constant trend in MS applications in the past.
These (and other) HCI experts are developing practical-oriented theories as Cognitive Dimensions and the Attentional User Interface, and MS is basing the Longhorn desktop and development tools on them. These theories apply to both user interface and programming languages design. What is the "viscosity" (effort to perform a single change) of your programming environment, and what are the tradeoffs if you fix it? Are there "hidden dependencies"? Does it lead to "premature commitment" (forced to take decisions before having enough information)? Scientists ask this questions and try to find an answer. And there is place to describe already existing tools with this new vocabulary: did you know that Python's mandatory indentation is a form of "secondary notation" in this theory, and why it is a Good Thing?
HCI is a good tool to find out better ways to do a same thing. As any science must do, they provide insightful concepts and simple techniques to handle new or less known expert domains. I assert that HCI theories work when trying to make powerful tasks easier: I've seen some of their principles in action, and the tools made based on them are quite impressive (just try the linked tools! - but keep in mind that they are research, not commercial apps). Oh, and I've heard that Apple are using these principles, too.
That ugly vertical bar in Longhorn leaked screenshots probably will not be a simple widget panel bar as Gnome's and KDE's, but one of the multiple endpoints of the Notification Center. Its inner working is described in the paper Models of Attention in Computing and Communication: From Principles to Applications.
Longhorn will be designed around features like distributing the notification of alerts (which is like using Jabber to transmit error messages to different applications and devices, but with learning skills on where and when publish them) and showing information related to what you are doing (similar to what the Dashboard and Gnome Storage are doing. No wonder that developers nearer to the Microsoft philosophy are having these ideas for their free projects).
Dashboard is an engine for retrieving information related to the current context. The engine is fed with content published by other applications in form of XML context bits. It seems that Longhorn will rely on a similar mechanism to put meta information (and related commands) everywhere in the user interface (see the "metadata level of detail is a user option". If I were to create a GUI based on collected metadata I would use it that way). What does it mean to users? Well, such interface is no longer "dumbed down": you can adapt it, coarse or fine grained, precisely to the level of complexity you want. And the system will remember your preferences and show alerts through your mostly used "widgets" and "gadgets" (this means your PDA and phone, too).
Gnome Storage is a search tool that uses this metadata to perform natural language queries for past documents and contexts. It is intended to mainly reduce the need for a hierarchical folder explorer, which is seen by many (and myself) as an inconvenience for not system-maintenance related tasks. Navigating through the filesystem is not well adapted to human mind restrictions. Questions like "in which carpet did I put that document, Spreadsheet or Financials?" and "what was it called?" are difficult to answer with a point'n'click interface of unfolding trees. Power users somehow alleviate this problems by using advanced search tools, but the learning curve is steep and most users won't go through it. A database-like system with an esay syntax will be better suited to them.
Microsoft has promised to include this kind of tools in their system; now they are taking time to shape them into something usable. There is no reason why Open Source developers shouldn't use those same theories in their work. The point is to forget the bad habits we learned through coding, because the toolkits we use are mainly based on the Xerox and Apple research from thirty years ago. There is no need to throw away all your old code; it's just a matter of paying attention to advice like the Gnome Human Interface Guidelines if you want your app not to be in the Interface Hall of Shame. This make a difference.