
Python 3 vs. Python 2 debate - bwooceli
I love the utility of Python, and though I&#x27;m not a professional developer I use it frequently at work for small projects and have done a number of sites using Django.  I was sitting down to start putting a plan together to get my son started programming, and went back to &quot;learn Python the Hard Way&quot; to see if that would be a good starting point for him.  I&#x27;ve been using Python 3 for my most recent stuff (a Django app at work), and quickly realized &quot;LPTHW&quot; was all still Python 2.  Then I looked at his rant arguing that Python 3 was just a dead-end and essentially not worth learning (and this page was updated in November of 2016).<p>I know I&#x27;m opening a can of worms, but in pro circles, what is the general consensus on the state of Python these days?  Is our dear friend Zed just a cranky outlier, or have I been under a rock and everybody just hates Python 3??
======
moxious
Python made the unfortunate but understandable decision to split the
community. It's really hard to make a non-backwards compatible change in an
open source community because you can't make anybody move.

My $0.02 is that Python 3 is clearly better, and that if you'd use python for
something new it should be 3. But I also think it's unfortunate that the
community is in the sort of state where people ask this as a legitimate
question in 2017.

Progress requires python 2 die, but it's taking its sweet time.

~~~
xrange
Can anyone point me in the direction of information of why is would be so hard
to have a

    
    
        from __ancient_history__ import print_statement, etc.
    

...especially now that most of the big projects that are ever going to get
converter have been converted? Even if it was slower / used more memory / etc.
for those programs that did use that pragma.

~~~
fiedzia
Because python 3 made hundreds of small changes here and there. Supporting
them all would not be possible. The problem is not speed and memory, but
complexity of the interpreter.

~~~
xrange
I was more thinking that the compatibility layer would maybe suck in a whole
python 2 parser, and potentially even the interpreter, operating on
potentially common objects in memory. But just how different are the bytecodes
for 2 vs. 3? Even if they were very different, I guess my question is, how
hard would it be to transpile 2 bytecode into 3 bytecode. I'd think it would
be loads simpler than what Jython does on the JVM for what I can only imagine
must be a radically different virtual machine and memory model.

I guess the real answer is probably more political rather than technical.

------
detaro
If you start a new project now, use Python 3 unless you have a strong specific
reason not to. It's the nicer language, and most of the library ecosystem has
been ported over by now.

The big issue (understandably) are existing projects in Python 2, where
porting them means a lot of work that could go into other things instead.

~~~
bwooceli
Agree. My main point of curiosity is whether Zed is an outlier in his dark
view on the language overall in pro circles

~~~
fiddlerwoaroof
I think so, but, I suspect, partly because the pro-2 people have moved to
other languages (I've moved to Common Lisp for personal projects, for example)

