Thursday, August 07, 2003


Rich Clients and Web Clients: Adam Bosworth has an interesting continuing discussion on the trade-offs between Rich clients ('fat clients') and Web clients. I worked for several years on a product (eRoom) which had a fairly slick user interface built on top of DHTML. It has made me very familiar with some of the key questions.

The key characteristics of a good web client:

  • It doesn't require any software to be downloaded or installed. This has many advantages: the same application will work on many different platforms; instant gratification for the user; and some shortening of the learning curve. But probably most important if you intend to sell your client to large companies, is they have a (reasonable) aversion to allowing end users to install software on their individual workstations and laptop. It is famously hard to install a complex piece of software on a Windows computer (I know less about what it's like on Mac and Unix but I bet it's no easier) and so it is very easy for people to screw up their computer when installing software.
  • It uses URLs and the basic navigation metaphor to advantage. For example, you can save a URL of the page you are on on your favorites, or email it someone and it will take them directly there; the back and forward functions of the browser do the right thing, etc. Not only does this make the client a well behaved web app but these are really powerful parts of the web metaphor which make it a better user experience.

So my philosophy is that:

if you are building an app that has both a client and a server, that your default choice should be to build the user interface in a browser unless you have very very strong reasons to go the other way:

  • If you aren't building the server also then you have no choice but to build a fat client.
  • If you need to control certain aspects of the client's computer then again you have no choice.
  • If you require certain specialized user interface capabilities, you may not have a choice - but people really underestimate what they can do with DHTML

8:45:45 AM  >  trackback []   comment []