I strongly dislike Python 3

Stephen Hansen me+list/python at ixokai.io
Sat Jun 26 14:29:09 EDT 2010


On 6/26/10 10:59 AM, Stefan Reich wrote:
>> There's no "as long as" -- its done. Python 2 is over with 2.7.
> Well, then it is NOT done yet. And of course there is an "as long as".

Yes, it is. 2.7 is in its release candidate phase right now. That means 
there are no more features, new development on it is complete, finished.

There will be bugfixes only-- and for an extended period of time-- but 
that's it.

 > It really seems to me that you are an intellectually aggressive 
person that is not much worth talking to.

Oookaaay, you're reflecting your own aggression (as shown in your 
original post) -- that entire response is entirely neutral and 'attempt 
to be helpful' tone, with maybe two tongue-in-cheek mild teases -- 
mostly because your original message was so aggressive it was a tad 
off-putting.

>> The incompatibilities with Python 3 are intentional,
> What? For what reason? It seems that this is a pure power grabbing
> attempt. Forcing people to decide where, with proper project management,
> no hard decision of that kind would be necessary.

There were various serious problems with Python 2 which could not be 
fixed in a backwards compatible way; we've been living with them for 
years and years now, and it was decided that a single break to go back 
and correct them would be preferable to keeping them forever.

 From the fact that "strings" in Python 2 ended up doing double-duty as 
both octet sequences and arrays of character text, to yes the 
syntactical bizarreness of print >>, to a number of API's not returning 
lists as copies but instead views of the internal data structures, to 
making truncating integer division an option and not a default, and then 
various fun things in addition.

There's quite a bit of documentation out there you know.

A few of those things would have been possible in a compatible upgrade, 
but in several places the wart had no ready way to be solved without 
breaking compatibility.

Since there was more then one, they decided to go in and do them all at 
once as a one-time breakage. Even considering that, they were really 
conservative and rejected many things as gratuitous breakage. It had to 
simplify the language, clean up its expressiveness, and provide some 
solid utility to qualify.

I can't quite figure out what you define as a "power grab" -- you're 
free to continue using Python 2 forever if you'd like. If you would like 
to take advantage of the new features and capabilities, the cleaner and 
better designed language of Python 3, then you'll switch eventually.

>> Not that Python 2.7 will then die completely, I'm sure.
> Oh, so you are once again contradicting your earlier statement that "it
> is done". Seems to me you are trying to kill Python 2 a bit too fast.

No, "I'm" not trying to kill Python 2 at all. My current estimation is 
that I'll be using it for at least the next three years -- library 
conversion momentum is there, but its happening faster in the pure 
Python libraries then a few critical C extensions I rely upon.

But I am not contradicting anything: it *is* done. Finished. No further 
development will be done on it. There will be an extended period of 
support (I think I heard something like twice the normal period of 2(1?) 
years? I don't know for sure, though) where bug fix releases will be 
made. But that's it.

"Done" is not the same thing as "dead".

Done means finished: complete, not going to be advanced any further.

"Dead", in this context, means that no one actually uses it for anything 
even remotely serious. At least that's what it means when I said 'dead' 
above.

>> The pydev's have even stated it'll have a longer then usual bugfix
>> maintenance period, recognizing some people will be on the Python 2
>> platform for years still.
> Hear hear! So we do exist, and we're not going away so quickly either.

Yes, and?

As I said, it is acknowledged that it will be a long migration and they 
are supporting that migration with tools, syntax, forwards-compatibility 
features (such as from __future__ import print_function and such like) 
and an extended bugfix cycle.

And I'm sure that some people will never migrate. I rather suspect that 
will be a minority, though. Either way, what's your point?

Also, I find it *really* amusing you call *me* the aggressive one. Okay, 
sure man. The entire previ


>> P.S. Am I the only one who has never, ever, even *seen* a 'print'
>> statement in non-toy or non-bash-script-style code in any application
>> or even third-party library I looked at? Except, on occasion, for
>> quick and dirty debugging. Perhaps because I'm more used to
>> cross-platform to windows development, where a stray print can
>> actually break the entire application (depending on contexts, if one
>> is run under a service or sometimes even pythonw)
> God man, you need to stop bashing a perfectly good statement in an
> attempt to make you look like a "smart programmer" who "doesn't use
> print" in his "serious applications".

The question, though an afterthought, was serious.

I never use print except in quick and dirty debugging, and using it 
often bites me on the ass: as I said it can lead to programs completely 
crashing out if you leave a stray one in certain areas of development.

In the third-party libraries I use, and I use quite a lot of them (thank 
you, community), I periodically scan around inside just for curiosity 
sake, and sometimes to tweak something. I don't ever see prints that 
aren't commented out: invariably, someone either has rolled their own 
little private logging framework, uses Python's logging framework, or 
ends up writing to some file-like object which gets passed in or around.

I *really* don't ever use print. Not because its some damn, horrible 
thing, and all you print-users are imbeciles who need to grow up and do 
some *real* programming (alert: this is one of those tongue-in-cheek 
comments filled with some sarcasm), but because I find it basically 
almost never suitable to any sort of task I want to do when outputting.

As Thomas put it:

On 6/26/10 9:33 AM, Thomas Jollans wrote:
 > Also, do you use print *that* much? Really?

It was genuine surprise. Oh, I know people do use print, and I know 
there's bound to be someone who finds the conversion a bit complicated 
(though 2to3 does it well). But the level of wrath you're showing over 
this particular change implied a level of usage which just seemed strange.

-- 

    ... Stephen Hansen
    ... Also: Ixokai
    ... Mail: me+list/python (AT) ixokai (DOT) io
    ... Blog: http://meh.ixokai.io/




More information about the Python-list mailing list