Long time ago, client machines were so thin that they didn’t even have a hard drive or a floppy disk. The screen was black and green and all the work (even the display) was made on the server.
Hardware became cheap, memory, hard drive… let’s put less pressure on the server and develop thick clients. VB, Power Builder and so on arrived.
Internet arrived a bit later with a stateless protocol carrying HTML to be displayed on browsers. That was thin and colorful (forget the black and green)… but java said, “hey, let’s write some thick applets”.
Now companies and software editors are re-developing their thick applications so they can become thin again.
I am working at the moment for a big telecommunication company who purchased a very expensive CRM tool (Customer Relationship Management). This tool is massive : 4 CD of source code developed in Java/J2EE but also with a bit of C++. This tool (sorry, I don’t want to say the name) was written in VB and the company decided now to move to Java using a thin architecture. But of course, thin is thin, not thick so it doesn’t do the same think that a good old VB application.
IT has been going back and forward from thin to rich, without really finding the right balance. Why moving to thin when your application needs to be thick ? Is it business critical or is it to follow a technical fashion ? In the case I just explained, I think that one morning, one of the company leaders though of moving to, so called, new technologies. When his architect told him that moving from VB to Java 2Go of source code would take him 5 years and many millions, the leader though “hey, let’s write a little engine that will translate on a one to one basis VB to Java… and for the client side, let’s do the same, one VB screen to one JSP”.
Thick, thin, rich… what else ?