Thursday, May 16, 2013

Why Web Apps?

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.


Baker said...

We teach "web apps" in our intro class. Javascript, basically. And there's no reason you can't develop locally, which is what we have our students do if they can't connect to the interwebs at home. It works.

Also, in Processing - if you want to use it - now has "Javascript mode" which turns your programs into webpages with javacript. Everything is local. When you're done, drag the folder to a web server, boom, web app. Internet connectivity is not a barrier.

Garth said...

I think the web apps were the great idea when a powerful computer was not portable. Now with things like the Surface Pro everything is in your hand, there is not as much need for all your "stuff" to be on the web. You can carry all your "stuff" easily locally. But on the other hand, I am in love with Google Drive.

Anonymous said...

I think that, in the short term, you'll always be able to find a local application to do what you need done. But, the writing is on the wall. Development in what appears in a web browser and, indeed, what you can do inside a browser is growing at incredible speeds. I don't think I ever imagined the power and capacity of modern browsers. And, we're only seeing what's been released. Who knows what's at work in the labs?

Individual preferences remain there today as long as you look hard enough. I suspect things like your beloved Tweetdeck Air serve as a writing on the wall. It would be easy enough to say that development will be discontinued - just go ahead and use it as long as you want. To pull the plug completely serves as a message that the developer wants to be able to develop and add functionality and take its users along for the ride.

There will come a time when you'll have to get on board. Preferences be darned. This is life in the future. Enjoy your local apps while you can, Alfred!

Jabba T. Spud said...

The true elephant is that since the web app requires internet connectivity, you are forced to trust that the content you are creating will stay private. A local app I run in a VM with with no networking and I can be certain that the data is only going to escape if I want it to.