Designing hardware is more expensive than designing software. It’s unlikely that a hardware designer would construct a system that used six different incompatible methods to do the same thing before breakfast. But because there isn’t the same up-front cost in software, software designers are often less careful.

— Jonathan E. Steinhart, The Secret Life of Programs