It's Not Perfect, but I Still Love Python

It's Not Perfect, but I Still Love Python

I recently I made this statement on Twitter: "As more stuff gets haphazardly bolted onto the side of python3, I'm considering a heavy time investment in some other programming language." and it spiraled in ways I didn't intend for it to because I was mostly just venting, but alas ... I tweeted while angry and I now get to live with it. So let's talk about it.

I want to start this off by stating two things:

  1. There is no such thing as a perfect programming language.
  2. I love programming in python. The language is elegant, the community is wonderfully friendly, and the ecosystem is vibrant.

Alright, now that we've set some perspective let's go for a walk...

It's Not Perfect

There are some wonderful examples out there of why Python is not perfect and ultimately why we look post those imperfectsions. One of my favorites quickly comes to mind: Yes, Python is Slow, and I Don't Care by Nick Humrich.

I'm not the biggest fan of how asyncio and Type Hints are implemented in the language, but I was really looking forward to the features they have enabled.

It seems as though Python has taken a approach similar to `node.js`_ in the way they've implemented Let's quickly take a look at an example of how coroutines are implemented in Python via asyncio vs how Go implements them using goroutines.

I Still Love Python

I love Python. I love Fedora. Fedora loves Python.

Fedora Loves Python

Even though I don't like certain things, Python is still by far my favorite language and I will continue to double down on it time and time again until I'm thoroughly convinced that I shouldn't (this has not yet come close to happening).

The Python community has always been welcoming, the core developers put a lot of thought into what they do and there's a considerable amount of collaborative peer-review as enhancements make it through the PEP process. As such, it would be unfair to harshly criticise the decisions that have been made without knowing the full history that went into the conclusions that were reached.

Closing time

Until next time...

Docutils System Messages

System Message: ERROR/3 (<string>, line 30); backlink

Unknown target name: "node.js".