Web Applications vs Desktop Applications

I’ve been thinking a little about what right place for web applications is. What kind of applications should run in the web-browser and which should remain the usual desktop applications, and most importantly, why?

Until “Gmail”:http://www.gmail.com came along it was very simple. If you need something more than a simple form with text-fields and drop-down boxes, you’re better off with a desktop application. Also, if you’re not connected to the internet, you can (most of the time) still use a desktop application, but not web applications. But things have changed over the past few months.

When Gmail came around I was like “how is this possible?” How can you create such an responsive, rich application within your browser? It was mainly because excellent use of Javascript and in particular “XMLHttpRequest”:http://developer.apple.com/internet/webcontent/xmlhttpreq.html. Also, they chose not to support the really old browsers, just the newer ones. Things that once were (and still are) considered fancy for desktop applications, appear to be possible in web-applications. Like “search as you type”:http://www.google.com/webhp?complete=1&hl=en. This opened a whole new window of opportunity. And I’m wondering, how far can you take this? With most major browsers having full, and fairly compatible Javascript, DOM and XmlHttpRequest support, isn’t the webbrowser becoming the ultimate development platform?

I’ve been using Gmail for a while now, and I feel that I’m not really missing “Thunderbird”:http://www.mozilla.org/products/thunderbird/ (my previous e-mail application) that much. Why is that? First off, the internet connection problem. Years ago, when I still used a modem, I read and sent my e-mail while offline and came online only to send it. That has changed dramatically. Internet access has become a commodity. I got broadband at home. I got even broader band at university. I got Wifi at home. I got Wifi at university. Hell, even when I would start-up my iBook in a bar, I most likely will have access to the internet. Needing an internet connection becomes less and less of a problem.

The second reason is that web applications are truly roaming. Everywhere I login to my Gmail, it has exactly the same settings and content. With Thunderbird I used IMAP which a big improvement over POP3, but my spam filter has to be retrained on every PC, and my filter rules aren’t travelling with me either.

The third reason is that with web applications I don’t have to upgrade my software. If Gmail improves its spam filter, I benefit immediately. Better yet, if I mark mail as spam, I’m probably contributing to Gmail’s spam filter.

The fourth reason is that the service of companies like Google is very reliable. They have stored your data more redundantly and safely than you’ll ever be able to (within reason). Having lost my e-mails and data by a hard-disk crash (or faulty Linux installation) several times, I no longer trust singular storage of data. Companies like Google have these facilities.

What do you think, what’s the place for web applications? When is a desktop application a better choise? Any opinions on this?