A few things have started to turn me off Python.

  • Magic and Incantations. Virtual environments, the setup.py file, understanding where you $PATH is, running Python from file or using -m, the if __name__ == "__main__" magic trick, assert statements vs. mypy and typing, static methods, class methods, whatever the third one was called, the self variable, decorators, inheritance, *args and *kwargs, Matplotlib and Pandas. The more I delved into these topics, the less engaging it becomes. Most times, you just want something to work, quickly, without having to be omniscient about its internals.

  • Command line applications. I have a preference for self-contained CLI applications and creating them in Python would have been a nightmare if it wasn’t for the Click package, which I think is one of the best-documented and, probably, the most reliable package I’ve ever used in the Python ecosystem.

I recently started to get into “uglier” looking tooling like Shell / Bash scripting, and it’s a breath of fresh air. Clear manuals and documentation. Uniques ways of performing operations, you can be clever with it but each command does one thing well without side effects. No need to rig up a whole file system to create a program; just make your script executable. It’s night and day.

I’m not leaving Python any time soon, although I’m keeping an eye on Julia, but I sure would like to have some alternatives.