Obviously you have not tried to recompile old software. There tends to be a significant porting effort because changes in build system (autotools, I hate you) and compiler code purity requirements may cause code to not compile anymore, or might segfault despite compiling. Additionally, any dependencies to libraries make things that much worse, because not only must that software compile but the old versions of the libraries must compile also.
Emulation at binary level through technique such as virtualization may therefore be far easier to achieve.