I'm reading Paul Graham's "Hackers and Painters":http://www.paulgraham.com/hackpaint.html, a collection of essays about computer sciences (also suitable for non computer-scientists). Very worthwhile reading, I recommend getting it. Many of the essays can also be found on "Paul Graham's website":http://www.paulgraham.com/articles.html, but in particular with essays in Paul Graham length, you might just prefer the book. Anyway, the day before yesterday I was wondering about the place that web-applications have in this world, and what their advantages are over desktop applications. Yesterday night while reading in Hackers and Painters I read "The Other Road Ahead" chapter (also available "online here":http://www.paulgraham.com/road.html). It was exactly about that the same issue, and Paul Graham makes many interesting points some of which I'll summarize here (some of them I already mentioned):
* Web applications don't have to be installed or upgraded by the user and therefore are very user-friendly in that respect. * Web applications are a good solution for many of the applications people use today. Not for highly interactive software like Photoshop though, but only a small segment of software needs that kind of interactivity. * The user is no longer bound by location, nor the software or data reside on the user's computer. If your laptop gets stolen, you don't lose your data. * It's easy to try and buy software. No downloads, no distribution, no remote installations. * Web-applications make collaboration easy, as basically everyone is using one "instance" of an application. * Your data will be safer. Crashes will occur in server farms. ISPs are specialized companies, they know how to deal with this. They will actually do backups. If they wouldn't, they'd never get away with it; it would end them. * The user is less likely to get virusses. They don't have to install some suspicious .exe they download from a website. The user will feel safer. * Web application developers have more freedom in tools they use. If they want to write some part of the application in Java, and the other in LISP, they're free to. They don't have to worry about the user having those installed, as they only have to be installed on the server. * Web applications consist of many individual parts: web servicing parts, daemons that monitor the running processes, indexers that index content, scripts that are generating statistic reports etc. It's a city, rather than a building, like desktop applications. * There are no hardware requirements for the user. Hardware requirements for the server can be changed. If a new version of your application needs another gig of RAM, that's fine, just put it in. Users won't be bothered. * Releases are continuous. Most of the time there's no point in using version numbers. As soon as some feature is written, it's released. This can be once each month or five times each day. * Bugs can be fixed on the spot. * Because all activity takes place on your servers you can see how people are using your application. By analysing logs you could find out that on some page people always click the back browser-button. They probably don't know what to do there, or were mislead in going there. * Web applications need less people working on it. With desktop applications there are the programmers, people fixing up releases and distributions, people doing ports for different platforms, maintainers of older versions etc. Web applications require only programmers, there's no such thing as distribution or porting. This allows for much smaller teams. * Subscriptions are the most natural way to charge for web applications. This makes sure the money keeps coming in, unlike one-time fees like much desktop software. People don't like paying subscription fees for desktop applications. Web applications are services, so paying a subscription fees is the logical way to go.
You can read the whole essay "here":http://www.paulgraham.com/road.html.