I've seen a number of responses to my recent post, SOA, AJAX and REST: The Software Industry Devolves into the Fashion Industry, about the rebranding of existing techniques for building websites which used to be called DHTML or Remote Scripting to AJAX. I've found the most interesting responses to be the ones that point out why this technique isn't seeing mainstream usage in designing websites.

Scott Isaacs has a post entitled AJAX or as I like to call it, DHTML where he writes

As Adam Bosworth explained on Dare's blog, we built Ajax-like web applications back in 1997 during and after shipping IE4 (I drove the design of DHTML and worked closely with the W3C during this period).  At that time xmlhttp (or xml for that matter) did not exist. Instead, structured data was passed back and forth encapsulated in Javascript via hidden IFrames.  This experimental work helped prove the need for a structured, standardized approach for managing and transporting data.

Over the years, quite a few web applications have been built using similar approaches - many are Intranet applications and one of the best was Outlook Web Access. However, very few main-stream web-sites appeared. I believe this was due to a number of factors - the largest being that the typical web user-experience falls apart when you start building web-based applications.  The user-interface issues revolve mostly around history and refresh. (For example - In GMail, navigate around your inbox and either refresh the page or use the back button. In Spaces (IE Users), expand and view comments and hit the back button.  I am willing to wager that what happens is not what you really want).  The problem lies in we are building rich applications in an immature application environment. We are essentially attempting to morph the current state of the browser from a dynamic form package to a rich application platform.

I have noticed these problems in various Javascript based websites and it definitely is true that complex Javascript navigation is incompatible with the traditional navigation paradigm of the Web browser. Shelley Powers looks at the problems with Javascript based websites from another angle in her post The Importance of Degrading Gracefully where she writes

Compatibility issues aside, other problems started to pop up in regards to DHTML. Screen readers for the blind disabled JavaScript, and still do as far as I know (I haven’t tried a screen reader lately). In addition, security problems, as well as pop-up ads, have forced many people to turn off JavaScript–and keep it off.

(Search engines also have problems with DHTML based linking systems.)

The end result of all these issues–compatibility, accessibility, and security–is a fundamental rule of web page design: whatever technology you use to build a web page has to degrade, gracefully. What does degrade, gracefully, mean? It means that a technology such as Javascript or DHTML cannot be used for critical functionality; not unless there’s an easy to access alternative.
...
Whatever holds for DHTML also holds for Ajax. Some of the applications that have been identified as Ajax-enabled are flickr and Google’s suite of project apps. To test how well both degrade, I turned off my JavaScript to see how they do.
...
Google’s gmail, on the other hand, did degrade, but did not do so gracefully. If you turn off JavaScript and access the gmail page, you’ll get a plain, rather ugly page that makes a statement that the primary gmail page requires JavaScript, either turn this on, get a JS enabled browser, or go to the plain HTML version.

Even when you’re in the plain HTML version, a prominent line at the top keeps stating how much better gmail is with a Javascript enabled browser. In short, Google’s gmail degrades, by providing a plain HTML alternative, but it didn’t do so gracefully; not unless you call rubbing the customer’s nose in their lack of JS capability “graceful”.

You don’t even get this message with Google Suggest; it just doesn’t work (but you can still use it like a regular search page). As for Google Maps? Not a chance–it is a pure DHTML page, completely dependent on JavaScript. However, Mapquest still works, and works just as well with JS as without.

(Bloglines also doesn’t degrade gracefully — the subscription is based on a JavaScript enabled tree. Wordpress, and hence Wordform, does degrade gracefully.)

If we’re going to get excited about new uses of existing technology, such as those that make up the concept of Ajax, then we should keep in mind the rule of degrading gracefully: Flickr is an example of a company that understands the principle of degrading gracefully; Google is an example of a company, that doesn’t.

Update: As Doug mentions in comments, flickr is dependent on Flash. If Flash is not installed, it does not degrade gracefully.

