Executables need to be more stable. I shouldn't have to manage versions this way at all. i.e., I should never need to downgrade a program. I think the Python 2 -> 3 fiasco broke everyone's brains.
Windows is the prime example of near infinite backwards compatibility. To an extent, less change and more backwards compatibility is good, but in my opinion, there definitely is such a thing as too much of it, too.