Sometimes when his lieutenants are talking, I close my eyes and hear Bill Gates -- his cadence, his repetition of favorite
words. One of those favorite words is "great," as in "great platform for connected apps." Another, delivered with no apparent
sense of irony, is "rich," as in "rich Internet apps." We absorb these words so easily that we can lose sight of the agendas
behind them.
A rich application implies a contrasting poor alternative. And that, of course, has been a problem for Microsoft. From its
perspective, the balance of power between the haves and the have-nots has been out of whack for a decade. The rich (and fat)
GUI interface was eclipsed by an impoverished (and thin) third-world interloper, the browser. That was a necessary trade-off,
we tell ourselves, and now it's time for the pendulum to swing back. True enough. We gave up lots of good stuff when we standardized
on the browser, and one way or another, we're going to get that stuff back. And yet, sometimes I can't help asking: How rich,
really, is that rich GUI we nostalgically crave?
I don't want to pick on Windows, because Linux's GNOME and Apple's Aqua share similar problems, but what got me thinking about
this was a long session with the various Windows 2003 Server management tools. Most of my interaction with the software was
dominated by two user-interface idioms: trees and tabs. The trees are, of course, the ubiquitous tree controls that manage
hierarchies of servers, users, registry keys, and every other kind of object. The tabs are dialog boxes. These are both good
and useful constructs, but as a strategy for managing complexity, they haven't evolved. Meanwhile, the Windows server products
have gotten much more complex. Adding more snap-ins to the MMC (Microsoft Management Console), thus multiplying the trees
and tabs, can't be the only way forward.
While it's true that the browser needs an infusion of GUI richness, the reverse is also true. The GUI needs to learn a thing
or two from the browser. Consider tabbed dialog boxes. When tabs appear in multiple rows, they create a problem that Jeff
Johnson, author of the wonderful book GUI Bloopers, calls "dancing tabs." Clicking on a tab not in the front row disconcertingly reorders the rows. On a Web page controlled
by rows of links, that doesn't happen.
Of course, the rich GUI needn't restrict itself to the merely utilitarian. Flash developer Samuel Wan has demonstrated an
intriguing fisheye effect that could be used to manage sets of choices without requiring the user to scroll or tab. When we eschew the utilitarian
Web-style interface in favor of something richer, let's make sure it's really valuable.
In one crucial way, the rich GUI is tragically disadvantaged with respect to its poor browser cousin. Trying to sort out a
permissions problem with IIS 6, I clicked a Help button and landed on a Web page. The page could only describe the tree-navigation
procedure required to find the tabbed dialog box where I could address the problem. It could not link to that dialog box.
This is nuts when you stop and think about it. Documentation of GUI software needs pages of screenshots and text to describe
procedures that, on the Web, are encapsulated in links that can be published, bookmarked, and e-mailed. A GUI that doesn't
embrace linking can never be truly rich.