HACKER Q&A
📣 fud101

Why did Python fail to evolve?


I was listening to an old podcast (because all the current ones are obsessed with the AI) and they compared Python to Javascript. At the time and even now that comparison made sense. They're both considered general purpose languages even though they originated as specialized languages, one for the browser and the other for the Unix shell. However Javascript has evolved much better than Python. It has a rigorous standard document in EC6+ which means you can have multiple compatible implementations. It has evolved functional programming features like arrow functions, map and reduce etc are actually ergonomic and idiomatic in modern JS but avoided in Python which clings to destructive loops and assignment. JS has embraced immutability as a core concept while Python has defied it even well into 2025 when languages like Java and Rust have made it an established, mainstream concept. Python has bolted on asyncio but it remains underappreciated and hard to use compared to Javascript and C#. Typescript has given static typing benefits to JS but Python still drags its feet with multiple incompatible typing efforts, none really taking off in a big way, due to Python itself not having much of an opinion on it.

If my assessment is unfair, i'd like to hear about it but from my perspective Python has failed to evolve and we can see that clearly in the path Javascript has taken in the same amount of time, it's evolved into a much better language.


  👤 turtleyacht Accepted Answer ✓
Javascript is bundled in web browsers, which is a huge leg up for immediate deployed capability. There might have been massive pressures to evolve the language versus Python.

There's also the minutiae of Python being more exposed to the operating system. The browser is installed, but Javascript was effectively sandboxed. So there was less consideration for "binary incompatibilities" or "system-level details" for Javascript as with Python.

Think Python is in a nice place where the libraries and packages support the current trend (AI) but remains an approachable language. Tools like uv help smooth over package management, which seemed like a challenge before (venev, wheels, CPython).

Python could evolve on several fronts: developer ergonomics, performance, language research, and hardware (shaders). Unfortunately, it may have to balance backward-compatibility like Raku and Perl5: whether to try a clean break (2to3) or gradually consolidate stdlib (naming).

It may also be "good enough," and maybe there are more language users than there are language researchers.


👤 nacozarina
that whole v2-v3 transition python went through gave us the vibrant bloom of dialects we enjoy today; is that not evolution?