I'm Michael Suodenjoki - a software engineer living in Kgs. Lyngby, north of Copenhagen, Denmark. This is my personal site containing my blog, photos, articles and main interests.

Updated 2011.01.23 15:37 +0100


Online vs. Offline?

I'm in doubt. Maybe I'm too old. Maybe I'm like the old farmer who on the back on his house has installed an electricity generator participating the event in where the power supply is broken (the so called blackouts). May be I'm like my father who prints out all his emails on to paper - just to be safe - in the event that he cannot anymore access his emails on his computer. It do happen. Not often - but sometimes. Sometimes it is during peaceful times and sometimes on bad times. We all cross our fingers. Hopefully it never will happen in bad times, but we, as realists know, it will happen sooner or later.

The question is how much effort we should put into preparing ourselves for the situation? Can it pay off? Is it worth it? I'm sure that I can find some material explaining this. Maybe you can?

In the recent years there has been more focus on developing and delivering multi/self-powered products - they act as electricity offline products. Funny enough there is an increased demand for these products (see e.g.). They are like the personal pc's introduced in the 1970's. They are independent. Maybe it is the start of a multi-powered product revolution.

But what about software application development?

What I would like is an analysis of whether we should - now - build our software applications to work in offline contexts? Build for the event in where we cannot connect to the network - to the Internet?

Above: Presentation from www.softricity.com. Click to view.

Surely, the network connection is not exactly, at this point in time (summer 2007), ready for primetime with sufficient reliability. It is surely not as reliable as electricity. But we're getting closer and closer. Most computers (desktops, laptops, tablets, phones etc.) will "soon" be able to connect to the network anytime - anywhere. (This has been said for years now - but we're still working offline very often)

Many developers are already knowing this of course. They are already building full blown (web) applications which requires full-time network connection. No network connection - no application benefit.

But some of us are in doubt. Should we build the smart application which can work online as well as offline?

If the effort - the costs - in doing this is relatively small I see no reason for why not. But really - at this point in time I believe the costs is too expensive. There isn't enough frameworks and libraries available which easily supports the smart application. So I'm afraid that the smart client idea will disappear with the increased reliability of the network connection. Something that most developers already know. Except me.

On the other hand if the availability and the cost of building the "smart" offline/online support into the smart client application were very low - why shouldn't everybody doing so?

I've always preferred independence so I'm inclined to be favor of building smart applications that works online as well as offline. What are you?

Updated May 24'th, 2007: See also:

Updated May 31'st, 2007: Things are cooking up fast about this topic. It's hot...

Updated June 27th, 2007: Additional relevant link

Updated July 10th, 2007: Additional relevant link