ACCEPTED: PEP 285
Thomas Bellman
bellman at lysator.liu.se
Sat Apr 6 21:41:16 EST 2002
James Logajan <JamesL at Lugoj.com> writes:
> Sorry, I meant to use "major" here as in "there are new features or
> semantic changes in this release that if you use in your code, it wont run
> at all or as you expect on previous releases". Doesn't matter what you call
> it, if a 2.1 script can't run at all or as expected on 2.0, that is a major
> change in the _colloquial_ sense. I consider the nature of the changes
> between so-called "minor" releases and their frequency a major problem to
> _me_. I don't think you can realistically "argue" those problems away. I am
> hoping that you will try to accommodate my experiences into your Python
> world view before brushing them off.
I think your world-view is broken. If a program uses new features
in a release, or even just assumes the bug-fixes in that release
to be present, then the program *obviously* won't work the way it
was intended if you run it in a release old enough to *lack* those
features or bug-fixes. It doesn't matter if those new features
involve the introduction of static typing, if it's a new library
module not present in the older release, a new function, or just
fixing a bug so that Python behaves as documented. The program
which is written assuming those new features, won't work in a
Python version old enough to not have them, irregardless of how
small the changes are.
If your definition of a minor release is that no program written
for that new release will behave differently when run on the
previous release, then it is a useless release, because it changes
*nothing*, it does not even fix bugs.
100% *forward* compatibility can only be achieved by not changing
anything at all.
--
Thomas Bellman, Lysator Computer Club, Linköping University, Sweden
"God is real, but Jesus is an integer." ! bellman @ lysator.liu.se
! Make Love -- Nicht Wahr!
More information about the Python-list
mailing list