Pep 3105: the end of print?

Steven D'Aprano steve at REMOVE.THIS.cybersource.com.au
Fri Feb 16 05:35:11 EST 2007


On Thu, 15 Feb 2007 19:04:34 -0600, Edward K Ream wrote:

>> Isn't the very concept of major releases (1.x, 2.x, 3.x) that they *can* 
>> be not backwards-compatible with previous releases?
> 
> Not at all.  Backwards compatibility means that one can still run old code 
> provided  the code eschews new features.  Python releases have generally 
> been backwards compatible with previous releases, with a few minor 
> exceptions.

That's fine, but Python 3 has been explicitly stated to be where Python
will have backwards _in_compatible changes made.

That's not to say that all Python 2.x programs will break under Python 3,
but some surely will.


> For example, my app runs fine on Python 2.2.2 through Python 
> 2.5, and little work was required to make this happen.  In fact, my app 
> should run find on Python 3.x, but that's because it doesn't use print :-)

It's too early to say for sure what will run under Python 3, because it
hasn't been decided fully yet, but it is quite probable that it will still
compile and/or run and possibly even do what you intended.


> In other words, the consequence of pep 3105 will be that *nobody* who wants 
> their app to be portable will be able to use print until *everybody* has 
> converted to Python 3.x.   I doubt that is what Guido had in mind, but I may 
> be mistaken :-)

I'm pretty sure you're mistaken. Python 3 will be the release that breaks
code. Hopefully very little, but there almost certainly will be some.


-- 
Steven.




More information about the Python-list mailing list