[python-advocacy] Python 3000 question for PR

Roy Smith roy at panix.com
Thu Dec 6 00:25:21 CET 2007


> Here's my attempt at explaining this in a way that tech journalists
> may understand:

Most of this is very good.  Excellent, in fact.  Here's a few suggestions
for minor changes.

> Python 3 is not backwards-compatible with Python 2.X.

Try something like, "Python 3 is not 100% backwards-compatable".  Sounds
less scary that way.

> A conversion tool will be included in Python 2.6 to automatically
> convert most Python 2.X code to be compatible with 3, and it will warn
> about code that can't be converted.  Python 2.6 will also have a
> Python 3.0 compatibility-warning mode.

Along the lines of the comment above, it would be good to give people some
idea of how big the conversion effort will be.  Will the conversion tool
handle 90% of the job?  99%?  99.9%?  Can it be said that, "Most Python
2.x programs will require no manual intervention to convert to 3.0"?  If
so, we should say it :-)

> There will continue to be Python 2.X releases.  Python 2.7 is already
> planned, and further 2.X releases will happen if there's enough demand
> (and a sufficient supply of interested developers).

A pessimist would read the above as "Python development will fork, and
there will be two increasingly divergent bodies of Python code".  It would
be good to say something which alays people's fear of that.

> End-users (developers using Python) are not expected to start
> using Python 3.0 immediately, but should consider switching and
> migrating their code once Python 3 matures (probably by Python 3.1 or
> 3.2).

It might be good to give people a time-line (at least to whatever
precision is currently visible in the crystal ball).  If I know that 3.2
is likely to be out by the end of 2008, I might be more inclined to invest
in learning it (and converting my existing code).  On the other hand, if
the timeline is more like 3.1 in 2008, and 3.2 in 2009 or maybe 2010 (I'm
totally guessing on the dates, here), that would give me more confidence
to start a project using 2.x, knowing that codeline will be supported for
several years to come.  What you don't want to do is scare new people away
with FUD about whether they should go with 2.x or 3.x and end up going
with Ruby instead :-)

> Python 3 is a mix of innovation and conservatism.  It's the right to
> do for the future of Python.

I think you're missing a word after "right".  Did you mean, "It's the
right thing to do"?

> Fixes lots of long-standing warts:
>
> - Dividing any two numbers (integer or float) returns a float if
>   necessary.  Previously, 3/4 returned 0; if you wanted 0.75, you'd
>   have to say 3/4.0 or 4.0/2.

That's a confusing example -- 4.0/2 doesn't give you 0.75.  Oddly enough,
if you type "3/4.0 or 4.0/2" at the >>> prompt, you get back 0.75, but
probably not for the reasons you intended :-)

> If you want truncating integer division
>   in Python 3, you say 3//4 (two slashes).

Might be better as, "If you want the traditional behavior or truncating
integer division..."


> - "print" and "exec" are now a functions, no longer statements.

Typo -- should be, '... are now functions'

>   As
>   statements, "print" and "exec" were always oddballs and didn't
>   require syntax support.

I'm not sure what you mean by "didn't require syntax support".




More information about the Advocacy mailing list