For years now, we've all been hearing about how thin-clients
the computer industry
. No more client hardware
updates, because all we'll need are cheap net-appliances
; "Infinite interoperability
!", they all shouted from on high. I, for one, have not been holding my breath
Not only is there no maintenance-free hardware on the horizon, but web interfaces suck! For those of you creating browser independent web interfaces for your applications, what has happened to the ratio of your clients' feature requests being answered with "No problem." versus "You can't do that with HTML!"; Possibly even "Sure we'll give you that tooltip, but it'll take 3 months".
Lets assume that you already know that thin-client interfaces suck. "What about the limitless possibilities we've been hearing about?", you say. Here's where we disagree. Please understand that I'm not arguing against n-tier architectures. Just thin-clients. I believe that the only reason not to write big-nasty-fat-clients is summed up by one word; Installations. The administrative cost of a fat-client is much higher than that of a browser based one (especially so, when your clients are idiots). What? You say there are more benefits? Well weigh this; You've got dozen's, hundreds, maybe thousands of clients accessing this thin-client application you're writing. To run your web interface, you buy a machine powerful enough to simulate protein folding. All this in order to eak every cycle you can off of the client machines. Why? To run the desktop software that Microsoft writes you need a top of the line machine, anyway. It's that simple. If your clients run Windows/Office they need an awfully powerful machine as it is. That means your thin-client application doesn't save anything in the hardware requirements category.
One of my college projects was "The Next Generation Search Engine." The idea was cool. Set up a search engine that also acts as a proxy, translating links in a similar way that AltaVista's BabelFish server does. Every time users go anyplace, we get to track it, have them rate search results with a form at the bottom of every page, and give them reports on their usage. There are all sorts of services that you could provide there. After thinking about it for, say, twenty minutes, I realized that the whole concept was fundamentally flawed. You've got this vast Internet (today's client base) and one-machine through which all traffic flows. If you don't see the problem here then please find something else to read. Really. Anyone still reading? I hope you don't write your applications that way. Today, your client machines have quite a bit more horsepower than people are taking advantage of. Don't rely on infinite bandwidth and server processing to build something as simple as an editable grid. The first shimmer of hope for the whole concept may in fact be .NET! It looks like we just might get administratively painless installs, small footprints, and rich user interfaces all in one. If Microsoft actually comes through on this, don't pass up the chance.