This past week I was at the Ajax Experience Conference in San Francisco. Here's my general take on the Ajaxey festivities.
General points of interest:
- The number of people. The organizers said they were anticipating around 250 people. I think the real number they said was something like 475 in attendance.
- People are still writing their own low-level code. A poll by simple raising of hands indicated that a majority of people (60-70%?) are writing their own toolkits instead of using something like Prototype, MochiKit, Dojo, etc.
- A trend by vendors to open up more of their product. Laszlo is now OpenLaszlo, Zimbra is Apache licensing instead of using their own license. Adobe is relaxing pricing for the Flex server, and releasing a stripped-down freebie server version.
- Accessibility for Ajax seems to be a big concern and question mark for everybody.
Sessions I attended:
Introduction to Dojo / Dojo in Depth (Alex Russell)
A good introduction to a lot of the stuff that makes Dojo cool -- the package system, event.connect, widgets, and io.bind.
The takeaway: Dojo has a pragmatic and extremely well-designed foundation, and it's evolving fast into something that will allow complex Ajax/JS fontends to grow and scale in a fairly painless way. It is still somewhat of a moving target in some areas, so it's probably a good approach to start with pieces that are not very much in flux.
Ajax Beyond the "Cool" factor: Design Principles and Patterns (Michael Mahemoff)
Applying patterns to Ajax. Demonstrated good use of 'progressive enhancement' for adding Ajax to an existing piece of code. Compared various approaches to Ajax development (e.g., Ajax as an enhancement vs. full-on Ajax app development, JSON vs. XML, and so on).
The takeaway: As Ajax development work begins to be better understood, a common set of patterns emerge and can be shared as best practices.
JSON (Douglas Crockford)
Introduced JSON with a bit of history and description. Compared to XML for data transfer with Ajax apps.
Beyond Cookies: Persistent Storage for AJAX/DHTML Applications Using Dojo.Storage (Brad Neuberg)
Introduction to Dojo's local storage system, which can currently use Flash (or cookies of course).
The takeaway: This might be a tenable strategy for allowing offline storage of larger amounts of data -- *if* you don't mind tying your users to a proprietary player like Flash. But dojo.storage also stubs out a basic API for accessing local storage, so it will be ready when Firefox and other browsers actually implement it natively (which might actually be fairly soon).
Building event-driven user interfaces with Dojo (Dylan Schiemann)
Demostrated a lot of examples from the Renkoo Web app (www.renkoo.com) for managing a complex event-driven Ajax UI. Also described use of HTTP streaming (AKA 'comet') to implement server-side push.
The takeaway: Managing the flow of user/app events in a complicated asynchronous UI is hard, but Dojo's event.connect (publish/subscribe model) can make things a lot more manageable. Even with that, creating a really sophisticated, attractive, and responsive UI still seems to require some degree of hackery. Lastly, server-side push is finally turning into something usable in a real-world Web app.