Current concerns with Ajax

A reader just mailed me about what I see as concerns with Ajax right now…what’s still worryng?

Well, here are a few things off the top of my head…

Accessibility is still a key issue, but more to do with if people bother to Ajaxify at all than if people break accessibility. If developers are required by their companies or regulations to make their web apps accessible, what’s the incentive to add Ajax and make it more usable as well? Making a website Ajax-enabled and accessible can sometimes be a lot of work. Managers really have to be aware of the benefits of Ajaxifying their apps so they can make a balanced choice.

Documentation for the key open-source frameworks (prototype and dojo) is still very lacking, though it’s good for Yahoo! and Mochikit. I really want to use Dojo in a big way and the mailing list support is great, but every time I look for docs, it’s just too discouraging and I revert to Prototype (being the default Rails library of choice). For a long, long, time, Prototype’s homepage was completely empty – essentially just a download link. Now there’s a little more, and also the Scriptaculous wiki, but still pretty raw.

In this world of mashups, it’s ironic that XMLHttpRequest is not at all suited to cross-domain calls. We can sort of work around that with Cross-Domain Proxy or On-Demand Javascript, but they are both hacks. The first is inefficient as it involves the host server in all calls, the second requires explicit permission and support from the external server. Neither is the ideal, clean, call that XHR was supposed to facilitate. A better model is required. Doug Crockford’s JSONRequest will help, but is unlikely to be adopted by MS – in an earnest way – anytime this decade.

Cross-browser programming is still painful. CSS is inconsistent and DOM models vary in subtle ways.

Comet (HTTP Streaming) is becoming really important, but is still out of reach for the typical Ajax programmer. Too resource-intensive, too many issues to overcome, especially in the server.

13 thoughts on Current concerns with Ajax

  1. Michael,

    After all the early Ajax hype, I appreciate your realism. I just wrote a post on “Ajax Wisdom” in which I discuss how far Ajax has progressed along the Gartner Hype Cycle. I referred to your comments here as one sign that Ajax has not yet passed the Trough of Disillusionment.

    –Chris

  2. I was wondering if you could expand your comments on Comet. I am going to be using Jetty inside JBoss for my Comet (J2EE) implementation. What type of issues are there to overcome. I am a java architect, been in field 12 yrs, feel I will be able to solve any technical hurdles.

    I need to know exactly when people are online, log off, new notifications to user, and chat implementation. Comet seems like the best technology for this. Am I missing something from this picture?

  3. I would also add disconnected mode and i18n being a consideration for a current concerns. Also possibly more improvements in debugging and development tools, but in this regard we’ve come a long way (if you use Firefox).

    IMO, the worst issue facing Ajax is Ajax-abuse in the form of both large Ajax frameworks that break the page-model of the web and unnecessary abstraction (like JQuery syntax) leading to poorly written code.

    I wish that these so-called “Ajax patterns’ were actual patterns and not f*cking code snippets about how to call a code library using some bloated framework. That’s a clear misconception on what a “pattern” is.

    The first time I ever used Ning::Confess app, I got “I hate Web 2.0” I didn’t have to add a confession. :-)

  4. I should add Michael, I don’t mean all your Ajax Patterns, I mean some of them.

    For instance, taking the Cross-Domain Proxy which is a very simple and valid Ajax design Pattern that is often used. You have tons of examples, one usage (in Java), and no description of the pattern solution itself. There is no way a beginner who doesn’t already know this pattern is going to figure out out. 😉

  5. Michael,

    A slight variation of this … What are concerns of Software testing community as you see …

    I am software tester and I do testing for living.

    What are the challenges that you see for a tester for AJAX applications?

    More than that still basic question – may look very silly is How does one spot an AJAX feature on a web app?

    what are different ways to recongnise an AJAX stuff?

    Your answers will be highly appreciated

    Mail me at [email protected]

    Shrini Kulkarni

  6. Testing – I guess the main issue is the obvious one. How do you test Javascript inside the browser? I tried to address this in ajaxpatterns with the 4 testing patterns, but it’s still a difficult area and I can’t claim to do much JS testing myself. I’ll do unit testing for a complex “business” or interfacing component, but no automated tests involving UI.

    “How does one spot an AJAX feature on a web app?” Get Firebug!

Leave a Reply