Ask HN: Why did Python fail to evolve?

6 pointsposted 11 hours ago
by fud101

Item id: 46429145

5 Comments

turtleyacht

9 hours ago

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.

fud101

9 hours ago

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

I think you are right. Python steering council seems to consist people who are closer to users than capable language designers. I don't see anyone there who has published any research article or code that would suggest they're even aware of modern PL developments. This might simply be a result of Python being a volunteer based movement unlike say TS which attracted funding from industry giants like Microsoft? But i'd still think Python could attract talent despite this. The fact that Guido stuck around til 2018 didn't help things either.

turtleyacht

8 hours ago

> capable... aware

Assuming a polyglot perspective and Python installed on the OS, folks could reach for different tools as needed: bash, C, Java, etc. Some problems are "easier" or "better" to express in one language than another.

Python as a language was less needed than Python as a scripted executor of OS syscalls (libc) via software packages.

For Javascript, there's no other language on the browser. Before tools emitting Javascript (Elm, Babel, etc), "everything" had to be written in one language only, so lots of things were tried at the syntax level.

Since it was "only" Javascript, folks could get creative within those constraints. Then we see programming concepts as design patterns: IIFE, OO with prototypes, callbacks, and such. Just iteration after iteration of concepts on the same platform, exploration, refinement, and remixing.

With Node.js (IIS was Windows-only), now the culture of syntax flexibility could be applied on the backend; isomorphic Javascript could be realized. Server-side needing to be robust, we see Typescript having an in.

There's no reason we couldn't have an ACID-compliant browser running Python applets, but it would have to be a subset of the language with strong security guarantees, and Javascript already has so much momentum.

nacozarina

9 hours ago

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

fud101

9 hours ago

It's funny because 3 dropped in 2008, the same year Slava was demonstrating Factor in google tech talks which was a contemporary language to python3 that completely blew Python out of the water.

https://youtu.be/f_0QlhYlS8g?t=118