Browser Client != Thin Client

From Wikipedia, the free encyclopedia:

A thin client (sometimes also called a lean client) is a client computer or client software in client-server architecture networks which depends primarily on the central server for processing activities, and mainly focuses on conveying input and output between the user and the remote server. In contrast, a thick or fat client does as much processing as possible and passes only data for communications and storage to the server.

For many years, browser-based applications have been called "thin clients", while desktop applications have been called "thick clients". Thin clients have been all the rage, as there was no need to install code onto the client machine.

However, with advances in browser development practices and technologies, many browser clients have become "thick clients".  Flash and Silverlight both require browser plug-ins to be installed. Flash and Silverlight content must be downloaded before it can be executed.  AJAX techniques and libraries require a large volume of JavaScript code to be installed in the browser cache.

A white paper released by the Microsoft Research Doloto project presented the following data:

[R]ecent studies of modern Web 2.0 applications indicate that front-end execution contributes to 95% of execution time with an empty browser cache and 88% with a full browser cache.  Moreover, browser-side caching of Web content is less effective than previously believed because about 40% of users come with an empty cache.

Indeed, for many of today's popular Web 2.0 applications, client-side components are already approaching or exceeding 1 MB of code.

[O]ver a typical 802.11b wireless connection, the simple act of opening an email in a Hotmail inbox can take 24 seconds on a first visit.

Live Maps, for example, takes over 3 minutes to download on a second (cached) visit over a 56k modem.

As developers, we must understand the implications of building thick browser clients.  Are we limiting our own productivity and creativity by building thick browser applications, when a desktop application would work just as well.  Are we limiting our customer's productivity by building them an application they must re-install every time they use it?  Are we wasting our customer's valuable time?

Published February 22, 2008