Hacker News new | past | comments | ask | show | jobs | submit login

I have extreme Python 2-vs-3 fatigue and that's only from seeing the topic on news aggregators for years on end. I can't fathom how tedious the topic must be for those actually in the Python community for the whole time.

Rather heavy Python user here, though a little bit less over the last year: I think the whole thing is largely overblown. I've fully migrated to Python3 three years ago, was expecting horror given all the articles and 2vs3 drama, yet it was done very quickly and painlessly.

I've gone through migrations that were much more tedious and painful. Not so much with languages but with dependencies/frameworks: the like of Django, Django-rest-framework, Unity 3D, and pretty much anything javascript (apart from javascript itself).

I feel like it's the news that are tedious mostly. Py3 has been an exciting upgrade, but almost a non-event in the grand scheme of things. At least in my Python dev life.

The migration is done. Anyone who's not starting projects in Python 3 now will soon be obsolete, because the community has definitely moved on.

Community might have, but industry hasn't. You're right, the dust has settled. If you haven't migrated to Python 3 yet, you likely never will. All the reasons to use 2 or 3 have already been established. I doubt there will be any more new information that will sway people from the stance they've already taken.

It's not really bad anymore. I moved to 3 about two years ago now, and haven't looked back. There was a brief period of working with polyfilled six hacks, but currently the community and momentum are largely behind 3.

There was a point where there was some FUD around the migration, painting it as a sequel to PERL 6. However, the community managed to turn it around. To their credit, orchestrating large breaking changes to a popular language with a diverse set of use cases is fundamentally a very challenging task.

The main holdouts for Python 2 are large organizations which have a lot of existing/working legacy code. The majority of new Python projects seem to be using Python 3.

Now that the work is nearly done, we can all enjoy a better Python.

I very recently moved to 3.6, from 3.5. There's a saying that a luxury once sampled becomes a necessity, which sums up my opinion on the new f-string syntax.

Tedious? How so? Because there is no more Python 2 vs 3 anymore. Whoever hasn't migrated will be stuck using deprecated libraries and outdated tools.

Yes, Python 3 was initially a risky endeavor, but in the past couple of years it has cemented its position as the true and only version of Python.

For me, completely outside the Python community, I really can't fathom how migrating to the next major version of the language can protract for so long... And I have been in some painful migrations in my life... Java 1.4 to 5 in a >1M loc "enterprise" application. From an object oriented database to oracle in the same application. But it didn't last for close to 10 years. It's simply a complete nonsense to my eyes.

It's not 10 years, just 2-3 years. Python3 for the longest time was not useable. Only with 3.3 it became stable enough, and it took until 3.5 until it was even good enough and many libs were ported.

On top of it, Python2 works so well and python3 introduces so few advantages that doing an expensive port is just not feasable for many codebases.

And I guess that python is used mostly by smaller companys with constantly lacking manpower and money plays also an important role.

The way I see it:

- 2008-2012 Python 3 as a language becoming usable

- 2012-2016 Libraries gaining Python 2 compatibility (and dropping 2.4 and below)

- 2016-2020 Applications porting now that most libraries are compatible.

I think the main reason was a lack of agreement between the community and the language maintainer(s) (see: Guido the BDFL). I highly doubt something like this would have happened if the community had been involved. The language maintainers themselves have clarified that introducing breaking changes was a mistake in hindsight and that it will never happen again.

Anyways, the fiasco is over and Python 3 has emerged as the victor, so there really is no use discussing the issue anymore imo.

>The language maintainers themselves have clarified that introducing breaking changes was a mistake in hindsight and that it will never happen again.

What are you referring to? I haven't heard or read any core developers say anything close to 'introducing breaking changes was a mistake in hindsight'.

I recall reading something along those lines, but I could be mistaken!

There's a big difference between 'Python 3 was a mistake' and 'we won't make Python 4 like Python 3'. This article is saying the latter (and implicitly argues against the former).

100% sure I read that from one of the core devs but cannot find the reference.

I think the reasonable middleground for most Python devs right now: if a medium or large project already written in Python 2 is working well, you can keep it as is, but new projects should be written in Python 3. That unfortunately isn't an option for many people in corporate and other bureaucratic environments, but when it is an option there's no reason not to do so.

In last few years, Python 3 has got momentum. Frankly, for me it feels great to follow this progress.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact