RDN Directions
UI Confusion
We have a multipolar world where each application stakes out its own territory and visual identity.
We have a multipolar world where each application stakes
out its own territory and visual identity.
A few weeks ago I was using my Windows Vista computer -- engaged in my favorite pastime of "where in the heck did they move that command to?" -- when it occurred to me what was bedeviling the post-Windows XP wave of products from Microsoft.
Everyone in Redmond seems to agree that menus and toolbars need to be replaced with something newer and cooler, but they appear to never have agreed on what they should replace them with. Drink the full-strength version of the Microsoft Kool-Aid and you have to learn the subtle (and sometimes glaring) differences between the Vista file explorer, Internet Explorer (IE) 7, Windows Media Player 11, Office 2007 and even the Zune client software -- each of which offers its own post-modern view of what a good user interface looks like.
What particularly interests me about these examples is that they aren't just apps -- like it or not, they're models that many developers, particularly those in corporate IT development, turn to when deciding what their application should look like. And the fact is, those developers are now receiving far less guidance than in years past. It's time to bring back the Windows Style Guidelines and give developers the tools to help follow them.
Following the Leaders
In the 1990s, it was easy for a corporate developer, or even a commercial ISV, to see what their applications should look like. The basic outline was provided by Windows, which provided the essential structure of how windows and menus behave, and defined the standard set of menus and the items they contain. The Office suite built on top of Windows provided a template for how a more full-featured application should look, feel and behave.
Microsoft's developer tools built on the user interface foundation of Windows and Office. By default, both Visual Basic and Visual C++ created applications that looked perfectly at home next to Windows and Office. In fact, making applications that looked like Office was explicitly part of the marketing message behind Visual C++ and a major reason for the success of the Microsoft Foundation Classes (MFC).
With Visual C++ and MFC a developer could click a few buttons and have a skeleton application that supported the multiple document interface (MDI), had toolbars that could be rearranged by the user and included a Print Preview feature that looked very much like that in Office. As a developer, the tools led you by the hand. You really had to go out of your way to create a non-standard-looking application.
Breaking the Mold
Things are very different today. Instead of a bipolar world of Windows and Office, we have a multipolar world where each application stakes out its own territory and visual identity. Not only is Office 2007 radically different from anything in Windows, Windows Vista isn't even internally consistent with itself.
In Vista, IE and Windows Media Player both use a tabbed interface, but their tabs look and behave differently. Some of the apps use back and forward buttons; others don't. The help button in the Vista file explorer and Zune is the same -- a question mark -- but the appearance is different and it's located in a different part of the window. The help button is missing completely from Windows Media Player and IE. Hitting the red X button in IE means "stop loading the page," but in Outlook it means "delete this item."
Things aren't any easier for developers. Gone are the days of MFC and Visual Basic 6, which delivered apps that, out-of-the-box and with no customization from the developer, fit right in to the Windows system. Microsoft now promotes the Windows Presentation Foundation (WPF), which enables virtually any kind of user interface without encouraging any particular one.
I should mention that MFC, although much less-widely used than it once was, is continuing to try to help developers build "standard" interfaces: An update to MFC will be part of a Visual C++ 2008 Feature Pack and will help developers build applications that look like Office 2007.
Fractured Interface
How did we get here? In a word: the Web. The Web is the ultimate fractured interface. Despite the common HTML underpinnings, each site is a highly customized universe of its own making -- any item on the page could be a clickable part of the interface. If Disney wants to make its OK buttons look like Mickey Mouse, it can. But a desktop operating system should be more than just a collection of applications, each created by their own graphic designer and with their own user interface. It should offer a compelling and consistent experience and it should give developers the tools to take part in that experience.
For the next versions of Windows and Visual Studio, my hope is that Microsoft will reconcile their post-modern UIs, and that once again the default applications created by Visual Studio will just fit right into that world.
About the Author
Greg DeMichillie analyzes and writes about Microsoft's development platform and tools for Directions on Microsoft, a research firm dedicated to tracking Microsoft. He was previously the group program manager at Microsoft responsible for the overall design and feature set for Visual C# and C++. A founding member of the C# language team, DeMichillie was a key contributor to the initial design and development of .NET.