Using Python 2

Terry Reedy tjreedy at udel.edu
Fri Sep 8 23:47:20 EDT 2017


On 9/8/2017 12:27 PM, Steve D'Aprano wrote:
> On Sat, 9 Sep 2017 12:23 am, Leam Hall wrote:

>> If Python 3 is not a total re-write then why break
>> compatibility?
> 
> To avoid building up excess cruft in the language.
> 
> To fix design mistakes which cannot be fixed without a backwards-incompatible
> change.

One of the semi-myths about 3.0 is that is was somehow unique in 
breaking backward compatibility.  Python has always (for last 2 decades, 
anyway) has a procedure of deprecation and removal of old stuff.  What 
happened is that about 2.4, or whenever planning for 3.0 became serious, 
removals were mostly delayed until 3.0.  For instance, the original 
proposal for changing 1/2 from being 0 to being .5 proposed doing it in 
2.5.  Instead it was delayed to 3.0.  Without the prospect of 3.0, it 
would have happened sooner.

One change during 2.x that was not delayed was the removal of string 
exceptions.

So far during 3.x, at least a few modules have been deprecated and 
scheduled to be removed.  But when support for 2.7 was extended another 
5 years, we decided to delay such removals until after 2.7 support ends, 
in order to ease porting.

-- 
Terry Jan Reedy




More information about the Python-list mailing list