I do remember being surprised that I had to add "http://*.google.com" to my trusted sites list to get Google Maps to work. Of course, none of the above observations is new but given that we are seeing a renaissance of interest in using Javascript for building websites, it seems like a good idea for a similar return of the arguments discussing the cons of this approach as well.


 

Categories: Technology
Tracked by:
http://www.ecyware.com/blog/PermaLink.aspx?guid=4056b798-a006-4ad9-b720-b605bdf8... [Pingback]
"Problems, what problems?" (Pete Cole's WebLog) [Trackback]
http://betavisa.com/sitemap1.html [Pingback]
http://silauma.info/washington/sitemap1.html [Pingback]
http://yftbsy1.net/internet/sitemap1.html [Pingback]
http://weujmru.net/activities/sitemap1.html [Pingback]
http://dugablog.com/sitemap1.html [Pingback]
http://yftbsy1.net/movies/sitemap1.html [Pingback]
http://issl7ti.net/internet/sitemap1.html [Pingback]
http://ukpuuq8.net/artists/sitemap1.html [Pingback]
http://ofiyspg.net/sitemap1.html [Pingback]
http://oymykjb.net/sitemap1.html [Pingback]
http://box405.bluehost.com/~dugablog/sitemap1.html [Pingback]
http://kiva.startlogic.com/sitemap1.html [Pingback]
http://lf0s3on.net/childcare/sitemap1.html [Pingback]
http://lf0s3on.net/vacation/sitemap1.html [Pingback]
http://anubis.sslcatacombnetworking.com/~rocata/tattoo/sitemap1.html [Pingback]
http://tulanka.readyhosting.com/forex/sitemap1.php [Pingback]
http://host239.hostmonster.com/~blogford/sitemap1.html [Pingback]
http://host239.hostmonster.com/~blogford/sitemap3.html [Pingback]
http://gator413.hostgator.com/~digital/tax/sitemap1.html [Pingback]
http://gator413.hostgator.com/~digital/jewelry/sitemap1.html [Pingback]
http://umatutman.com/storage/sitemap1.html [Pingback]
http://ghtj3bo.net/activities/sitemap1.html [Pingback]
http://gw7w9sw.net/00/index.html [Pingback]
http://gh9kwkn.net/comcast/sitemap1.php [Pingback]
http://ujprjlw.net/alabama/sitemap1.html [Pingback]
http://nbozwqs.net/aol/sitemap1.php [Pingback]
http://box432.bluehost.com/~zbloginf/sitemap1.html [Pingback]
http://d579737.u108.floridaserver.com/sitemap1.html [Pingback]
http://gator442.hostgator.com/~hockteam/southwest/sitemap1.html [Pingback]
http://gator442.hostgator.com/~hockteam/lotto/sitemap1.html [Pingback]

Sunday, 27 March 2005 23:35:07 (GMT Daylight Time, UTC+01:00)
The limitation in all of this is not DHTML apps per se, but the fact that browsers are too noisy - and were anyway never designed - to be used as 'application wrappers'.

For Windows users at least, the obvious next step is to abandon the browser in favor of delivery in custom windows whose attributes can be scripted 'on the page' together with the application's source.

Check out Zeepe (www.zeepe.com) as a mature illustration of this approach.
Tuesday, 05 April 2005 18:47:48 (GMT Daylight Time, UTC+01:00)
Microsoft obviously did some pioneering work with DHTML back in 1997. One is led to wonder why DHTML didn't improve much since then. Why is it still an immature application environment after 8 years? Meanwhile, Google recently added great visibility to the idea that DHTML/AJAX applications *can* be done (even if they're not easy and don't gracefully degrade). When non-technical friends and colleagues see rich functionality in a browser, they're AMAZED. It's only later, when the back button is broken or a web crawler can't extract text properly, that they realize they've missed a few things. Mistakes will be made---(Raise your hand if you've ever written an ASP/JSP/PHP that treats GET and POST the same)---but the good thing about the limelight is that eventually users will start to demand rich interfaces *and* back-button functionality. :) The problems you describe here will beg to be solved.
Jeoff Wilks
Comments are closed.