[Python-ideas] Python 3000 TIOBE -3%
Stephen J. Turnbull
stephen at xemacs.org
Mon Feb 13 05:43:35 CET 2012
Terry Reedy writes:
> On 2/10/2012 10:32 PM, Stephen J. Turnbull wrote:
> The issue is whether Python 3 has a "strong imposition of Unicode
> awareness" that Python 2 does not. If the OP only meant awareness of the
> fact that something called 'unicode' exists, then I suppose that could
> be argued. I interpreted the claim as being about some substantive
> knowledge of unicode.
I interpreted the claim as being about changing their coding practice,
including maintaining existing scripts and modules that deal with
textual input that people may need/want to transition to Python 3. As
Paul Moore pointed out, adding "encoding='latin-1'" to their scripts
doesn't come naturally to everyone.
I'm sure that at a higher level, that's the stance you intend to take,
too. I think there's a disconnect between that high-level stance, and
the interpretation that it's about "substantive knowledge of Unicode".
> In any case, the claim that I disagree a not about people's
> reactions to Python 3 or about human psychology and the propensity
> to stick with the known.
OK. But then I think you are failing to deal with the problem,
because I think *that* is the problem. Python 3 doesn't lack simple
idioms for making (most naive, near-English) processing look like
Python 2 to a greater or lesser extent. The question is which of
those idioms we should teach, and AFAICS what's controversial about
that depends on human psychology, not on the admitted facts about
> In response to Jim Jewett, you wrote
> > The fact is that with a little bit of knowledge, you can almost
> > certainly get more reliable (and in case of failure, more debuggable)
> > results from Python 3 than from Python 2.
> That is pretty much my counterclaim, with the note that the 'little
> bit of knowledge' is most about non-unicode encodings and the
> change to some Python details.
And my counterrebuttal is "true -- but that's not what these users
want, and they probably don't need it." That is, they don't want to
debug a crash when they don't care what happens to non-ASCII in their
mostly-ASCII, nearly-readable-as-English byte streams.
> > The point is that the user case you discuss is a toy case.
> Thanks for dismissing me and perhaps a hundred thousand users as a
> 'toy cases'.
Thanks for unwarrantedly dissing me. I do *not* dismiss people. I
claim that the practical use case for these users is *not* 6-sigma-
pure ASCII. You, too, will occasionally see Mr. Fuentes or even his
Israeli sister-in-law show up in your "pure ASCII, or so I thought"
texts. Better-than-Ivory-soap-pure *is* a "toy" case. Only in one's
own sandbox can that be guaranteed. Otherwise, Python 3 needs to be
instructed to prepare for (occasional) non-ASCII.
> Exactly, and finding the Python 3 version of the magic spells
> needed in various cases, so they can be documented and publicized,
> is what I have been trying to do. For ascii-only use, the magic
> spell in 'ascii' in bytes() calls.
Except that AFAIK Python 3 already handles pure ASCII pretty much
automatically. But pure ASCII doesn't exist for most people any more,
even in Kansas; that magic spell will crash. 'latin-1' is a much
better spell (except for people who want to crash in appropriate
circumstances -- but AFAIK in the group whose needs this thread
addresses, they are a tiny minority).
> > I don't know of any nice way to say that.
> There was no need to say it.
Maybe not, but I think there was. Some of your well-intended
recommendations are unrealistic, and letting them pass would be a
disservice to the users we are *both* trying to serve.
More information about the Python-ideas