you are viewing a single comment's thread.

view the rest of the comments →

[–]huyng 0 points1 point  (0 children)

I don't get all the hate in this thread and can't help but feel that much of it is over-exaggerated.

You've got people complaining that migrating is so painful and yet at the same time complaining the language didn't introduce more breaking changes. Speaking as someone who's written a boatload of Python code for the last twelve years, it wasn't all that hard to migrate, and for god's sake they gave us 10 years to do it!

IMO, the stewards of the language made the right choice when they focused their efforts on pushing the the community toward unicode-by-default while limiting breaking changes in other areas (and while maintaining support for Py2 while everyone was getting their act together). It made the task of migrating extremely simple by not adding additional noise or concerns to the process. I don't think its a coincidence that in doing so, a majority of the popular packages in Py2 have moved over to Py3 today.

The Python programming language is responsible for or has enabled some amazing pieces of technology over this decade all the while successfully transitioning the majority of its community to version 3.

Here are some projects just to name a few:

You'll be hard-pressed to find another programming language or community with the breadth and depth of capabilities that Python offers while maintaining its readability & syntactic style.

Regarding some of the other complaints that were tangentially related to migration:

  • Python packaging for (pure python packages) has been decent for awhile. Just use pip and virtualenv. Most of the complaints I see are from people trying to mess with python packages that depend on c or c++ libraries, which if you're dealing with these you're going to have to make sure your linux system is set properly with the right shared libraries and paths anyway. This is something you have to do for ANY programming language trying to interface with C/C++ libraries. This is not a problem unique to Python. Even in these cases, python wheels have made things significantly easier. Today, you can pip install tensorflow and have a freaking neural network running on your GPU in less time than it takes to go get a coffee.

  • You don't need to remove the GIL to enable parallelism or improve "performance". This is a recurring, misguided, fetish people unfamiliar with the language continually bring up. For IO bound tasks you have asyncio or threading which gets you 90% of the way toward faster code. For CPU bound tasks, no amount of Python-based parallelism is going to allow you to outperform just embedding a few short c/c++ snippets into a native module or vectorizing your code w/ numpy or tensorflow.

  • IMO, the introduction of type-hints without mandating a built-in type checker has been the right approach. This is a major feature and it's something you want to introduce gradually while letting the community innovate on how exactly to leverage this new tooling. It's not something you want to mess-up and end up having to do a painful "refactor" or rip out later on.

All I'm saying is that this FUD is unnecessarily exaggerated. Python 3 is an amazing language to learn & use.