A very well put article for sure but I want to comment on one thing.
Saying the cost of the performance is due to Python being too dynamic is a valid point for sure, but who needs that really? you can’t use any of those dymanic features in production/entreprise setup. Somebody will scream at you if you do, you generally always aim for simple, testable, annotated, debuggable linear designs if you want your program to live more than a few months, hence you end up with projects that look like Golang or Rust and at that point the argument “just use a real programming language” becomes a valid one (there are great dynamic features but it’s not best practice to use them in production and you have to annotate you programs for static typing checks).
I remember Guido saying in Lex Fridman Podcast that google created golang because they hate C but it’s ending up replacing Python and I can’t agree more with this statement from my experience.
So yeah, it depends, for smallish projects and glue code, it’s still a good bet, anything beyond that and you will regret it shortly after. From a recent example I needed a Matrix server, Synapse (written in Python) froze a 16Gb 4vcpus VPS instantly, while Tuwunel (written in Rust) is barely occupying 400MB and super responsive.
