The Offline Web Application Problem
Rails creator, David Heinemeier Hansson, has placed an opinion on the 37signals blog that leaves me wondering if it is a late April Fools joke or real commentary. This is not because the post itself is a joke — listening to DHH is usually a good bet — it is mostly because of its timing and proximity to April 1st coupled with April 1st-style comment reactions.
The entire post is worth a read, but there is one bit I would like to highlight, because it matches much of the view online today. To quote:
“The idea of offline web applications is getting an undue amount of attention.”
The key here is the phrase “offline web application” and when considering the implications of that phrase, DHH’s assertion makes sense — who cares? This isn’t to say that bandwidth is ubiquitous, but rather that a so-called offline web application doesn’t make much sense. An adjustment of terms and perspective might prove helpful in this regard.
In my admittedly biased opinion, it shouldn’t be about taking a web application “offline” or taking a desktop application “online” for that matter. Web applications are a user experience compromise. Desktop applications are a user experience compromise. Why would anyone want to bring the compromises of one paradigm into the other?
I think Brent Simmons got it right with NetNewsWire and its online companion and I hope to see, use, and build more of these hybrid applications. It isn’t about taking something online or offline. It’s about not compromising user experience.
Simmons mentioned the difficulty of syncing these two different worlds in his C4 appearance and I agree that it is a hard problem to tackle, but in the end I think it is a win for users. Someday we’ll lose these primitive ideas of apps running on this or that machine, or being online vs. offline, but right now, I think the answer is to put in the extra work, build both, and sync where appropriate…at least for ToDo lists and probably for many other domains.



Chris Messina wrote:
I agree with you. I think that the presumption of ubiquitous connectivity is flawed; even with wifi everywhere, it’s not always open or free or reliable. Therefore, the bigger question is one of *resilience* — how do we build resilient applications that function even under not-so-great conditions?
As for the offline web app thing — I agree that there confusion of terms… the delivery mechanism of UI and data (http, html, javascript and css) happen to come over the same pipe — but there’s no reason why future browsers couldn’t instead be web service browsers that have a number of UIs baked in on the client side and do simple things well… in those situations where a web app requires new interfaces, that’s where extensions come in.
And, as you can imagine, this was my thinking for Flock: build a browser that fundamentally included people and web services in its DNA — and that saw the web as a living organism. When you throw out the assumptions of a 28.8 baud web, there are very interesting possibilities, and yet networked games like Quake and Unreal Tournament thrived in this environment. When you had connectivity, they were awesome; when you didn’t, they were still great experiences.
We should have the same experience in browsers and web-enabled desktop applications and nothing less.
Posted on 04-Apr-07 at 2:03 pm | Permalink
Federico wrote:
Besides, I think “wi-fi” everywhere is a reality in U.S. only… it’s not like that where I live, for instance (a middle-sized italian city)
Posted on 06-Apr-07 at 2:36 pm | Permalink
CuRoi wrote:
The 37signals post certainly ruffled a few feathers, and it was interesting to read your take on it - especially in light of actiontastic/actionatr.
I don’t so much have anything *original* to add, other than hop onto the thread you and Chris were getting at. Too often, traditional applications are restricted to a single ecosystem. They’re either online or offline… with maybe an update or backup thrown in. But games seem a different beast. Those with compelling off and on features have proved to be the most popular and long-lasting. Look at many of the good FPS, RPGs or Sports franchises. Create an engrossing offline story to satiate the down time, and then provide an outlet for the up time.
Applications would do well to learn from that design paradigm. A single application, with the common underlying essence, yet unique experiences depending on connectivity. The same, but different.
Posted on 09-Apr-07 at 4:56 pm | Permalink
Brian Brown wrote:
I build applications for individuals with intellectual and cognitive disabilities, and have been using the ideas of “Occasionally Connected” for years… Whether a specific application is a desktop app, or a web based app, I have the data reside locally and the network is used to sync data when, if ever, it is available. The folks my apps are used by cannot make decisions regarding connectivity, or handle connection problems that might come up, so I insulate the whole thing.
Now, for us with “normal” cognitive function ( :-] ), I still think it is a great paradigm. I think you are going in exactly the right direction with Actiontastic/Actionatr, and so for me, I’ll likely switch to it (from iGTD).
This is the main reason I don’t use any all online services for my critical tasks, as I can’t be assured of access when I need it.
Also, I’m brand new to GTD, and I appreciate you putting this tool out there!
Posted on 25-Apr-07 at 2:48 pm | Permalink
Steve wrote:
Federico- the idea of ‘always connected’ Wifi isn’t close to being a reality for most of the USA either. So I agree completely with Jon.
If anything, web apps are fundamentally a compromise (online or off), because they are apps within a browser window. A desktop app has no such UI limitations, and can be online/offline/both.
The one advantage of web apps is access from any computer. It sounds like to me that Jon is building some various pieces (Actiontastic, Actionatr) that may integrate to provide the best of all worlds.
Posted on 26-Apr-07 at 11:56 am | Permalink
Michael Tuminello wrote:
Web apps aren’t necessarily stuck within the browser anymore - full screen flash apps will let you take over the whole screen and interact in ways that are more like traditional desktop applications.
The strange thing about that article is that the first sentence, which you mention, has nothing to do with the rest of the article. The first sentence should have been something like “The idea of being constantly connected is overrated.”
The main thing is to be able to get your data and work with your data regardless of whether you are connected or not, whereever you are, whatever machine you’re on. The real change is that the act of connecting is going away. To some extent this is just a holdover from old dialup days. Now, most people are connected most of the time (when I say most people I actually mean most people who might be likely to read this article - people who work in offices in the computer industry, or some related industry). In the future applications will just be usable and the connection will happen invisibly in the bg. The app works the same offline or online, and syncs up when it has the opportunity to do so, so if you access it from your phone rather than your computer, or from your work rather than your home, you are dealing with the latest data.
Posted on 31-May-07 at 10:44 am | Permalink