[Barry A. Warsaw]
... Note that Jim often brings up his opinion that the /only/ way to guarantee Zope Z.Y.Z works on Python X.Y.Z is to distribute Python with Zope.
And note that we ship Microsoft's C libraries with Python on Windows, to insulate users from x-release incompatibilities in MS's C libraries. Whether it actually helps Python's users varies across Windows flavors, and also across vagaries of the user's installation and configuration settings. But I think it's important to note that in recent MS OSes, they're trying to make it easier for apps to force use of the specific DLLs they ship with (although our Python installer isn't yet doing any of the things necessary to exploit these new capabilities).
Don't think Linux is immune either. Upgrading gcc or glibc can "suddenly break" programs that used to work fine. God has a sense of humor about this, though: He usually arranges that breakage show up first in obscure libm endcases <wink>.
... We're really touching on much deeper flaws in software development, with no good answers, IMO.
Indeed so! Python's not the only thing that changes in incompatible ways over time: everything does, including the compilers, system libraries, system tools, and OS policies. The first textbook I had on mathematical logic was Stephen Kleene's (yes, that Kleene) cheerfully named "Mathematical Logic". The first chapter contained a warning to the student:
It will be very important as we proceed to keep in mind this distinction between the logic we are studying (the object logic) and our use of logic in studying it (the observer's logic). To any student who is not ready to do so, we suggest that he close the book now, and pick some other subject instead, such as acrostics or beekeeping.
For this reason, I suggest naming the hypothetical "forward and backward compatible forever more" Python branch the "Python Acrostics and Beekeeping" branch.
you-can't-spell-pablum-without-pab-ly y'rs - tim