Working offline with AJAX

I still believe that the two most promising developments for software applications in the last couple of years are AJAX webapps and Eclipse RCP applications.

AJAX provides a 90% solution that’s good enough for most people if done right. RCP allows the flexibility of designing applications to work together and build off of each other. A lot of what the whole Web 2.0 idea is about, but in a fat client sort of way.

I’m personally leaning towards the AJAX system simply because it removes the whole software distribution and patching problems by allowing the system to be centrally managed. The main concern I’ve heard from people about this though is that if all of my applications are online, what do I do when I can’t get online. I think we’ve made huge strides with wireless and extending the internet to a lot of places that people never would have dreamed of having it before. But, there are still a lot of places that you can’t get it. Being able to get Google Maps in my car would be wonderful. Wimax is hinting that it might solve these problems, but we’ll have to see real world implemenations of it first.

The more pressing problem for an ISV is the issue of a business application’s functionality when the internet goes down. Is there a way to offer limited functionality that can sync up again when the connection is back? Could you have an offline mode for GMail? This would allow you to compose and go through your messages while on the train to work and then sync up again when you get to the office.

Currently with AJAX only the display logic is downloaded into the browser, all of the real work is done on the server side. This makes an offline mode impossible, you’re back to distributing software again. Is there a way to adjust our thinking about this solution to make this possible? Cracking this could remove one of the last hurdles for widespread AJAX webapp adoption.

Is the solution to this going to be so convoluted that we’re just better off with fat clients anyway?