What’s a rich client anyway?

Rich Client…

Yet another one of those terms that keeps coming up lately. And as a lot of those terms a lot of people think they know what it means. But to me, it is not so obvious.

Like Wikipedia. Wikipedia states that a rich client used to be the same as a thick client. But since a few years a rich client is somewhere in between a thick and a thin client.

Well that’s all fine and dandy. But if it isn’t thick and it isn’t thin, then what is it? Somewhere in between the two, yeah I got that. But where exactly.

A colleague and I had a discussion about what a rich client actually is. It isn’t a client hooked directly to a database, that would be thick. But it does do something on the client side which a thin client wouldn’t. So let’s start from there then. Perhaps it has something to do with how the middleware ties in. You know, webservices, enterprise architectures and such kinds of rocket science. Ok great, a middleware sandwich. Sounds delicious.

Middleware implies that there is something going on in there. So processing takes place in the “middle tier”. But also on the “client tier”. So basicly the desktops processing power is put to use. Would rich client mean that while alot takes place in the middle tier, but also on the client tier? Like making your application really graphic… With fancy graphics, transitions and visualisations.

But what about the desktop environment… Although the application looks and feels like any regular app it actually doesn’t have to be. A whole lot of stuff can happen somewhere else on the network. But still the application has a firm foothold on the user’s system. So might rich client imply that it’s actually a full citizen of the desktop environment and sweet and friendly with the other applications on the system, like sharing information through the clipboard?

Anyway, rich client is still a bit vague to me. If anyone has any clues about what makes a client a rich client and not a thick or thin client, then feel free to share it with me.