On Twitter, a user noted that IMAX theaters were controlled by Palm Pilot emulators (originally, they were just Palm Pilots). Why not rewrite the software?
Why do virtual machines emulate outdated physical hardware like disk drives, serial input devices, and obsolete network or sound cards? Path dependence.
Technology is path dependent. The activation cost of rewriting the software still probably hasn’t eclipsed the maintenance effort of keeping the original codebase and running it on an emulator. It’s probably expensive to find developers willing (and able) to modify a Palm Pilot codebase. Even more costly to change the software that’s been running for decades (Chesterton’s Fence). Of course, eventually, the maintenance cost will eclipse the switching cost, but the problem might have changed by then (what’s the successor to IMAX?).
Virtualizing can sometimes be a lazy solution, but it can also be the right choice regarding cost-effectiveness. Most technology curves look continuous, not discrete (especially one-off problems like this IMAX controller).
Matt, these are great little explanations.