[Python-Dev] email package status in 3.X

Stephen J. Turnbull stephen at xemacs.org
Sat Jun 19 15:55:29 CEST 2010

lutz at rmi.net writes:

 > I agree that 3.X isn't all bad, and I very much hope it succeeds.  And 
 > no, I have no answers; I'm just reporting the perception from downwind.

The fact is, though, that many of your "downwind" readers are not the
audience for Python 3, not yet.  If you want to do Python 3 a favor,
make sure that they understand that Python 3 is *not* an "upgrade" of
Python 2.  It's a hard task for you, but IMO one strategy is to write
in the style that we wrote the DVCS PEP (#374) in: here's how you do
the same task in these similar languages.  And just as git and Bazaar
turned out to have fatal defects in terms of adoption *in that time
frame*, Python 3 is not yet adoptable for many, many users.

Python 3 is a Python-2-like language, but even though it's built on
the same design principles, and uses nearly identical syntax, there
are fundamental differences.  And it is *very* young.  So it's a new
language and should be approached in the same way as any new language.
Try it on non-mission critical projects, on projects where its library
support has a good reputation, etc.  Many of your readers have no time
(or perhaps no approval "from upstairs") for that kind of thing.  Too
bad, but that's what happens to every great new language.

 > So here it is: The prevailing view is that 3.X developers hoisted things
 > on users that they did not fully work through themselves.  Unicode is 
 > prime among these: for all the talk here about how 2.X was broken in 
 > this regard, the implications of the 3.X string solution remain to be
 > fully resolved in the 3.X standard library to this day.  What is a 
 > common Python user to make of that?

Why should she make anything of that?  Python 3 is a *new* language,
possibly as different from Python 2 as C++ was from C (and *more*
different in terms of fundamental incompatibilities).  And as long as
C++ was almost entirely dependent on C libraries, there were problems.
(Not to mention that even today there are plenty of programmers who
are proud to be C programmers, not C++ programmers.)  Today, Python 3
is entirely dependent on Python 2 libraries.  It's human to hope there
will be no problems, but not realistic.

BTW, I think what you're missing is that you're wrong about the money.
Python 3 is still about the fun and the code.  "Fun and code" are why
the core developers spent about five years developing it, because
doing that was fun, because the new code has high value as code, and
because it promised *them* a more fun and more productive future.

Library support, on the other hand, *is* about money.  Your readers,
down in the trenches of WWW, intraweb, and sysadmin implementation and
support, depend on robust libraries to get their day jobs done.  They
really don't care that writing Python 3 was fun, and that programming
in Python 3 is more fun than ever.  That doesn't compensate for even
one lingering str/bytes bogosity to most of them, and since they don't
get paid for fixing Python library bugs, they don't, and they're in no
mood to *forgive* any, either.

So tell users who feel that way to use Python 2, for now, and check on
Python 3 progress every 6 months or so.  And users who are just a bit
more adventurous to stick to applications where the libraries already
have a good reputation *in Python 3*.  It's as simple as that, I think.


More information about the Python-Dev mailing list