What do you attribute Python's success to, in spite of being a disaster of a language and ecosystem?
[–] johnfn 3 days ago
[–] dude250711 3 days ago
[–] theplumber 3 days ago
[–] konart 3 days ago
Apparently you can't be a senior dev unless you "just here to deliver"
[–] dijit 3 days ago
It can do everything, it's a nightmare to write correctly and is so full of warts that really only a mother could love it.
Go is "elegant" and properly designed, which leads to fundamental unassailable limitations; like its GUI story or writing a backend for other languages (cgo is so slow and -build-mode=c-shared is a hog).
No operator overloading makes it difficult for numerical/scientific work - Python is stronger here.
"just get stuff done" is your crappy dump truck which is welded together out of spare bits and is barely hanging on, this is how I feel about C++.
Go is a lot more elegant and well designed, but it requires "smooth roads" (An OS and Runtime) and goes fast... it's more like a Dodge Hellcat..
EDIT: if we consider speed a function of development time rather than runtime, of course at runtime C++ can be as fast as it gets.
[–] stackghost 3 days ago
To me it seems more like C++ is the metal shop's old school 3-axis mill: effective and dangerous. Can do almost anything, including easily maim you unless you're continually vigilant.
Go seems like a CNC machine: just as effective, much less dangerous because it relies on digital safeguards and embedded controllers. You need to go to extreme lengths to make it do something it wasn't designed to do.
Python seems like lego. Shit simple to build things with, lets you start building immediately, fantastic for prototypes, but finished product is still just press-fit plastic bricks
[–] dijit 3 days ago
[–] bheadmaster 3 days ago
[–] dijit 3 days ago
[–] dizhn 3 days ago
Python owes a lot to that initialish Google push where for a few years you couldn't get a job at google without knowing python or you could easily get a job if you knew python. Maybe both.
[–] kingstnap 3 days ago
Cross platform interpreter.
NumPy and SciPy really set the stage.
[–] chuckadams 3 days ago
[–] jacquesm 3 days ago
I'll give Python one thing though, it is by far the most elegant way to glue together a large number of otherwise incompatible C libraries.
[–] timschmidt 3 days ago
[–] Pxtl 3 days ago
But Python peaked like 20 years ago. The later features were too ugly, and it was too slow to fill the obvious gaps in the language.
[–] thinkyfish 3 days ago
[–] rjbwork 3 days ago
We've known for a very long time that shitty things can become very successful in this field and why.
[–] stronglikedan 3 days ago
[–] LaGrange 2 days ago
In other words it’s easy to sell. Combined with the widespread anti-intellectual attitude in the software industry that’s enough.
Edit: it does help it’s genuinely a good scripting language.
[–] rsalus 3 days ago
[–] aaabbbbb 3 days ago
The language is a disaster since it deviated from its original purpose. The community is ruled by insane, mediocre narcissists who drove away all reasonable people.
[–] avaer 3 days ago
- Reasonable ergonomics for describing data flows, as long as you never run the code, which you often don't care about if you're a mathematician
- Adoption by people who optimize pumping citations, not reproducible results -- non-working code is a feature when you're trying to BS
First, it's easy to learn and reasonably powerful. You can make a lot of useful things really quickly, which was true even 15 years ago. It's only gotten easier since, and the ecosystem has continued to grow.
Second, ML latched onto it. That gave Python a lot of credibility for people coming through CS programs and into industry, especially as AI use cases were picking up momentum. Think Tensorflow starting 10-ish years ago, then Pytorch, and so on.
[opinion time] Unfortunately, ML has contributed to disaster. The quality of software engineering in ML applications lags badly behind that in other segments, and there's where most Python development is happening now. The feedback loop of training Bad Python into LLMs is only making it worse. The skill floor was dropping, and now it's practically zero.
It also wasn't helped much by language design decisions. Gradual typing was a huge mistake. It would have been much better to go the Typescript route and define a superset of the language that compiles to native Python. The grafted-in typing features that rely on runtime behavior and never got an actual spec for a type system haven't helped.