Home > Technology > Subverting Offline Access

Subverting Offline Access

April 5th, 2007

I’ve been struggling to make sense of the offline web application access being brought to us any day now by the likes of Adobe’s Apollo and Joyent’s Slingshot. It’s a struggle because it’s hard to figure out what the big deal is. I downloaded the Apollo alpha packages, and haven’t actually built anything because I was so underwhelmed by the screencasts I could find that show off what Apollo can do. Yet, many folks are pretty sure these technologies are a big deal, some others aren’t so sure.

For myself, I’ve been somewhat caught up by the implications, but I think that has had a lot to do with the way the key web languages (HTML, CSS, and JavaScript) have come on so strongly as of late. A while back, Mono’s Jackson Harper made a conflicted post about how today’s web GUI controls are better than, and simultaneously worse than, traditional desktop WinForms GUI controls. I think those conflicted feelings are relevant to the excitement about offline access to web apps. The fact of the matter is that presentation techniques on the web have some distinct advantages over most desktop frameworks.

For the most part, our desktop apps suffer for being rooted in technologies and techniques that were developed when computer performance was an entirely different beast. Parsing a text description of a GUI layout at run-time, then animating everything, was just impractical, you simply had to hardcode things. Now, when we have the computing horsepower to build the GUI on the client’s computer at run-time, the game is completely different. Microsoft is rolling out WPF to address the presentation side of things (declarative programming makes sense for GUIs!), but the offline web access folks have another crucial advantage that I don’t think is getting enough specific attention.

Suppose a user lives in a world that is, unfortunately, frequently disconnected. What does that user gain from offline web apps? It may turn out they gain a more pleasing UI thanks to the rich interplay between HTML, CSS, and JavaScript that seems to be hard to mimic using traditional desktop technologies. They also gain (I’m hoping) automatic updates when they are able to connect, but this is a feature that should be available in most applications, regardless of technology. No, I think a key aspect of this user’s experience is the fact that they will be getting automatic online, potentially versioned, backups of their data. It is assumed that this functionality is available because web-app authors started from a point of view that holds that there is no storage on the client. These developers had to figure out how to store client data on their servers.

In effect, the revolution of web services has forced developers to figure out a killer feature for desktop applications. While I’m quite happy to manually use SVN to version and backup pretty much everything I do, most computer users would not be. These people, and this technology, represent an enormous opportunity. But it is an opportunity that is hard to sell to makers of desktop applications. The idea of offering free online storage to all users sounds like a huge commitment when viewed from the past, but it is taken for granted when viewed from even today’s web, much less the future.

Offline access for web apps is not just a feature for technophiles who find themselves on airplanes every other day. This technology’s real power lies in the way that it brings the back-end data services of web applications to the desktop. Let’s forget about using a web page while disconnected, and start thinking about users who are only comfortable with desktop-class applications getting rich, automatic online backups integrated into the core of their experience.

Anthony Technology

Comments are closed.