[Python-Dev] RELEASED Python 3.0 final

glyph at divmod.com glyph at divmod.com
Fri Dec 5 08:27:05 CET 2008


On 04:16 am, guido at python.org wrote:
>I hear some folks are considering advertising 3.0 as experimental or
>not ready for serious use yet.

With all due respect, for me, "library support" and "serious use" are 
synonymous.  When prompted I would say that 2.5 is probably the version 
that a new Python user should use.  It's what's already installed on 
their Mac or their Ubuntu box, and it's easiest to get libraries for. 
I've already said in my other note why I think the python website should 
say the same.

Speaking of respect, out of respect for all of you folks I have 
refrained from shouting this opinion from the rooftops.  I have avoided 
blogging about it, I've kept all my public feedback on this list, and I 
plan to continue saying nothing (elsewhere) until I have something nice 
to say.  (The occasional snide comment on IRC notwithstanding.)

That doesn't mean I'm going to tell people who have real problems to 
solve to mess around trying out 3.0, just to see if it has the library 
support that they need, when I already know that it doesn't.  Sorry, but 
community spirit only goes so far: when people ask for my 
recommendation, I'm going to tell the truth.

For example, I recently helped my sister do some work that involved 
running a Fourier transform over a large amount of data.  Doing this 
with python 2.5 took only a few minutes (numpy apparently preinstalled 
on leopard!); much faster than trying to debug the obscure errors she 
was getting out of Fortran.  Doing it with Python 3.0 would have been an 
exercise in frustration (no numpy yet at all), and even 2.6 would have 
been a pain (download, compile, install, get numpy, compile, install, 
etc etc).  If python 3.0 had for some reason *been* the preinstalled 
version, we would have needed to download 2.6 or 2.5.  For this reason I 
don't want to encourage the upstream, in this case Apple, to consider 
3.0 "ready" yet either.  2.x is still a necessity, even if they want to 
start shipping 3.0 soon.

In my experience this is an entirely typical usage of Python.  I know 
very few people who have learned the language for its own sake (and in 
fact, the two I can think of right now have long since switched to 
Haskell); it's almost always for this or that library.  In the cases 
where it is for the language itself, the conversation almost always 
begins, "Hey, I've been thinking about learning Python.  Can it do 
$TASK?".  If the answer is (as it often is) "Sure, just use Py$TASK" 
then they're immediately sold.  If not, "learn python" remains one of 
their never-done back-burner projects like "clean out the garage".  Even 
in my own case, I learned Python because it was easier to write GTK+ 
programs in than C; Java's GUI libraries having been demonstrated 
deficient, I wanted something better.  The networking stuff was a side- 
effect.

Given that this is my typical experience of Python introductions (of 
which I have done quite a few), until a majority of Py$TASK for $TASKs 
that I'm interested in have been ported to py3, then even in the 
abstract, py3 remains "experimental" and "not ready for serious use".

That's not the same thing as "bad":
>IMO it's as solid as 2.6. (2.6.1 being more solid, of course, as will 
>be 3.0.1).

I have not heard anyone saying that 3.0 is flaky, broken, or "beta".  I 
certainly haven't said that, or even thought it.  Library support is 
_the_ problem.
>Especially from the education front I've heard a lot of positive
>noises about 3.0. See e.g. an early review, posted 8 months ago:
>http://www.comp.leeds.ac.uk/nde/papers/teachpy3.html.

To be fair, if someone asked me specifically about educating non- 
programmer adults about programming, I would probably at least *mention* 
py3, if not recommend it outright.  The improved consistency is worth a 
lot in an educational setting.  (But, if one is educating children and 
interested in soliciting their genuine enthusiasm, whiz-bang graphics 
are really a must-have, not a negotiable extra.)

Note, however, that even this paper specifically mentions several 
libraries which must be available, or they will have to "abandon these 
examples entirely or (reluctantly) delay adoption of version 3.0".  I 
hope for Mr. Efford's sake that these libraries will all become 
available shortly.  They have all taken steps to produce 3.0-compatible 
versions.  However, none are available today, making it still a 
difficult choice to use 3 rather than 2.


More information about the Python-Dev mailing list