For the past two days I've been attending an "Ajax summit" event thrown by O'Reilly and Adaptive Path. I think "summit" is an apt term to describe it, as it included a cool cross-section of individuals from various disciplines — web developers, network engineers, interaction designers and others — and many, many people who've been doing this type of work for a long, long time. I thought this was an important distinction, as the application of Ajax (however you might define it) brings new solutions to old problems while creating new problems that reach outside the scope of what is generally thought of as "webdev."
I'm way tired, so here're some frazzled notes and takeaways.
Ajax, grunge rock and convergence
I found a parallel in the thoughts of Generation X author Douglas Coupland on the hypermarketing of the twentysomethings in the early 90s:
Generation X's tiny, March 1991 printing had no publicity, and received almost no reviews. But that summer a Texan my age named Richard Linklater released the movie "Slacker"...And in Seattle, a new form of music was exploding...As the media goes, two's nothing, but three's a trend. Thus were born the most abused buzzwords of the early 90s: "generation X", "slacker", and "grunge".
Similarly, I felt three things happened to converge, coincidentally: the flattening of the browser landscape; the buzz built around Google's trial-balloon apps like Google Suggest, and the coining of the highly-buzzable term "Ajax."
Thus, Ajax is the GenX of web development: suddenly a movement and a market where before there was just a bunch of neato stuff.
What Ajax is, what Ajax isn't
No attempt was made to define "Ajax" or identify the patterns inherent in an Ajax application. No one was gonna touch that with a twenty-foot pole.
That said, I have my own thoughts on what Ajax is, and I think if we want to effectively communicate to people that Google Maps != Ajax (more on this below) it's important to recognize the larger components:
- Ajax the methodology - this is the concept, the approach: fetching small pieces of data from the server, without a whole page refresh.
- Ajax the technology - the libraries and toolkits: JavaScript, Flash, XML, HTML, etc. whatever enables #1 above.
- Ajax the implementation - it can be as boring (and useful!) as a "smart" HTML form that validates fields as you tab between them, or as sexy as Google Maps.
Gotta keep 'em separated, because we gotta be prepared for the questions: what is Ajax? Is this something we should be doing? I think our energies are better spent on deciding whether the Ajax methodology is an appropriate approach to solving a particular problem.
For it all to work, the methodology must be a win for the business person, the technology must be a win for the IT department, and the implementation must be a win for the user. If cost > value in any of these, don't bother. "You're building a car around a bicycle." (source)
Threats
Skip Intro - we need to avoid a repeat of the "Flash is 99% Bad" debacle that took years for Macromedia to shake. If there's no win in applying an Ajax approach, don't bother.
XML Fairy Dust - for awhile in 2000, it seemed that XML was suddenly the answer to everything, a magical fairy dust that increased ROI and garnered more seat licenses. It wasn't. Neither is Ajax.
Microsoft? Nah, I don't buy this. They gave us XmlHttpRequest and I doubt they care enough to break it.
Is Flash Ajax?
No. Is it capable of enabling an Ajax-style applications? Yes. Dunno what's so hard about this question.
Browser Beefs
Flickr's Eric Costello gave a presentation that was part satisfying rant at the remaining dissimilarities between the browsers, and vented some frustration at long-standing and long-annoying problems like the Back Button Issue, DOM manipulations that aren't cached, CSS-immune FORM elements, etc. It was a high point.
Etc.
Desktop apps are trying to be more like web apps, and web apps like desktop apps. Where do they meet? (Later: who cares?)
Still need a killer app. Everyone points to Google Maps but it feels overblown. I think the real value will come from making boring stuff better, making static interfaces responsive. Anil: making web pages act the way users expect them to act, but who have been trained to expect less.
Derek Powazek: full-page request/response is to email as Ajax is to instant messaging. Smaller chunks of data, in a simplified format, traveling faster.
Saw lots of demos. Not gonna talk about 'em. Suffice to say there's some very cool stuff being built.
Jason Kottke rolled out Ajax-powered blog archives on his website while the sessions were going on. Nice, but I think Dunstan Orchard's live search is equally impressive (and Dunstan's attention to progressive enhancment is admirable).
I'm pretty sure I was the only one (out of about 40 attendees) without a laptop. About 70% of laptops were Macs. At times I felt like I had forgot my duck. At other times, I was glad I didn't have the distraction of email, IM, etc.
Probably more to report once I get some rest.