On Wed, 28 May 2014 20:41:53 -0400, Terry Reedy wrote: > Claim: Another great strength of Python 2 was that programs written in > it would almost always run on the next version of Python without much > alteration. > > True.
True, but only because of the weasel-words "almost always", and "without much alteration". And for the record, for many (although not all) programs written in Python 2.7, it is still true that they will often run in Python 3 with little or no modification. > Changes and removals of deprecated features (like old style > classes) were put off until 3.0 (at the request of some of the noiser > users). That's a little unfair. Noisy users or not, Python Dev has always taken backwards compatibility seriously. Nevertheless, there have been some big changes to Python 2.x that *didn't* wait for 3.x to break backwards compatibility. A few examples that come to mind: - removing string exceptions for good in 2.6; - changes to the treatment in hex() of negative numbers; - the repr() of floats; - changes to the sequence of random numbers generated by the random number module (e.g. while random.random() is guaranteed to return the same sequence of values, random.choice is not); - removal of obsolete modules like bastion and rotor. Any and all of these things can break code that relies on them. -- Steven -- https://mail.python.org/mailman/listinfo/python-list