Wednesday, November 12, 2003

Telirati Newsletter #22

The decadence of the desktop metaphor, and the lack of a repalcement gestalt, still draws too little attention. The phone UI is an example of the cost of ignoring this deficiency. Phones continue to lack a consistent, easy, and powerful user interface, which is one big reason why all the features of switches and networks don't get accessed.

Ironically, it will be trivialities like ring-back tones and "video ringtones" that bring people to look at call state and how it is presented at the handset. Hopefully something more useful than annoying MIDI melodies will come of it.

Newsletter #22: Everything you know about user interface is wrong

Software user interfaces are about to change, a lot, and for the better. This change represents the next stage in the evolution of the desktop metaphor, and it opens the door to evolving the desktop metaphor to encompass a hypertext world where most documents will never be printed on paper.

This change centers on Dynamic HTML or DHTML. In DHTML-based user interfaces, hypertext documents form the outer layer of the user interface experience. Instead of the current limited types of interactivity, where forms and simple scripts scarcely extend the Web user interface experience beyond basic hypertext interaction, future interaction and richness of presentation will be more like what you get in Windows applications like Office. Direct manipulation, complex typography and graphics, context-sensitive commands, color, animation, and multimedia will be the hallmarks of good Web interfaces.

Stylistically, this change means a merging of user interface with the way information is presented. Technologically, this means that merging programs with hypertext is no longer limited to the awkward embedding of something obviously a program, and obviously designed by a programmer, inside of a rectangular boundary, inside something obviously not a program, and obviously not designed by a programmer.

Dynamic documents have been possible for some years. Microsoft’s Office suite long had a programmer’s interface that enables the minute manipulation of word processing documents, spreadsheets, and other documents editable through the suite of Office applications. If you had wanted to, you could have implemented an entire active, dynamic user interface by directly manipulating items in an Office document. Click on a spreadsheet cell, for example, and run any arbitrary piece of code. This code, activated by interaction with an element of a document could create, modify, or delete other elements of the same document. There has never been any a priori reason to confine the tools for manipulating documents to dialog boxes and the peripheral toolbars and menus.

There are other examples of entire user interface systems based on a display language behind which programs operate: OpenStep, the NeXT user interface environment, uses Display Postscript for purposes roughly equivalent to DHTML in an architecture that is broadly similar to DHTML-based user interface systems.

So why are Dynamic HTML-based user interfaces more interesting than these previous attempts at luring us into a world of active documents? DHTML is more interesting because HTML is successful and pervasive to an extent far beyond that of previous tries at hypertext. Further, it looks as if document formats are converging on XML, which provides a meta-level framework for document formats based on HTML-style tags. This is leading to a world where Web browsers will be universal document viewers, and where document creation applications will shake out to the number actually needed in order to provide specialized capabilities.

This huge success of a hypertext Web is driving other developments in software. Where software once came in boxes you bought at the store and was installed, software increasingly appears as needed, is updated without user intervention, and is paid for through a business model linked to presenting some type of content. Now this new species of software could be created in the image of the previous generation of software and simply use the Web as a distribution mechanism. But that is unlikely to be the end result of the influence of the Web on software. Instead, software will have to become more like Web content.

At first, it was thought that Web content would become more like desktop software, where the anarchic structure and interface of web pages would be shaped into an equivalent of the tidy, gray toolbar and dialog box world of desktop productivity software. It didn’t happen that way. Web sites kept their unique navigation tools. Users didn’t mind. None of the interactions that had migrated from toolbars into Web pages migrated back into toolbars as the Web matured. Instead the interaction on web pages has become steadily richer.

So if the Web’s HTML hypertext outer layer and the future of software are inextricably bound, where does this leave Java, and especially, where does it leave Java’s user interface packages, AWT and Swing? Java’s philosophy of cross-platform user interfaces goes along with the model of the Internet as software distribution mechanism, but ignores the importance of the Web as user interface. Which all leads to a truly strange outcome: Microsoft may well have perceived the future of Internet software more keenly than the inventors of Web browsing and the inventors of Java. (And there is some evidence that Corel, once burned by Java in creating an office suite may turn to DHTML, not Swing, for building the user interface in their next attempt.)

Take a look at the white papers on Microsoft’s next Java product: Visual J++ 6.0. You will find an interesting view into the next generation of Windows programming technology. You can find the documents, along with a beta of the product you can download, here:

Forget the Java religious wars for a bit. If Microsoft intended only to produce a travesty that would sink Java, Microsoft’s Java efforts would quickly fade from relevance. Instead Microsoft has a Java virtual machine that performs better than any other on Windows, and Visual J++ 6.0 looks to become the most powerful and productive Java development environment. Take them at their word at least as far as the objective measure of their products. Microsoft’s goals are to produce a Java that stands on par with, and in many ways leads the evolution of their entire family of development tools. The result is a Java that delivers excellent performance for interactive applications, a Java that is not weighed down by an enormous user interface package, and a Java in tune to the next wave of user interface technology.

Even if it had not been the explicit goal of Microsoft to divert Java, as a movement, from direct competition with Windows as a computing platform, it would have been impossible to do without presenting a superior alternative in the form of Java as a Windows programming language. If the Windows Foundation Classes did not offer a sublimely flexible DHTML architecture that spans client and server-based execution, and what is probably the easiest way to create Windows applications, then there would be nothing to weigh against Sun’s approach, and nothing to support Microsoft’s position that Java is a fine language, but a second-rate platform. Instead, Microsoft has created an alternative view of the future of Java that is both interesting in its claim to a fundamentally superior approach to user interface building, and compelling in that applications writing using Microsoft’s approach to Java will likely perform better in all practical situations. Add to this the fact that the “practical situations” I’m referring to will likely be built out of NT servers, Windows 98 desktops, Windows CE set-top boxes and game consoles, and, possibly, Macintoshes that run a Microsoft-influenced Java VM, (N.B. the lack of Java OS-based systems in this picture) and you see that Microsoft’s position on how Java should be done is not just a defense.

The Department of Justice’s lawsuit against Microsoft has put the Java battle into the popular arena. There are large elements of strategy in this directed at preventing Sun from building Java into a rival platform. But Microsoft’s response stands on its own merits. If it didn’t, it wouldn’t have a significant impact on whether Java is viewed as a platform defined by Sun. Jurgen Schrempp, chairman of Daimler Benz, in talking about the merger with Chrysler, said “It all comes down to product.” Which says a great deal about the gulf between the perception of how business is conducted, and the reality.

Copyright 1998 Zigurd Mednieks. May be reproduced and redistributed with attribution and this notice intact.