Where are web apps heading ?

Updated: Here’s a link to DOM Storage that’s a little bit easier to read compared to the WHATWG one :)

I just finished reading this excellent article by Matthew Gertner of AllPeers that gives people a fair idea on how the applications world might look like in the next 5 years or so.

In retrospect he hit the nail straight on the head but I think he down plays the web app future just a tad because frankly I think that’s the future, since probably none of the big players will come through and get anything widespread enough compared to a web browser without having some serious drawbacks.

Given web apps have certain drawbacks like Matt rightfully lists, you need internet, you don’t control your own data as much as you’d do on your own computer etc. etc. etc.

And then alas he mentions a technology I’ve been looking a bit into for the last couple of weeks, offline support for web apps, something that will totally change how we use things like gmail, online spreadsheets, our blogs and what not.

Now there are two ways of doing offline support for web apps, one is the native Firefox 3 offline support using the WHATWG DOM Storage (store things like emails, users info, blog entries and such) combined with offline cache available as a patch in Firefox bugzilla which offers you to cache things offline (no not just normal cache, silly person (-; ) and offline events

Now DOM Storage is pretty interesting but has a bit of limitation how much you can store it in or more like how much you should, for example it is a bit silly storing whole gmail in there, only the 50 newest emails would be wise or 50 in each of your labels or similar but this will be up to the developer of each application to define and tweak.

Chris Double which recently got recruited by the Mozilla Coporation, is working on the offline support among others and is making Zimbra offline aware as a proof of concept and even has a screencast of it available here

Robert O’Callahan of the firefox fame also posted some notes about offline support at his blog from where I actually found the Zimbra offline article by Chris :)

A simple offline example app done by Mark Finkle can be found here, quite interesting if you have Firefox 3 at your disposal.

Of course this is all just FF3 which isn’t very exciting for those developing for IE/Opera and other browsers but Dojo to the rescue! Multii browser support for offline content, I’m not sure how good it is or anything since I haven’t yet had time to look into it but it sure sounds interesting :)

Tho I’ve been reading that Opera is going to implement some of the WHATWG standards in some future version but I also read something about Opera doing their own specific things which makes me a bit eerie, tho if they follow the standards on the basic things then we should be fine for the most parts.

IMHO this is where we are heading with web apps, blogging in space without internet and sync when we get back into the Mars station, this is where we’ll take over the world, this is where applications as we know it will be ereased from history!! :) :) :) haha

Another thing I envision big things for is XULRunner but more on that later, perhaps, maybe, when I find time.

Do you know of any similar libs as the DojoToolkit ? Comment comment comment :D

5 Comments to “Where are web apps heading ?”

  1. One thing to note is that managing an offline version makes things quite complex as you have to synchronise everything.

    Use case: I started editing a blog post offline while commuting. At work I start editing a blog post online. When I go home I synchronise the offline content from my commute. Requires some work :)

  2. Yeah it can be complex but if you take a peak at the links I provided then you’ll notice it’s not all that complex, we have online/offline events so we just have to make things like

    if (online) {
        sentToSite()
    } else {
       storeLocally()
    }

    IIRC you just have to attach functions to the listeners, read http://ejohn.org/blog/offline-events/ for further info, this is the whole anchor of the online/offline part, dom storage and the offline cache are more things those event functions will take advantage off when offline :)

  3. Reading your comment again I see a logic flaw, the thing is when you go online again it will sync with the server, so before even starting to write the online post at work the commute post will have been synced already to the system so there is no notion of merge or such that needs to happen

  4. My example was indeed poorly written. I was thinking of a situation when things are done offline for a period of time while at the same time there are things happening online.

    Version control system papers should have a lot of info on that. Merging can become complex :)

  5. I must admint, I didn’t think of that scenario so your first comment makes a lot more sense to me now than before ;-)

    There would indeed have to be some merge mechanism for that kind of situation but well thinks like locking systems (dokuwiki and other wiki systems for example.) will shut out most of those problems but of course if you go offline and then start to edit your post and after going offline with one window then start edit it the same doc as in the offline session, this is of course a very odd case but well does happen :-)

    So now we need proper merge things in PHP (can’t remember one at the top of my head, iirc we have a diff package in PEAR/PECL which can be used if the system detects changes) :)

Leave a comment