Many people suggest solving the backwards compatibility problem by merely running old programs in a virtual machine. This only solves part of the problem.
Sure, you can take a recalcitrant program and run it in a virtual machine, with its own display, its own hard drive, its own keyboard, etc. But there are very few types of programs (games ...