But I'm fascinated by the debates over the merits of the two. Thanks for posting the survey!
Python 2.x vs 3.x use survey
61–70 of 119 posts
Re: Python 2.x vs 3.x use survey
#62Dear Apple. Please include python 3 as /usr/bin/python3 in all future Releases. And Microsoft, if you're listening, it would be extremely sweet if you would install python by default as well...
Re: Python 2.x vs 3.x use survey
#63However, my only gripe with it was a recent experience while I was teaching Python to a kid I'm mentoring. I sent him a link this Python Book: http://inventwithpython.com/chapters/
It's written in Python 3. Not a huge deal, but it introduced some confusion right from the start (having to install Python 3 instead of Python 2 because he was running into compatibility issues).
Learning programming is confusing/challenging by itself. I imagine he's going to run into difficulty very early on while Googling for help and finds threads on Stack Overflow that were written in Python 2.
I think an important and overlooked issue is that one of Python's strengths is that it's recommended as a great first language. I think learning Python 2 still is; but starting with Python 3 may likely lead to a lot of backwards compatibility issues and make it frustrating for beginners, or at least force them to constantly translate instructions written in Python 2 to Python 3 in their head.
Re: Python 2.x vs 3.x use survey
#64The biggest thing that drives me nuts about py3 is just that its repl doesn't evaluate generators. I'm sure they had their reasons, but I use python as my go-to calculator, and when simple operations with maps/ranges give me a representation of a generator ("<map object at ...", whatever), then it's just less useful to me. I could be alone in that use case though...
Consider a generator that yields results indefinitely, or even merely millions of results. Are you still sure you want those printed to the repl? :)
A middle ground that I have not seen is automatically evaluating the first few elements and showing those as part of the output.
Re: Python 2.x vs 3.x use survey
#65"Do you think Python 3.x was a mistake?" That's where I stop filling out the survey. And that's the python community biggest problem. Moving forward, everyone needs to pick a version (and I'd pick 3). A new user just sits and spins his head. Even the training materials are all over the place.
I think that's a very significant question. I would guess that 50%+ of Python users don't use Python 3, and thus would be counted as anti-Python-3, if not for that question which allows them to say "I don't think Python 3 is inherently a bad idea." It would be nice if the question were more specific and more positive, but the survey would be worse if it were simply taken out.
I've been teaching Python in China, Europe, Israel, and the US for years. In the last four years alone, I've taught about 2-3 Python courses (usually intro, but sometimes advanced or on specific topics) each month, at companies like Apple, Cisco, Intel, and SANDisk.
In only one case did a company ask me to teach them Python 3. The rest of them ask specifically for Python 2. In some, more advanced and unusual cases, they ask me to describe the changes that will happen in Python 3. They all have legacy code in Python 2 that they cannot imagine upgrading, mostly because there are libraries (internal or external) holding them back -- and the benefits aren't obvious.
(I should note that almost none of my courses are at startups. So it's quite possible that I'm seeing a sample of large companies, which are inherently more conservative than smaller ones.)
I thought that the survey was fine. But really, there's a problem in the whole Python 2/3 split, and while I've convinced myself over the years that people are switching, I've rarely met any of them. Which is really too bad.
Re: Python 2.x vs 3.x use survey
#66Earlier quoted context omitted.
But for the newbie user it's a nightmare. If you google "Python training" you're going to get books, sites that offer training from 2.5 to 3.3. And those are recent sites (like 2012+). Not to mention pip and package management - which compared to ruby, is just terrible. I mean there isn't even an update all command in pip. And of course if you have different versions of python you have different versions of pip. With…
> If you google "Python training" you're going to get books, sites that offer training from 2.5 to 3.3. And those are recent sites (like 2012+). That's because these are all still valid versions of Python (which are still shipped with OSes). Most of the concepts you learn in Python 2.5 are still valid in Python 3.3; the changes weren't that dramatic. There are still strings, the control mechanisms didn't change, logi…
It's true that experienced Python programmers can easily identify the distinctions, and thus translate back and forth in their minds.
But for a newbie, the fact that print("abc") works on Python 3 and 2.7, but not on earlier editions of 2 (and yes, many people still use those earlier versions) is confusing and frustrating.
When I teach my Python classes, I always tell them that they should check a tutorial, blog post, or Stack Overflow answer before using it, to see if it's relevant to Python 2 or 3.
Re: Python 2.x vs 3.x use survey
#67The biggest thing that drives me nuts about py3 is just that its repl doesn't evaluate generators. I'm sure they had their reasons, but I use python as my go-to calculator, and when simple operations with maps/ranges give me a representation of a generator ("<map object at ...", whatever), then it's just less useful to me. I could be alone in that use case though...
Consider a generator that yields results indefinitely, or even merely millions of results. Are you still sure you want those printed to the repl? :)
Re: Python 2.x vs 3.x use survey
#68Earlier quoted context omitted.
The migration is so difficult that you might as well migrate to a different language and solve the speed and memory usage issues while you're at it.
What language would you recommend, that would have a similar jump in syntax, and still give you more speed and resolve memory usage? Go? Go is painfully statically typed (painful example: requiring you to cast an int to float32 to do a `>` or ` Ruby? Same speed and memory "problems" as Python. Perl? Faster, but its language design philosophy is diametrically opposed to that of Python. Clojure/Haskel? Syntax and progr…
The same cannot be said for the multitude of changes to Python.
Re: Python 2.x vs 3.x use survey
#69Earlier quoted context omitted.
I wouldn't, not yet. There's not enough support. Great ideas, but the support isn't there for it yet: not in libraries, not in operating systems, not in documentation. I don't think Python3 was a mistake, but the migration is going to take time. Cutting off either group would have been a terrible decision, and I'm glad they didn't.
This isn't actually true anymore for many, many things: - The major scientific/numerical packages support Python 3 (pandas, numpy, scipy). - The best database library supports Python 3 (SQLAlchemy) - A substantial fraction of important support libraries support Python 3 (e.g. lxml, PIL/pillow) - Django supports Python 3 I'm honestly a little confused by people who claim that library support for 3.x "isn't there yet".…
Re: Python 2.x vs 3.x use survey
#70"Do you think Python 3.x was a mistake?" That's where I stop filling out the survey. And that's the python community biggest problem. Moving forward, everyone needs to pick a version (and I'd pick 3). A new user just sits and spins his head. Even the training materials are all over the place.
It's like any software project. It's always tempting to throw everything out and start fresh, but that always takes about 100x more work than what is budgeted for.