It is indeed possible (and sometimes even desirable!) to create rich Internet applications using DHTML; I've been talking about this for some time. But the idea that DHTML technology is standard, mature and well-understood is accurate in only a theoretical way.
Welcome to the Ajax reality distrortion field.
This one post about replacing Flickr's Flash UI with a DHTML UI seems to sum up these contradictions rather concisely:
First, the developer, Neil Kandalgaonkar, writes that this DHTML version of the Flickr UI will work in more places that the Flash UI that Flickr uses:
"So what's wrong with Flickr's perfectly good Flash interface? Nothing. But maybe...you often use operating systems where Flash doesn't work, or doesn't work well."
But later in the post, Neil goes on to write:
"This is a hack that works in just one browser, Firefox. Developing cross-platform DHTML is much harder and more painful. Flash has a lot of advantages over DHTML; it's truly cross-platform, and can do much more special effects. If that works for Flickr, more power to them."
Well, that sounds rather different! Finally, when explaining why someone might be interested in what he's done, Neil writes:
"...you're a web developer and you are interested in this bleeding-edge Ajax stuff."
I'm confused. Isn't Ajax/DHTML "standard, mature, and well-understood"?
Just to be clear: I think what Neil has done is cool. But cool, bleeding edge, difficult and incompatible isn't what Ajax is supposed to be all about.
I sometimes think of how developers look at DHTML apps in terms of grading on a curve. A Laszlo-, Flash-, or Java-based RIA will typically receive all sorts of complaints from Web standards vigilantes about non-standard UI, accessibility issues, problems with bookmarking and deep linking, and incomptibility with search engine crawlers. But a similar app built using DHTML -- excuse me, "Ajax" -- elicits enthusiastic responses from the very same crowd like "Wow! Look at how cool this DHTML site is! Isn't that UI great?"
Of course a full Ajax/DHTML app has nearly identical issues with UI, accessibility, bookmarking, and search engines that other RIA technologies do; but they have the veneer of being "standard". And just to state the obvious, lest we forget: HTML as a standard for Web applications is in a precarious position, with the leading browser vendor actively working to define its own all-new markup language for networked applications, and other browser vendors creating a splinter group that diverges from the W3C to promote their own standards for Web applications.
Theoretically, DHTML is a standard. But to quote Yogi Berra: "In theory, there is no difference between theory and practice. But, in practice, there is."Posted by temkin at April 12, 2005 11:10 AM