ContentsUser InteractionFat clients
Previous: User Interaction | Next: Thin clients

Fat clients

For whatever reason, many people think that the only place to use Java is as they would with Visual Basic, Visual C++, or Delphi: entirely on the client machine (i.e. "the desktop"). They assume that they must use special network protocols to communicate with the data server for persistence only. My personal opinion is that this approach continues to be popular mainly because Microsoft continues to to cast Java as "just another programming language".

The key feature of the fat client approach is that the user interface consists of a number of AWT or Swing components which (shouldn't, but often does) contain business logic, to control the appearance as seen by the user, and to format and unformat the data coming from the database. Since the Microsoft Windows platform is the predominant client machine, this means that nearly all processing is done in the Microsoft environment. If developers continue to work and deploy to that environment, the safety of Microsoft's monopoly is assured.

Over the past several years, processor and memory capacities have continued to rise, nearly keeping up with the bloated software that results from putting so much of the application onto the desktop. Introduction of new features is required to keep up with expectations, so the upgrade cycle continues to generate more and more revenues for the fat client software developer. The desirable new features require even faster hardware with more memory, generating more and more revenues for the PC hardware manufacturers. The customers keep paying, and paying, and paying. This makes Microsoft popular with the vendors, and makes Microsoft lots of money.

So, other than customers being taxed to death by Microsoft and their horde of partners, where is the weakness of the fat client architecture? It sounds like as long as everyone is happy with the state of affairs, there is no need to look for another architecture, right? Well, there are a couple of really important shortcomings that Microsoft quietly, grudgingly admitting. The chief of these is deployment.

Even in a perfect world, it is often necessary to deploy new versions of an application. Deployment is costly and error-prone. Deployment of Java applications is particularly problematic for a number of reasons. In other words, as long as Java is primarily used for fat client applications, it will never be a threat to the Microsoft empire because it won't get "mind share" from the people that can make a difference... the developer.


ContentsUser InteractionFat clients
Previous: User Interaction | Next: Thin clients