Why I prefer developing web apps

I am a big proponent of Web Applications, and I think the benefits are so clear that I am sometimes taken aback when I encounter people who want to develop Desktop applications. It is times like these when I realise that not everyone has been drinking the same kool-aid as I have 🙂

Since I have had this conversation a number of times, I thought it would be worthwhile to take a couple of minutes to jot down my thoughts on the subject. So without further ado, here are some points for and against web applications versus desktop applications (from a developers/publishers perspective).

The Benefits (go team!)

  1. No need for users to install anything, they just need a Web browser, which makes rolling out far easier;
  2. No (or substantially reduced) overhead of supporting multiple versions of the same software;
  3. New features (including bug fixes and security patches) can be deployed for all users at the same time;
  4. They are cross platform, allowing you to target Windows. Mac, Linux computers, tablets and smart phones from the same codebase;
  5. It’s very easy to see how your web applications is being used by your users, making it easier to plan new features, reward your best customers and target users with waning interest;
  6. Piracy is easier to deal with as the publisher has much tighter control;
  7. Web Applications are more suited for a recurring revenue model, which allows for a significantly less lumpy cash-flow;

Drawbacks (boo!)

Although I think web applications are the bees knees, It would be remiss of me to not talk about the drawbacks of web applications.

  1. They have one central point of failure (your server going down stops al users);
  2. They require a persistent network connection (although with HTML5 this is beginning to change);
  3. Ongoing costs for the software publisher for hosting;
  4. The user interface cannot be as complex;
  5. The user experience will have more latency;

Looks like a close one…

Wait, siz to five? Not the slam dunk you were expecting? Well, a lot of those positives could be split into many derived benefits. No install needed means less work going into developing and testing installation packages, less support requests for installation problems, less documentation around installation, less barrier to stop people from trying the software in the first place.

As for the negatives? Well, in a lot of cases we can discount their impact:

  1. Single point of failure? With proper release testing, redundancy and backups, high uptime is not out of reach;
  2. Persistent Network connection? What desktop is without one these days? And mobile networks speed, reliability and coverage are getting better every day;
  3. Hosting Expenses? Getting cheaper all the time;
  4. Complex Interfaces? Unless you are writing a graphically intensive game or Photoshop clone, then recent advances in HTML and JavaScript tools make desktop like applications in the browser a reality;
  5. Latency; Much can be done to reduce the impact of this on your user javascript and pre-fetching of data, and this might not be a problem for many use cases;

In conclusion your honor

In the end, the benefits of web applications far outweigh the negatives (was there ever any doubt?), so how about you start thinking about the application you’d like to develop, but imagine it inside your browser.