Lots of "Web 2.0" pundits like to argue that it is just a matter of time before Web applications make desktop applications obsolete and irrelevant. To many of these pundits the final frontier is the ability to take Web applications offline.  Once this happens you get the best of both worlds, the zero install hassle, collaborative nature of Web-based applications married to the ability to take your "apps on a plane".  Much attention has been given to this problem which has led to the rise of a number of frameworks designed bring offline capabilities to Web applications the most popular of which is Google Gears. I think the anti-Microsoft sentiment that courses through the "Web 2.0" crowd has created an unwanted solution to a problem that most users don't really have.

Unlike David Heinemeier Hansson in his rant You're not on a fucking plane (and if you are, it doesn't matter)!, I actually think the "offline problem" is a valid problem that we have to solve. However I think that trying to tackle it from the perspective of taking an AJAX application offline is backwards.  There are a few reasons I believe this

  1. The user experience of a "rich" Web application pales in comparison to that of a desktop application. If given a choice of using a desktop app and a Web application with the same features, I'd use a desktop application in a heart beat. 
  2. The amount of work it takes to "offline enable" a Web application is roughly similar to the amount of work it takes to "online enable" a desktop application. The amount of work it took me to make RSS Bandit a desktop client for Google Reader is roughly equivalent to what it most likely took to add offline reading to Google Reader.
  3. Once you decide to "go offline", your Web application is no longer "zero install" so it isn't much different from a desktop application.

I suspect this is the bitter truth that answers the questions asked in articles like  The Frustratingly Unfulfilled Promise of Google Gears where the author laments the lack of proliferation of offline Web applications built on Google Gears.

When it first shipped I was looking forward to a platform like Google Gears but after I thought about the problem for a while, I realized that such a platform would be just as useful for "online enabling" desktop applications as it would be for "offline enabling" Web applications. Additionally, I came to the conclusion that the former is a lot more enabling to users than the latter. This is when I started becoming interested in Live Mesh as a Platform, this is one area where I think Microsoft's hearts and minds are in the right place. I want to see more applications like Outlook + RPC over HTTP  not "offline enabled" versions of Outlook Web Access.

Now Playing: Jordin Sparks - No Air (feat. Chris Brown)


Saturday, May 17, 2008 4:34:42 PM (GMT Daylight Time, UTC+01:00)
Point 3, that offline eliminates zero install in such a way that it is not much different than a desktop application, is incorrect in all the cases I've encountered it. If I want to use Microsoft Office on 4 different computers (my work desktop, my home desktop, my home laptop, and some random computer at an internet cafe), someone has to pay for and license Word and Windows on each of those machines, and then install it on each of them. If I want to use Google Documents on those same machines, I just go to the website. On one of them, my laptop, I'll bother installing offline access - but installation is not a requirement for using the program. It is only a requirement for offline use of the program.

As I understand your point 2, you are leaving out an important detail of the work. You're taking two already existing programs (a desktop RSS reader and a web based RSS reader) and making them synchronize. Making Google Reader work offline doesn't just synchronize it with something, it makes it usable as a desktop RSS reader. What if you had started with RSS Bandit, and wanted to make a web based version of it (similar to Google Reader or Newsgator) from scratch, and also include sync? Would that still be the same amount of work as adding offline capabilities to Google Reader by using Google Gears?

Of course, I'm someone who despite agreeing with you that the user experience of a desktop application is better than a "rich" web application, would choose the web application given the same features. I use too many different computers to have interest in new desktop applications that don't require the capabilities of the desktop.

For example, there's an interesting sounding new RSS reader called "Sprout" that I haven't tried yet. You know why? Because I do my RSS reading on 3 different computers, running 2 different operating systems, one of which is a corporate machine that I can't install software on. Sprout appears to be desktop only - there is no way I could access it from my work machine and keep it in sync with my reading on my home machines.

