Anaconda does a reasonable job of fixing this for Python, but as noted, it’s yet another 3rd party solution with some pretty annoying defaults.
- The JVM and CLR are both significantly faster and less resource intensive than CPython for a lot of workloads.
- Java and .NET library ecosystems are mature and extensive. Python 2's ecosystem was also mature and extensive, but the community is in the process of throwing it away.
- The real heavy lifting for media transcoding, storage, and serving is certainly not done in Python. Python is acting as orchestration glue for C/C++ programs there, which is a role it does well.
Don't throw this kind of comments when in next line you're mentioning Java, where everything worth using is implemented by reflection fuckery.
Also, there's a real cost to everything being dynamically typed in large systems. Humans can't keep all the program types in their brain, and having the compiler help you out is kind of a big deal.
I can say with Java and .NET shops, it's usually because the company has heavily invested in Java and .NET infrastructure, process, automation, tooling, monitoring, etc. If there are certifications involved, I also know for a fact that Microsoft feeds big discounts on expensive products (SQL Server) depending on how many employees you have with Microsoft Certifications.
It becomes a self feeding system. You're already invested so much in the stack that the choice of using something else is far more complicated than language comparisons. It's one of the reasons that there are so many language options available that run on the JVM that can take advantage of all of that investment without forcing the devs to write raw Java (Groovy, Scala, Clojure, Kotlin, etc).
The availability of good, tested, performant OSS libraries available in Java is unparalelled.
People talk about languages like Python being "faster" to develop in because they're easier to write. This is true until you need a solid concurrency friendly loading cache or a DB connection pool that works at scale and in Java that's just adding a dependency that you know you can trust.
What language is Python implemented in? Is it Python, or something else? This tells you that even the implementors of Python don't think Python is suited for everything.
History, reliability, simplicity, lack-of-value, etc. At this point there's not much to gain by rewriting cpython in python (pleasing some guy on the internet), and quite a lot to lose (simple c-interop) for what would be years of work by a lot of people.
I don't think it's a criticism of Python! I've worked on meta-circular implementations of languages and I don't do it for the sake of it. Not every language is suited for every task.
If the Python ecosystem weren't c-based, it wouldn't matter. But it is. But that has nothing to do with python the language in a vacuum, and everything to do with choices some guy made 25 years ago.
Note: I am an amateur which is likely the reason for my ignorance.