I’ve been using Python for over 20 years and love it, but I have to disagree.
Fazal Majid
52

It seems to me people who complain about the GIL often really don’t understand what they’re talking about, or are talking about such specific use cases that they don’t matter in the general discussion.

Python can fully utilize a 32-core system, just not in a single process. Who cares if it’s a single process? Additionally most of us also don’t need to fully utilize a 32-core system all the time.

When you need to fully utilize a 32-core system you can use the multiprocessing module or e.g. multiple web application processes. For some cases this is easier in e.g. Go, for others it requires exactly as much effort to parallelize the workload.

What multithreading in Python does is allow for asynchronous coding without the typical issues multithreading brings on the table in most other languages (including Go) which is simultaneous access from multiple threads (or Goroutines) to variables etc. causing bugs and/or crashes. These are not really issues in Python thanks to the GIL.

Most practical performance slowdowns these days tend to be caused by various kinds of IO, network connections, disk writes, database access, etc. and that’s where just plain multithreading with the GIL around helps immensely already. However if you’re writing the most CPU efficient video encoder on the planet, it should sort of be obvious that Python might not be the best language to get started on.

Go is great, I love Go and use it all the time, but your claim of Go having 80% of Python’s productivity is a really vague claim with no obvious basis in reality. I’m constantly missing the ability to just “import pdb; pdb.set_trace()” and various other things that boost my productivity so much when working with Python.

I also have no idea what you’re on about with Python 2 to 3 migration being a terrible mistake, it’s a time consuming process to get a community as large as Python’s to migrate to a new major version as there were significant backwards incompatible changes, but Python 3 is great, the early versions fixed all the obvious issues with it, and it’s now gaining traction all the time. Sounds like another random baseless claim.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.