Webapp or Thick Client?

This question seems to be one of the leading questions in software development right now. Whether to go with the classic software style of a thick client that is downloaded onto the customers computer or to go with a Webapp that is hosted centrally.

With the launch of Google’s Docs and Spreadsheets the competing methodologies are laid out clearly. Microsoft has Office, the epitomy of fat clients, while Google has their webapps. Not only are these different application styles, but different philosophies entirely. Microsoft offers every feature a document writing user could ever want. You could spend years digging into every little nook and cranny in office and still not use everything that it has to offer. Meanwhile, Google is taking a track that has been pushed by a new breed of designers like 37Signals. This philosophy is to just offer what most people need to get most of their work done and focus on making that subset as strong as possible. By keeping things simple you actually create a more usable product.

The reality is that there is room for both philosophies as users have different needs. What will be interesting to see is if Google can accomplish their goal with the webapp. Web based applications have a lot of advantages over fat clients, maintenance, support, and upgrades are all much simpler when working with a centralized application. The problem has always been with how much you can make a browser do and would the browser behave. IE, Firefox, and Safari all behave very differently in certain situations and writing an application that works on all of these platforms can be difficult.

One thing that Google has going for it is that there is a whole lot of work and excitement happening in browser based apps right now while there just isn’t anything new happening with fat clients. The network is a more important part of the computer every day and available bandwith has become the limiting factor with computers now that the cheapest entry level computer purchased at Walmart can handle most any user’s tasks.

Another advantage is that as the browser becomes more of a standard way to run applications, bits of functionality can be developed to be shared with different applications. The whole mashup idea is still a bit ahead of its time as early implementations of this were based on APIs that weren’t really meant to be used together. Companies were exposing bits of functionality without really thinking things through. Others were building applications on these APIs without concern for them being revoked at some point in the future. The relationships were often to only one parties advantage, everyone was just experimenting to try it out. Now that the idea has settled down a bit and business models can be built around the APIs they’re maturing to the point where they can be safely used.

The product that I’m currently working on, YOUnite, actually splits the difference between the two philosophies. We’ve created what we call a Webtop application. It’s a downloaded client that runs a embedded application server on the local desktop. The user then interacts with the application through their browser. There were several reasons technically to go this route, but it’s still yet to be seen if we’re ahead of the game on this type of application or creating more trouble than it’s worth by going this route.