AJAX. So many people hate the name, but we all know what it means. It’s a design pattern more than a buzzword; an easy way to symbolize a design or engineering concept. Design patterns help developers communicate concepts and often implementation with just a couple of words.
The old way:
“Guys, we need to add logging capabilities to this application. We need to be able to log to files, RSS feeds, the database, and blast email. We need to code up some classes where each of these logging mechanism can attach and listen for specific events, and then we need an interface so that all of our other code can implement notifying events to any of the listeners.”
The pattern way:
“Guys, we need to add logging capabilities to this application. We need to be able to log to files, RSS feeds, the database, and blast email. Use an observer pattern.”
Nice, huh? So, what should we call offline-capable web applications? Do we need to first split up the problem space for different operations involved:
- archiving, downloading, caching, “off-loading”, “side-loading”
- syncing, refreshing, uploading
- mode switching
- online/offline status for social apps, awareness
- what else?
This makes sense because different applications will have different offline needs. An RSS reader will function differently than a blog composing app.
Google has done us a favor by releasing Gears. Let’s leverage everything good about open source and figure out some best practices before everyone goes off in all different directions.