I’ve been following Jeff Atwood’s Twitter feed for a little while now. I find that I enjoy his blog much more than his tweets, which sometimes tend toward preachy elitism. For example, in a recent tweet he said: ”[T]he desktop is dead. web apps won,” referring to the years-old debate about desktop apps vs. web apps, or thick clients vs. thin clients, or whatever you want to call it.
Web apps are certainly the fad for startups right now, I’ll grant you that. If I were a venture capitalist, that’s definitely where I’d be throwing my money away, and if I were a programmer (which I am), that’s where I’d be concentrating most of my skill set (which I am).
But does that mean web apps “won?” I guess it depends on how you define winning. Are web apps popular? Sure. But are they technologically superior to desktop apps? In a word, no way.
Web apps are “winning” only because that’s where the easy money is. Some of that is driven by simple laziness: It’s much faster and easier for an adventurous startup company to build and sell (advertising for) a cool web page than it is for them to build and sell, say, an innovative new word processor for Windows. Everyone knows it’s technically possible to build a better, faster, smarter word processor, but who in their right mind would try to compete with Word?
For myself, there are plenty of applications that I prefer to run locally on my computer. Like, basically everything I do on a computer. Writing software? Check. Writing a document? Check. Writing music? Check. Writing this blog post? Check. Writing an email? Check. Playing a game? Check. Browsing the web? Che… oh, okay, you got me there. Almost everything, then.
You might be asking why in the world I would possibly want to do any of that on my desktop when I could fire up a browser and go to Google Docs, WordPress, Yahoo Mail, or (insert any one of a million Web 2.0 sites with a silly name)?
Answer: Responsiveness, stability, and even more importantly, data ownership.
Does anyone really think that fetching code and data from a server somewhere out there on the Internet will ever be as fast and reliable as fetching it from a local hard drive? Sometimes network latency is not anything to worry about in an application (eg. data entry apps), but most of the time, people want things to happen on their screen right now. I’ve lived through the days when you had to watch the computer draw interfaces pixel by pixel on the screen, and believe me, I don’t want to repeat it. Even my wife — who I think is representative of the typical computer user — is often frustrated by how sluggish web pages load even over broadband.
But even if GMail ran exactly as fast as Outlook Express (and it’s close) and never, ever went down, there is still the philosophical issue of data ownership. The bottom line is that I want my emails on my hard drive, not Google’s. I don’t want to relinquish the responsibility for the safety of my precious, precious data – my intellectual property. Many people probably don’t care, and maybe some are even happy to outsource the job of data management to nameless, faceless foreigners working for pennies a day. To those people I say: Good luck with that and I hope the startup company of starry-eyed marketing school grads you’re depending on stays in business forever. (Oops, I think I just dissed 99% of all Web 2.0 startups.)
The way I see it, the only way to make web applications competitively fast and responsive is to keep the data on the servers with the application. So users need to ask themselves: How important is my data to me? Do I really own it or not (not just legally, but physically)?
To put it another way: If you owned a car, would you store it in someone else’s garage? Some people do. Some people (like me) wouldn’t dream of it.
That’s why I think there’s still a place for desktop applications.