WHEN THE WEB first rose to prominence, its simplicity captured imaginations everywhere. For the first time, documents could
be encoded, hosted, and viewed on any platform using standards-based software. That seemed too good to be true, and after
money got involved, it was.
We were heading for an all-Netscape Web and then an all-IE Web until open source came along. As the likes of Mozilla and
Konqueror inch closer to commercial-grade code, less and less of the Web's wealth is reserved for users of name-brand browsers.
At last, the Internet's promise is within reach. But wait -- just when you had the landscape figured out, in come the bulldozers.
Microsoft and Macromedia, after years of wooing companies to browser-based applications, have reversed course, or as politicians
say, "evolved their thinking." Now their message is that Web apps are passé; the future lies in rich clients. Microsoft .Net
running on a desktop, Pocket PC, tablet PC, or smart phone can deliver a more engrossing user experience than DHTML (Dynamic
HTML) can. Macromedia Flash MX brings animated graphical flair to boring Web pages, and now Flash speaks XML and HTTP. Both
solutions work best with each vendor's proprietary back end. Both call for new skills and changes in the way Internet applications
are written. In return for our loyalty, both promise to extend the reach of rich applications all the way down to cell phones.
And then there's Java. By building Java into PDAs, phones, and set-top boxes, Sun has accomplished some of what Microsoft
and Macromedia hope to do. But Sun has not managed to unite its OEMs behind a single set of standards for classes or user
interfaces. Predictably, vendors pick up portions of Sun's mobile Java specifications and add a layer of device-specific extensions.
It will be a long time before a site can broadly target "Java devices" as a single class of client.
Web services are being touted as the magical glue that will make the universal client a reality. Even if everything speaks
SOAP (Simple Object Access Protocol), this solves only part of the client-compatibility problem. Web services standardize
data representation and remote function invocation. But so much of a modern application is presentation, and Java Swing, the
closest thing that exists to a universal GUI, is not part of any mobile Java implementation I've seen. So even with Web services,
developers will still have to do the same work over and over; instead of targeting content to display properly on a particular
device, they'll be writing device-specific Java clients that download and present data published by a Web service.
Time will winnow the list of devices and protocols that every world-class company has to support with its Internet services.
If I could cast a vote for the cross-device client most deserving of success, it would be Linux with an HTML 4.0-and ECMAScript-capable
browser. With all this money being spent to push the Internet away from Web apps and toward proprietary standards (I love
a good oxymoron), I guess that makes me an old-fashioned idealist.