Kevin C.
Saturday, May 17, 2008 5:30:09 PM (GMT Daylight Time, UTC+01:00)
Dare, Great to see you back blogging again. I have missed your insights and "tell it like it is" approach. So much of what we read is hype or biased. You are always very clear and unbiased. I always learn something when I read your stuff.


Don Dodge
Saturday, May 17, 2008 5:58:20 PM (GMT Daylight Time, UTC+01:00)
Kevin C,
You are right. The example I use is flawed because it isn't an apples to apples comparison since I haven't factored in the work required to build a Web-based version of the desktop application.

The key issue I was trying to point out [and probably did a poor job doing] is that ideally you want a rich experience on the desktop otherwise your application is trumped by desktop apps. In this case a "Software + Services" approach (e.g. using RSS Bandit when at a desktop you control and Google Reader otherwise) provides a superior user experience to taking a Web app offline given current technological limitations (i.e. offline mode in Google Reader).

Give users the choice and they will pick desktop + Web app. Just look at how people post to Twitter as an example of what happens when you give them that degree of choice. Can you imagine Google Gears + Twitter coming close to replacing Twitteriffic/Twhirl/Twadget/etc?
Saturday, May 17, 2008 9:49:13 PM (GMT Daylight Time, UTC+01:00)
Hi Dare, glad to see you back!

I agree there's a lot to be gained by Web-enabling desktop applications, much more than by offline-enabling Web applications. I also see a lot of potential in the reverse direction -- by enabling desktop applications to be linked to by Web apps: after all, why shouldn't my local apps offer links as targets for both Web apps as well as other desktop apps?
Sunday, May 18, 2008 1:23:40 AM (GMT Daylight Time, UTC+01:00)
I'm going to Lake Placid for a week in July to do the Ironman and there's a good chance my options will be my iPhone (and good luck getting Edge connectivity) or dialup.

I'd much rather have an app that has a fixed and acceptable level of off-line functionality bolstered by additional online support when it's available than a super-web app that doesn't have acceptable off-line functionality.

In my day to day life, I have pretty much 24-7 wireless access to the internet. Every time I travel, I'm confronted by a real world where high-speed, always on internet access is not a given. I'm a pragmatist- I'd rather have 90% all of the time than 100% 90% of the time.

That said, why can't we have both ? I'm all for web-apps, but not if I have to give up my desktop apps. It's all about choice- and not having to make them.

Sunday, May 18, 2008 1:56:32 AM (GMT Daylight Time, UTC+01:00)
Totally agree.
I still don't understand the 'momentum' behind Google Docs and others.
Are people willing to pay for 90% of the functionality to enable online collaboration or would they prefer to see an Mesh enabled office with online collaboration in the future.

As much as I hate the Web 2.0 moniker, I see Live Mesh (and technologies like) really as Web 3.0. Cloud enabled applications, rather than Cloud Dependent applications.
Sunday, May 18, 2008 5:19:39 AM (GMT Daylight Time, UTC+01:00)
I sincerely hope your thinking reflects the mainstream at Microsoft. You got my unique ID there, let me come back in 2012, and we will discuss this further.
Keep This Up
Sunday, May 18, 2008 9:18:55 AM (GMT Daylight Time, UTC+01:00)
I touched on offline vs online in a recent blog post, rethinking Office - http://www.joiningdots.net/blog/2008/04/rethinking-office.html

People accept feature limitations in web apps, often without noticing, that they wouldn't tolerate in an offline app. Take this comment box. Fixed size, limited input options, but the value is in being able to comment, not write a document. There are scenarios where web apps are better (and Google Docs has features here that Office doesn't and should have). There are scenarios where desktop apps are better (and will remain so for a long time yet - the desktop may morph into mobile devices, but the need for software stays).
Sunday, May 18, 2008 9:39:24 AM (GMT Daylight Time, UTC+01:00)
1) welcome back to blogging!
2) Have you tried "meshify" RSS Bandit? Do you think it would work to have RSS Bandit's instances on diffrent PC's just using the same underlying sync'd folder for feed local storage?
Sunday, May 18, 2008 12:24:05 PM (GMT Daylight Time, UTC+01:00)
There are more advantages of offline webapps than you've stated here:
1. It's easy to write for Google Gears, so it's easier for non-experts to provide an offline version of their website.
2. Compare the difference in 'installing' offline Zoho and setting up a meshed Microsoft Office. The former takes anyone about 2 minutes at most (install Gears, synchronise); the latter takes hours for even intermediate users.

