myths about python 3

Steven D'Aprano steven at
Thu Jan 28 01:35:42 CET 2010

On Wed, 27 Jan 2010 16:25:46 -0500, Benjamin Kaplan wrote:

> When Python 2.6 came out, Jython was still on 2.2. The difference
> between 2.2 and 2.6 is almost as big of a difference as between 2.6 and
> 3.0. In that time, you had the introduction of the boolean type,
> generators, list comprehensions, the addition of the "yield" and "with"
> keywords, universal newline support, and decorators in addition to the
> large number of changes to the standard library such as the introduction
> of the subprocess module.

THANK YOU Benjamin for injecting this note of sanity into the discussion.

I believe that, with the possible exception of the change from byte 
strings to unicode strings, virtually *all* the hoo-har over Python 3 is 
simply due to the tactical mistake of Guido and the Python Dev team of 
*calling* Python 3 a backward incompatible release. Python has had 
previous major changes in the past (e.g. 1.5 to 2.0 and 2.1 to 2.2) and 
hardly anyone made a complaint.

Certainly the move from 2.x to 3.x is a big move. If you have to support 
both series simultaneously, I don't envy your job, but if CherryPy can do 
it, so can others. But it's not qualitatively different from supporting 
(say) 2.4 through 2.6. Targeting multiple versions is always a PITA.

I also find it telling that perhaps the biggest change of all, the one 
from byte strings to unicode, hardly rates a mention from the skeptics 
and haters. Instead we get rants about how division behaves differently 
(forgetting that "from __future__ import division" has worked since at 
least 2.4 and possibly older) and complaints that print is different.


More information about the Python-list mailing list