5 ms·
Yeah there is a downside to 3.x. The transition has failed from what we can see. It was released in 2008. It's 2014 and it's still the used by the (vast) minori
by BuckRogers 12y ago
Yeah there is a downside to 3.x. The transition has failed from what we can see. It was released in 2008. It's 2014 and it's still the used by the (vast) minority of people in the Python community.
Programming isn't one of those fields, like most things in life- where 'the latest version' is always the right choice.
The best way to explain it... it's like saying everyone should adopt Windows 8, that there's no downsides.
It's hard to explain that to someone who isn't in the trenches using it because it goes against peoples natural urge to be 'updated'. Unfortunately, this transition hasn't worked out- no one is saying it but it has pretty much failed. Turned into a 20 year transition. Red Hat is supporting Python2.7 until 2027. Core dev team till 2020. Guido van Rossum works at Dropbox, who started working on a new JIT compiler (Pyston)- this year that is targeting Python 2.7.
There are actual performance regressions in Python3. I'd wait this one out for a while longer.
Python 2.7 is only 4 years old and the stability to the language has actually been a boon rather than churning out flawed release after flawed release like many Python3 versions have been.
To be honest, if someone forks Python2.7 and continues that branch, that's where I'll be going. Not to 3. That will be the end of 3, I assure you. That will be a -huge- downside to teaching Python3. :)
This transition is not in the bag yet.
- Alupis 12y agoWell, from the python.org website: > Short version: Python 2.x is legacy, Python 3.x is the present and future of the language[1] This should be enough of a reason for classes to move to 3.x. Regarding your "in the trenches comment", remember, most of the folk on HN are involved in software engineering in some capacity, myself included. No doubt it has taken a long time to move into 3.x, and it may take a while still. That doesn't make an argument to teach students a language dialect that, according to it's maintainers, is legacy. > In particular, instructors introducing Python to new programmers may want to consider teaching Python 3 first and then introducing the differences in Python 2 afterwards (if necessary), since Python 3 eliminates many quirks that can unnecessarily trip up beginning programmers trying to learn Python 2. [1] As I mentioned before, most (all?) of the major Python libraries have now been ported to support 3.x, so this leaves little reason to start out learning 2.x (unless you are setting out to maintain an old codebase, but we are talking about academics here and new beginners, so that point is moot). [1] https://wiki.python.org/moin/Python2orPython3 https://wiki.python.org/moin/Python2orPython3
- BuckRogers 12y agoOne good reason why you'd want to use 2 for learning is that any job would be using 2. 95%+ percentile chance. It's not worth debating you on this if you don't work in Python for your day job. There's just so many misconceptions in what you've said. From the way it sounds, you don't, and Python3 is hardly a dialect. The challenges of Python3 aren't for me or you, it's for library maintainers. And anyone with years of software built on 2.x (which is nearly all of us). I assure you moving from 2 to 3 as an end user is not a challenge. I have used Python3, since 3.0. It's no different 'dialect'- but when I last did (3.4), I found major performance regressions in basic functionality (JSON processing) and I think most of us have given up on Python3 (there are plenty of reasons). I'll revisit the idea of moving to it in another 5 years. These issues are going unchecked in Python3 because there are no users. This is a major problem and plowing forward with Py3's development is a huge mistake. It remains to be seen what the consequences of this are. It's simply propaganda to insist everyone is taught on Python3 as if it's the future of the language. You know it is a logical fallacy to appeal to authority. Python.org is taking a political stance, not one based on the real world. Python 2.x is the present. If you don't think so and refer to Python.org you're not programming in Python for a living. There's a major disconnect between the majority of the users of Python, and the core dev team that run that website. No one knows what the future of Python is yet, TBH Python.org should not be presenting 3 that way. In reality it's the experimental branch. If you are using Python, then use 3 if you wish. Trust me, no one cares. You won't have support from most major distros and no online hosts. Google App Engine, Azure, etc are all on 2.x. You can't be doing too much though to not be running into missing libraries and roadblocks. The silent majority will move to 3 if and when it ever makes sense. More likely we'll either go with the a fork, or simply move onto another language for the type of work that we do. Porting/testing is very expensive, why bother with that for no gains? We'll simply move to something else and the majority of the userbase will be gone. There's only gains by using 2 but think what you will. Everyone is free to use what you want, including schools. I'm just explaining why it's not as simple and straight forward as you put it. If it were that easy, there wouldn't be any controversy.
- andrewstuart 12y agoDogmatism is the reason to stick rigidily to python 2.
- andrewstuart 12y ago>>>> it's still the used by the (vast) minority of people in the Python community. You sound so certain. Tell me exactly the number of people using Python 3? Not a percentage or something else without meaning. Real numbers. Don't know eh? Why do people keep spouting such "facts"?
- andrewstuart 12y ago"From what we can see?" Who, the royal we? Or do you mean "I think it, so everyone else does too"?