| It makes more sense than it sounds. Client-side: Punch tape goes in, results come out. The idea of a server doesn't make sense because there isn't enough power for time sharing. Server-side: We have powerful enough computers to timeshare, but computers are too expensive to have less powerful ones for everyone. Client-side: a computer for each person doing more elaborate things is cheaper than a mainframe. Bandwidth is expensive, so it doesn't make sense to deliver all but the most basic GUIs remotely. (How many people were using remote X applications across the world in 1989?) Server-side. Maintaining application executables (upgrades on all machines, security rights, telecommuting and mobile computing) is more expensive than putting it all on a web server. However, interpreted languages are just a bit too slow to run on their own. (Java was a viable option, but applets never caught on for many reasons, one of which was that Sun didn't put the work in to make the GUIs pleasant to use.) Now, we have client side computers and javascript interpreters powerful enough to develop client side utilities that can be dynamically loaded, giving developers the best of both worlds. The balance switched again in favor of client-side applications. I expect this to hold for a while, until bandwidth and centralized processing power overtakes individual client machines to make server-side applications more valuable again. |