It hasn't been all that long since I poured verbal cold water on the idea of virtualization on the desktop becoming common. I've been studying virtualization both as a technology and as a market force now for several weeks and I find I must admit I was wrong and just how wrong I was.
What convinced me I was wrong was not my reading, but rather a device Andy Markham sent the cast members after he was on the show. It's called the "Verbatim Store 'n' Go". Basically, it's a one gigabyte flash memory stick with a twist; You can take enough of your home Windows desktop, including settings, software and data, with you to work in your chosen environment and with your choice of tools on any other Windows PC. And when you leave that PC, none of your data or settings stay behind. You leave no footprint at all! Not a trace of your presence remains. All this is due to some clever software, including a sort of micro operating system. It's a very cool tool and priced very affordably.
Extend that idea just a little bit, as will undoubtedly happen in the normal course of events. Imagine that when you buy or build a PC, there is no operating system as we know it installed. Instead, there will be a "hypervisor", which is the current buzz-word for the host OS in a virtualization scheme. And we can carry a device very much like the Verbatim one, only larger, which contains our chosen operating environment, data and whatever software we choose, making it possible to work on our own PC without our own PC! Plug in your USB device, give it a minute (probably a lot less than a minute) to boot up and you're ready to go. Anything too large to be carried with you on the device would be available over the Internet using a built-in VPN setup to access your home machine.
If the hypervisor is well implemented, any user could use literally any work environment they chose on any PC. Like Linux? How about the Mac OS X? You could run them all on the same hardware. No problem at all. Companies like Microsoft will jump at the chance to implement this. Why? Well, because the OS and software are not tied to any hardware, they can be made to expire. You pay by the year and the software publishers get a very much evened-out revenue stream. And rolling out a new OS every few years might also become a thing of the past. Instead, new features will be added yearly, or even quarterly, in a gradual way, so as not to rock the user's or the IT department's collective boats.
A company could standardize file formats and write applications in "OS neutral" languages like Java, RealBASIC, Python and C# and even workers using the company's hardware would be free to use whichever environment they chose, without affecting the company at all. Just load the appropriate runtime environment and get to it.
The PC makers will like it, as well. They only have to cater to a hypervisor, instead of an operating system with a user interface. The hypervisor is much cheaper to develop or buy and, given decent standards are adopted, the PC maker can capitalize on that. There is so little profit margin in PC manufacture that I should think the companies would welcome not having to bundle any software at all. They can make a further profit on selling the devices that hold the OS, etc. to the users and if they wish to bundle software, that is where it will be done. (Though I suspect that this setup will be the end of bundling, simply because it is such a pain for the companies involved.)
From my small experience with virtualization, I can imagine that if a virtualization setup is well written and implemented, it will be almost impossible for the "guest" OS and it's software to bring down or lock up the machine, too. You might have to issue a command to force quit an application once in a while, but the underlying hardware and software will hum happily along. True crashes will be very nearly a thing of the past. And if trouble does happen in that scenario, a very rapid reboot is possible because the hypervisor is still going strong and it's connection to the hardware is unbroken, so nothing needs to be initialized again. Only the guest environment and software need restarting.
Changes or upgrades in hardware will require modification to the hypervisor, but that probably will entail no more work or bother than a change in drivers does now. No changes to the "guest" device would be necessary as the hypervisor handles all interaction with the hardware.
I do believe I'm looking forward to seeing how this plays out. And if I'm wrong, you listeners are allowed to laugh.