Python, the perpetual time suck


I used to like Python. Like others I enjoy the productivity it offers and the vast and plentiful libraries that exist. However, over time that fondness has turned to loathing.

The thing that should have been apparent to me long ago is that the Python folks don’t appear to care about end users. They seem to have lost touch with the fact that Python is very popular! Each and every time they make core language behavior changes, API changes, and deprecate things, a lot of code has to accommodate. It’s a non-trivial amount of work to keep Python code working. Especially so if you’re trying to support code that has to run across multiple versions spanning many years. The test matrix just keeps on getting bigger. The code hacks to accommodate versions becoming more and more intrusive.

The python 2 to python 3 debacle should have convinced everyone that the Python project cares more about the language and how they can make it better than the effect it has on the existing code written in it. One would have assumed that once the whole 2 -> 3 conversion was over, that things would have settled down. That the things that needed to be fixed would be done, but the incompatible changes just keep coming. It’s like the Python developers got a taste for change, perfection, they just can’t help themselves regardless of cost to the development community. I understand, it’s virtually impossible to get things exactly right the first time, but you have to let go and leave it alone. Once it’s out there, it needs to stay as is unless it’s a security hole. It’s totally fine to add features, improve performance etc., but horrible and inexcusable to break existing code.

I’ve had enough. I’m not writing anything new in Python, unless it’s absolutely necessary. The madness needs to stop. Whatever productivity gains you get in the short term are lost with the vast amount of code maintenance to keep the thing working over time.