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 Corp. and Macromedia Inc., 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 passE; 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.
Tom Yager (firstname.lastname@example.org) is the technical director of the InfoWorld Test Center.