Many organizations have been moving to progressively smaller and smaller machines. Finally, with the popularity of the PC, the cost of hardware and software became low enough that everyone could participate. What the industry failed to recognize, though, is the total cost of ownership: how much will it cost to support, maintain, and upgrade the machine regularly, in addition to its base cost? PCs cost significantly more to support than other sorts of computers, including Unix-based desktops, minicomputers, and mainframes. Instead of having one system administrator for every 50-150 users, PC environments have one administrator for every 30-50 PCs. Trying to keep everyone's desktops current with the software they need is a major headache. Now all of the PC vendors are talking about total cost of ownership. Now it's so important that a three letter acronym (TLA) has even been assigned: TCO.
In organizations with diverse needs, things become even more complex. Instead of buying x copies of product Foo, the IT manager needs to buy x copies of Foo for Windows, y copies of Foo for MacOS, and z copies of Foo for Solaris. Typically, the sort of software available on platforms like the AS/400 and mainframes is entirely different from that available on ``desktop-oriented'' machines, and even more insanely expensive.
The cost of developing software across platforms, or for a platform with a relatively small number of installations can quickly get very high. Software developers are in the business to make money. A large reason why PC software costs so much less per unit than mainframe software is because the volume allows a vendor to still make a profit by charging less. The cost of software, then, is a burden ultimately carried by the customers of the software.
This is the important part of the Java Virtual Machine. A vendor of a computer or an operating system simply needs to provide support for the Java Virtual Machine, and all of the applications written for Java simply work. Vendors of application software no longer need to manage multiple platforms. Newly released software suddenly becomes available not to just your Mac users, or just your PC users, or just your Unix users. The software is available to all of your users. And because the cost of developing and maintaining the software is lower, the prices stay constant, and low. Vendors are now addressing a larger audience than they ever have, and can rely on volume to make money, instead of huge margins. Further, because vendors no longer need to concern themselves with porting their software from platform to platform, there is more time for increasing the quality of the software.
Another important thing has taken place. IT managers can put computers on the desks of people in a way that makes sense. No longer will a secretary require a desktop supercomputer just to run a bloated operating system that is also running a web server, providing support for databases, and doing 400 things besides writing that memo. People who need a computer that will just let them write memos and use email will be able to do so. People who need a computer to build applications will be able to get one that makes sense for their needs, whether it's a mainframe, workstation, PC, or network computer. But they all work together, and have the same platform independent, modular programs available.