[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