4 ms·
Ask HN: Should beginners learn Python 2 or Python 3?
There are several individual opinions online on this matter but I wanted to aggregate the sentiment of a whole HN community. Please give your reasons for your choice if possible
- bavcyc 11y ago3 unless you have legacy code. And even if you have legacy code, I'd learn 3 then learn the difference(s) required to use the legacy code.
- namekuseijin 11y agoare people still learning python? eons ago when I last looked at it, people were still making this very question LOL it's the curse of open source software: as long as the source is out there, people with legacy software will continue updating it. Perl 6 was long in the making, never made any real inroads because all of its audience was already readily invested in perl 5. it only really works with commercial tools, because people will whine much but eventually bend over and buy Microsoft's or Oracle's latest bloated money grabber. Because there's no option, right?
- snehesht 11y ago2 is a dead end, 3 on the other hand is the road. Where do you wanna go ?
- a3n 11y ago"Should beginners learn Python 2 or Python 3?" Yes, probably.
- itajaja 11y agoI started learning Python a week ago and I sat in front of the computer for hours trying to solve the same dilemma. If you look at famous Python projects, eg Flask, they still advocate for Python 2 over 3 in their documentation[1]. I found it extremely unsettling, to find the python community still so divided, after so many years. I eventually decided to learn Python 3 because I couldn't accept the idea of learning a legacy technology. But until the important projects don't take a strong take in advocating Python 3, I fear the conversion from 2 to 3 will still take a long time. My hope is that the big Python players will start regarding Python 2 as legacy ASAP. From an outsider perspective, this python 2-3 seem ludicrous, and I am sure that it gives a very bad impression of the python community. [1] http://flask.pocoo.org/docs/0.10/python3/ http://flask.pocoo.org/docs/0.10/python3/
- argonaut 11y agoFWIW, that was written 2 years ago.
- itajaja 11y agoThat's true, but even not updating such part is a symptom. I don't want to compare different ecosystems and culture, and I am very excited to starting to learn python overall, but you hardly see such things in a project of comparable size in the node or ruby world. As I said, I am loving python and Flask, but this is a symptom that the topic is not as hot as I though it should be.
- argonaut 11y agoActually, the documentation has been updated, but on the development branch (http://flask.pocoo.org/docs/dev/python3/ http://flask.pocoo.org/docs/dev/python3/). I was just pointing out that what you were linking to was out of date.
- veddox 11y agoGo for 3. Most Python 2 projects have plans or are in the process of transitioning, if that is keeping you back. Also, the two lines aren't as different as they used to be, as a lot of features get back-ported from 3 to 2. Python 3 is IMO a much cleaner and friendlier language to work with than 2. Especially if you're doing anything to do with Unicode, Python 2 can be a real pain. Also, all real development is now taking place on the 3.x series - if you want to keep up, you'd better learn it. This is a good overview: https://wiki.python.org/moin/Python2orPython3 https://wiki.python.org/moin/Python2orPython3
- brudgers 11y agoNot necessarily.
- rnovak 11y agoThis is my opinion, and it may be a personal one, but from an engineering standpoint, I think you should learn both. I think learning multiple languages can only benefit you (if Python 2 vs 3 can even be considered different languages). When I first started learning to program, I thought of every problem in terms of C++ (the first language I learned). It wasn't until I learned other languages, and really other paradigms (functional vs imperative vs constraint etc), when I really saw that a problem can be framed in so many different ways, entirely based on the language, and some of them are more elegant, more efficient, simpler, or offer some other benefit. I think if you learn python 2, and really get to grips with it's pitfalls and other nuances, and then learn python 3, you'll get a better understanding into the changes between the two languages, and I think that will give you a better overall understanding. And IMHO, more knowledge is always better.