I know it’s just a meme but Python is seriously the worst language I have ever worked with. Not because of language itself, this is fine for scripting, but because of the terrible tooling. pip is the most unreliable package manager I’ve seen, packages installed system wide collide with what you’re trying to install for you project, environment virtualization and version management is a mess with venv/pyenv and more doing same things differently (the standard can’t decide on just one tool for that) and on top of that you have all the ruff/black/mypy and many more offering same features but not really with a new tools coming out all the time. I not a Python expert but even people I worked with that are were confused but all this. I haven’t seen such a mess in any other language.
anytime I have to maintain python I do it inside a container. Why? because anytime you deal with pieces of shit directly, you wear your PPE.
everything you said, 10,000% agree. god forbid the Python purists hear it though, they’ll tell you that you’re just too stupid to understand the language enough to use it and will compare it with literally every language just to prove that they have the “biggest” python.
The main problem is that Python purists have hardly used any other languages so they don’t realize how shitty their tooling is. The most direct comparison is Ruby and the tooling difference is astronomical. I always refer to this article for how bad the situation is https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
the only thing pythonists love more than intellectually dunking on devs is hating Ruby. it’s like a universal character flaw they all mistook as a benefit.
Yeah it’s pretty crazy, like Ruby was extremely well known for how good its tooling is, so much so that it inspired numerous other language package managers and build tools like elixir’s mix, rust’s cargo, and the lock files in npm and composer.
The testing frameworks everyone uses today are directly descended from Ruby’s RSpec, almost to the letter. BDD and TDD were pioneered by Ruby devs.
Extension functions in Kotlin are a direct result of lessons learned from Ruby metaprogramming while Rust and Elixir’s syntax are both directly inspired by Ruby.
The beauty of Ruby’s DSLs also spread to almost every new language. Kotlin and Gradle DSL scripts are possible because of Ruby.
Rails inspired an entirely new paradigm of web frameworks, where things were supposed to be easy by default. Laravel, Spring Boot, Phoenix, Django all are directly inspired by this, even though Django came out first it wasn’t easy to use.
——
Python gave us… Jupyter notebooks, whitespace which no one uses, and not much else.
Thanks, I simply don’t use Python. As I said, languages that have to create new tools all the time because the official tools are broken are not my thing.
They have changed this but only very recently with the Python Install Manager which forces programmers to develop the way they should have been with venv. Like Sept 2025 recently even though it’s been a valid language since 1991…
Pyenv and venv are independent and don’t do any ‘same thing’, so you must be really talented to mess them up or be confused by them.
I also don’t know what’s difficult about understanding why the system-wide installation exists or how to add local modules to the path (which venv does for you anyway).
Yes, you have to be talented not to get lost in the pyenv (‘env’ as in ‘version’ management), venv, virtualenv, pyvenv and god knows what else. All those tools either manager versions, virtual environments or both. Super simple! I’m sure you’re enjoying working with them and that’s fine. I avoid it.
Have you ever actually read the manual? I have. It’s thousands of words for how to build a single python library. If you look at almost any other language it will be a tenth of that. Ruby’s is literally like 4 commands total. The only people that think Python tooling is even halfway good are people that have never used a language with proper tooling.
I know it’s just a meme but Python is seriously the worst language I have ever worked with. Not because of language itself, this is fine for scripting, but because of the terrible tooling. pip is the most unreliable package manager I’ve seen, packages installed system wide collide with what you’re trying to install for you project, environment virtualization and version management is a mess with venv/pyenv and more doing same things differently (the standard can’t decide on just one tool for that) and on top of that you have all the ruff/black/mypy and many more offering same features but not really with a new tools coming out all the time. I not a Python expert but even people I worked with that are were confused but all this. I haven’t seen such a mess in any other language.
But have you tried conda? (It’s so much worse)
anytime I have to maintain python I do it inside a container. Why? because anytime you deal with pieces of shit directly, you wear your PPE.
everything you said, 10,000% agree. god forbid the Python purists hear it though, they’ll tell you that you’re just too stupid to understand the language enough to use it and will compare it with literally every language just to prove that they have the “biggest” python.
The main problem is that Python purists have hardly used any other languages so they don’t realize how shitty their tooling is. The most direct comparison is Ruby and the tooling difference is astronomical. I always refer to this article for how bad the situation is https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
the only thing pythonists love more than intellectually dunking on devs is hating Ruby. it’s like a universal character flaw they all mistook as a benefit.
Yeah it’s pretty crazy, like Ruby was extremely well known for how good its tooling is, so much so that it inspired numerous other language package managers and build tools like elixir’s mix, rust’s cargo, and the lock files in npm and composer.
The testing frameworks everyone uses today are directly descended from Ruby’s RSpec, almost to the letter. BDD and TDD were pioneered by Ruby devs.
Extension functions in Kotlin are a direct result of lessons learned from Ruby metaprogramming while Rust and Elixir’s syntax are both directly inspired by Ruby.
The beauty of Ruby’s DSLs also spread to almost every new language. Kotlin and Gradle DSL scripts are possible because of Ruby.
Rails inspired an entirely new paradigm of web frameworks, where things were supposed to be easy by default. Laravel, Spring Boot, Phoenix, Django all are directly inspired by this, even though Django came out first it wasn’t easy to use.
——
Python gave us… Jupyter notebooks, whitespace which no one uses, and not much else.
Check out
uvI simply use
cargo🤷🦀
Perhaps consider Poetry
It’s my personal go-to package manager and venv solution.
Thanks, I simply don’t use Python. As I said, languages that have to create new tools all the time because the official tools are broken are not my thing.
https://docs.astral.sh/uv/guides/install-python/
They have changed this but only very recently with the Python Install Manager which forces programmers to develop the way they should have been with venv. Like Sept 2025 recently even though it’s been a valid language since 1991…
Pyenv and venv are independent and don’t do any ‘same thing’, so you must be really talented to mess them up or be confused by them.
I also don’t know what’s difficult about understanding why the system-wide installation exists or how to add local modules to the path (which venv does for you anyway).
Yes, you have to be talented not to get lost in the pyenv (‘env’ as in ‘version’ management), venv, virtualenv, pyvenv and god knows what else. All those tools either manager versions, virtual environments or both. Super simple! I’m sure you’re enjoying working with them and that’s fine. I avoid it.
If a programmer needs a whole ‘standard’ to figure out that two orthogonal tools are all they need, it’s not a good sign.
Learn to RTFM, noob.
Might wanna learn more than one thing to reply, too.
Have you ever actually read the manual? I have. It’s thousands of words for how to build a single python library. If you look at almost any other language it will be a tenth of that. Ruby’s is literally like 4 commands total. The only people that think Python tooling is even halfway good are people that have never used a language with proper tooling.
https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
Point me to where ExLisper said anything about building libraries.