I have a bias in favor of applications that run locally and take full advantage of the hardware and OS of the base platform. These days it seems like everything is moving to the web in some form or other. Scratch 2.0 runs completely in the web browser for example. Twitter is shutting down the TweetDeck AIR app that I love so much in favor of some sort of web based version. I’ve been using some web based email (unhappily) for a while now. It seems as though everything is moving there.
I can understand some of the logic. The web (or more specifically web browsers) are a common baseline that can be programmed against. Write it once and it runs on any system with a compatible web browser. A developer gets the benefit of ubiquity without having to write and maintain multiple versions. It’s cheaper.
Web apps also have the benefit that the developer can make fixes once in one place and all of the users have the benefit of changes, improvements, and additional features transparently. No update routines. No version mismatches. It just seems like a dream.
The elephant in the middle of the room is of course that you have to have Internet connectivity to use these tools. Sometimes that has to be very fast Internet as well. While Internet access is becoming more wide spread it is not yet ubiquitous. Where it is available it is often not cheap. Or fast. Internet on airplanes, where it exists, is expensive and slow. On trains (Amtrak for example) it can also be spotty. Cars? I haven’t tried it while moving as I am usually driving but given how often I find poor cell coverage for calls I don’t know that I want to bet on it there either.
School Internet connections can get pretty slow as well. We’ve had some issues lately with slow wi-fi and Internet in my school.
Even if you assume wi-fi that is fast and affordable applications can not always easily take advantage of device functionality. For example with the TouchDevelop app I can handle a “shake” event. Not so on my iPad (thought that is “coming”). It takes more work to make all the hardware available to a web app. For security reasons giving a web app too much access to hardware and local storage is not always a good idea either.
It still seems like a locally run application that is targeted to the hardware (or at least a specific operating system) is going to give users the opportunity for better performance, more functionality and less dependence on external factors like Internet connections. Maybe I’m a Luddite or maybe just a cranky middle aged man but I really want real applications over web apps.