The argument is perhaps similar to offline vs online news: neither will destroy the other, since they both have inherent advantages.
Monday, May 19, 2008 4:27:26 AM (GMT Daylight Time, UTC+01:00)
Dare, nice to see you are back in writing. Offline + bad connectivity is my daily life, and in our team we have also experienced first hand the 'meh' around the current incarnation of Gears. Interestingly, I beleive Google sees gears as the brand for any extension to the 'browser platform' not just a data storage. At Where 2.0 they talked about a direction of adding location services and APIs 'for gears', if I understood correctly.

Another things people miss is that although 'deploying' http is easy, the browser will have to become a much more reliable/programmable container for these pieces of apps. Imagine using an offline app whose data is in gears but IE/FF decided to erase your page from cache. Things like clickonce say 'here's an update API go figure out your own container needs' but tend to be bad at supporting the types of composability of deployment (e.g. widgets from different sites) typical in richer apps.

It would be really easy to 'meshify' something like RSS bandit on the client, the issue is making all the other adapters you want to meshify with. One good outcome of having more folks think/build in terms of meshes is that they will naturally 'inherit' an architectural cardinal rule of building offline apps: you build an app to work offline, and it just so happens that every once in a while things happen because you get conenctivity. The opposite approach - taking an online app and trying to see how you branch behavior if you are offline has tended to create bad synchronization architectures for data and messages, and lousy user experiences...and I've seen a lot of these when writing the books on the topic way back then. I remember going over the evolution of Outlooks architecture over many iterations with the team, trying to glean the patterns and pitfalls.

(note: For anyone interested in open-source mesh code using Feedsync (the same versioning specification that live mesh uses under the covers) check http://Mesh4x.org, and some of my blog posts for background of the forces behind the project. There's .NET and Java versions available so far, with client libraries and couple of adapters for e.g. hibernate..we are looking for contributors too!)
Monday, May 19, 2008 11:55:04 AM (GMT Daylight Time, UTC+01:00)
Agree. I don't really get the point of offline webapps. Google gears isn't the only option for offline storage. Safari for instance, has SQLLite embeded, so you can store all the data you want (or almost). We just have to wait for other browsers to fully implement HTML 5 specs, and we'll all have native offline storage, without the hassle to install something.

Until then, if there's no internet connection where you are, maybe it's time to take a break off the computer :-)
Tuesday, May 20, 2008 5:45:04 PM (GMT Daylight Time, UTC+01:00)
"just a matter of time before Web applications make desktop applications obsolete and irrelevant"
Yes I certainly hope so.

"the final frontier is the ability to take Web applications offline"
as for that I disagree.

Well I have been reading the hype in the news. And it makes me just wonder what's wrong with me...;) I mean, G. trying to move offline. Myself I try to move *everything* away from my desktop. I store all my sourcecode on a public webserver using Sourcegear. I use GoogleDocs/Editgrid and not Office/OpenOffice for writing and calculating. I even deveoped my own fulltext search engine web app which I use to store and search for things and notes I usually typed in Notepad and stored somewhere on my local harddisc. While I can't get away from my local Visual Studio install, I am refocusing to using the Express version(s) which will make me more mobile, i.e possible to download/install/download patches/ionstall patches in under one hour. I mean considering the beasts all regular desktop apps has turned to. So, I am sure G. knows what they are doing, but for myself, I know what's best for me...
Comments are closed.