I was a big fan of python between 10 and 15 years ago for similar reasons, it felt "cleaner" than other scripting languages while also having rich standard and extended libraries.
With no real recent experience (I fell deep down the hole into C/kernel etc), I wouldn't have any authority to judge how it's adapted to time. But the most common complaint I've observed at companies of all size and sophistication is "the deployment story is a disaster". But it also seems like uv allows people to do all the "I want this specific version of such and such and I don't want $OS to know about any of this" well?
Re math/ai it's an interesting comment because a language is one part the syntax/stuff you receive, and one part the community that tells you to do things a certain way. I'd guess that Python has become such a big tent it is a little hard to enforce norms that other languages seem to have. This somewhat reminds me of Bjarne Stroustrup discussing scaling/evolving a language.
I think a lot of it is things have shifted away from the raw language. Less and less you’re dealing with Python, and more an assortment of libraries or frameworks. Pandas, numpy, torch, fastapi, …, and a dozen others.
Packaging has been a nightmare. PyPI has had its challenges. Dependency management is vastly improved thanks to uv - recently, and with a graveyard of tools in its wake.
The modern Python script feels more like loosely combining a temperamental set of today’s latest library apis, and then dealing with the fallout. Sometimes parallels the Node experience.
I think an actual Python project - using only something remotely modern like 3.2+ standard library and maybe requests - is probably just as clean, resilient, and reliable as it ever was.
A lot of these things are and/or have been improving tremendously. But think to your point the language (or really the ecosystem) is scaling and evolving a ton and there’s growing pains.
I can see that. A little while ago I was working at a startup and we had a node.js thing that was really crucial to the business that did some gray hat browser automation stuff to scrape TikTok (the users opted into it, but TikTok itself was less permissive). For some reason a person wanted to move part of it to Python to orthogonally solve some other actual problem. They passed me the code and Pandas was there to effectively do an HTTP request and parse JSON and I thought to myself "woah, I'm not in Kansas anymore" -- I ended up not having to worry about it because I ported the idea back to the more mature node system and that turned out to be viable over time.
Libraries can overtake aspects of a language for better and worse. Ruby seemed really tied to Rails and that was great for it as an example.
Ha, Pandas just to parse a website is a bit extra, I’d say. But yeah, it’s weird that you need libraries and api endpoints to do basic tasks these days.
It feels like something broke around 2015-ish. Going back, you could make a whole app and gui with Basic. You could make whole websites simply with HTML+PHP, sometimes using nothing but Notepad. You could make portable apps in Java with no libraries - even Swing or whatever was built in.
Now…? Electron, a few languages, a few frameworks, and a few dozen libraries. Just to start.
Bizzare.
Everyone wants to be a programmer but nobody wants to write any damn code
— Ronnie Coleman