Just want to point out that polars is not a complete replacement for pandas and they will likely live side by side in the data ecosystem.
One of the main and original intentions of pandas is replacing highly dynamic and changing excel models for financial, econometric and physical systems. The rigid structure of polars syntax while great for stability and optimization is not practical for research/development iteration of these kinds of models.
It’s one thing that the “standard library for X” changes every few years. The problem is when upgrades within the same library are backward incompatible, or require changes in unrelated things (such as the build system), or when the library gets dropped completely from support.
Python ML maybe. That's a different community to Python in general. The only place where there's been churn in general Python is probably package management.
10 years ago there was a new Python web framework every month. Now that space is pretty much stable (dead).
The fact that JavaScript front-end is going through so much churn just shows that it's not obvious yet what the proper design looks like.
Rust is going through the same thing now with GUI frameworks, every couple months a new approach appears. Because it's not obvious yet what's the proper design for a Rust GUI API.
I wouldn't say it's stable or dead. Starlette and FastAPI are great async frameworks that seem to have replaced Tornado. Django is only recently getting some async support.
JS frontend seems to have been going through churn for over a decade now. It's a messy language, and because we've been forced to use it as the sole frontend language for a while people have been trying to figure out how best develop with it. Hopefully, with more language support in Wasm, JS will finally be replaced.
Zope was an oddity and had already started to fade into the background 10 years ago. Bottle was eclipsed quickly by Flask. Werkzeug was more of a toolkit than a framework.
Is Tornado even a web framework?
There was some interest in the others you mention but I don't remember them ever being major contenders.
I guess my point was that it never felt like the javascript situation where there was genuine paralysis of choice on many fronts. You generally either went Django or Flask depending on your preference for "batteries included". All the other choices were pretty niche.
Javascript has stabilized a bit in the last few years but the number of choices needed to start a project are still much higher than anything I experienced in Python web dev.
But it was not clear at all that Flask would be the other winner. There were a lot of articles discussing Flask vs Bottle vs web.py.
> like the javascript situation where there was genuine paralysis of choice on many fronts.
I think that's the perception from the outside. If you start a project, it's pretty clear what's the recommended stack of the day. Sure, next year might be different, but today it's React/Vite/Tailwind/...
It happens in Python too. For example in ML, in 2015 everybody was using torch, then Keras, then TensorFlow, then PyTorch.
Pandas now being replaced by Polars.
If you look at MLOps, every 3 months there is a new hot library.
In other words, it happens in the active parts of the ecosystem (data-science), not in the old stable ones (standard library, reading files, ...)