When is AJAX not AJAX?
I started this as a comment over at Alex Russell's entry, "ajaxWrong", copied here because I felt like it. He writes:
<ul>
<li>
<span><i>This thing is appropriating the necessarily amorphous terminology of “Ajax” for an implementation that is directly at odds with why Ajax is an important technology. A XUL app being billed as “Ajax” is just as laughable as a Flex or XAML app suddenly growing the same moniker. That it’s Mozilla’s walled-garden language doesn’t really excuse the gaffe.</i></span>
</li>
</ul>
I thought ajaxWrite was pretty keen when I first tried it - I presumed there must've been a bit of nice trickery to get what is generally called an AJAX app to work like that. Imagine my disappointed surprise when I realize that they used XUL. XUL ain't AJAX, no matter how you try to deform and stretch the term.
AJAX may be a coined term with an acronym of Asynchronous Javascript and XML, but it’s descriptive of a new wave of web programming practices.
It’s not a spec, so you can’t get away with a literal reading of “There’s no HTML in AJAX, so neener!” It’s a community concensus term. And, XUL ain’t a part of it. Hell, read the list from the original article coining the term:
<ul>
<li>
<span>standards-based presentation using XHTML and CSS;</span>
</li>
<li>
<span>dynamic display and interaction using the Document Object Model;</span>
</li>
<li>
<span>data interchange and manipulation using XML and XSLT;</span>
</li>
<li>
<span>asynchronous data retrieval using XMLHttpRequest;</span>
</li>
<li>
<span>and JavaScript binding everything together.</span>
</li>
</ul>
That’s what AJAX means to us me. If you want it to mean something else and get away with it, you’re going to have to convince everyone who read that article and ran with that definition.
Archived Comments
The original Ajax definition doesn't make much sense either. For example, XHTML isn't important -- work is typically done with the DOM or innerHTML, neither of which care one bit about XHTML. They care intensely about HTML, though. XML is not important either -- heck, just replace the X in Ajax with XMLHttpRequest, because that's what people often use. JSON or HTML literals work just fine, and JSONP provides an interesting alternative to XMLHttpRequest that can't be done with XML at all.
Really, Ajax is a new set of practices being developed by a loose but forming community (in a realm where there was no community before), centered around browsers and Javascript and complementary server interaction.
Coming back around, I don't have a particular opinion, but AjaxWrite is browser-focused, and HTML-focused; XUL is not HTML, but it is more HTML than some arbitrary XML. And it is Javascript focused. I have no idea what the server component might look like; I suspect it may be very minimal. I think it is a good attempt towards Ajax ideas.
I'm going to have to agree with Ian. If it was using SVG instead of XUL - would it be 'AJAX'? Or how about the new canvas element in HTML 5? Much in the same way that you can have an 'AJAX' application that uses ActiveX controls. I believe that just because a technology isn't widely supported doesn't mean that it can't participate.
Now, from the point of view of a developer, XUL was a really crappy choice for a front-end - you're immediately excluding 80%+ of your audience (you know, the ones that you're trying to convert from using Word!). Nothing that I saw presented in ajaxWrite was a XUL-only feature. And this isn't even counting that fact that the application itself is very poorly designed.
Bah! You're both wrong! I wave my hands at you! :)
In my mind, AJAX and DOM Scripting are inexplicably tied together. For me, the magic of AJAX was the discovery that plain old JS and DHTML apps could perform HTTP requests post page load. HTML+CSS+JS+XHR means AJAX to me. No XUL, SVG, canvas, or Flash.
Well, maybe canvas... er... and SVG is nice. And we use an awful lot of Flash at work.. and.. Aw crap, maybe I don't know what I'm talking about after all. My gut still says that the proper domain of AJAX is in formerly dead HTML+CSS sprinkled with XHR pixie dust, but I can't really back it up with more than opinion and what the originator of the term said.
What the 'general public' defines as Ajax is slowly changing from it's original meaning (Asynchronous JavaScript And XML) to 'a rich user interface experience'. The problem is that people can't see and don't care what's going on under the hood, and their only association with ajax is rich user interface experience. I guess the ajaxwrite team thought they could get some extra attention by labeling their app 'Ajax'. And why would you be dissapointed about the fact that they used xul? I think it shows what is possible and how future (web)applications will look when xaml can be used in ie.
The use of XUL disappoints me because XUL is a Firefox/Mozilla app that happens to be web-transferred. And XAML squicks me out because it's a Microsoft app that happens to be web-transferred. Neither makes me happy when I'm trying to make broadly usable web applications across many platforms. Neither XUL nor XAML will become the standards that HTML, CSS, and JS have become - even with their fuzzy semi-proprietary sidecars like XMLHttpRequest.
My association with AJAX comes from having written apps using it, and that's from where my grousing arises. I don't care about the general public's definition of AJAX, just the developers who care about terms like "asynchronous" and "XML". But it looks like "ajaxWrite" is a somewhat cynical attempt to cash in on public perceptions of AJAXian buzz.
Thanks for voicing this l.m. I'm registering my vote with you.
AJAX or AJAXY or AJAX-like has become one of those weird, undefinably vague web 2.0 type terms that means one thing: 'cool'. I have had clients ask for cool AJAXY type web interfaces, and they don't even know what they are talking about. They just want it to be 'web 2.0 cool'. I can't wait to see a job description that asks for 5 years of AJAX experience. "Yeah, sure, I can do AJAX..., been doing it since 1984!"
I think the term has been over-used and over-hyped in this mini-bubble of excitement just to get a VC's attention. To me it means a server side remote-procedure call, that updates some part of a page without updating the whole page in a round-trip to the server, accomplished with some form of javascript and server side code via httpRequestObject.
I could charge extra dollars to develop an AJAXIAN Website. Wouldn't that be 'cool'. Almost nobody would know the difference, except you...