20 years working on Python. Two things have driven its success.
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.
It's incredibly easy for new engineers to pick up. On the spectrum between "features easy for beginners but nightmarish for experienced engineers" and "features complex for beginners but great for experienced engineers" it always makes the tradeoff for the former.
Go is awesome and has great ecosystem. I think if you want to just deliver Go is one of the best language out there. Of course as long as the project makes sense(I.e no client side/GUI stuff, there it gets messy)
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.
The dump truck that is C++ definitely goes just as fast if not faster than that Hellcat, though.
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
It's no wonder then that Google used to be all in on Python in the 2000s as a language for juniors and then invented another language with similar users in mind. With AI becoming what it is they probably did not need to do the latter.
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.
It's definitely a better language than Matlab, and Numpy made it actually fast for that purpose. AI research really took advantage of that even before LLMs hit the scene.
I'm not the OP, but it seemed to me that major teaching institutions settled on Python as a pedagogic language after previously having rallied around Java for same, and various other languages before that.
It was the first language that actually felt ready-to-use, available for free-as-in-speech. Batteries included, robust online development community, sensible featureset, main libs that were designed bottom-up instead of top-down. I remember learning Java 1.2 or 1.4 after learning Python and it felt like a huge regression. Swing was a joke compared to TkInter (which was weak compared to proper GUI editors like VB but at least made nice scalable native-feeling GUIs and had a sensible API) and the standard collections were miserable without generics.
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.
They provide binaries for almost every open source library for every popular platform. If you need something, whatever it is, python was and is probably the easiest way to install and use it.
Marketing in academia, decent C-API that led to use in scientific Python.
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.
It’s sad the amount of times I’ve heard super talented programmers say “ofcourse we’re not gonna build another X” then proceed writing a wrapper around X and pretend that’s a product.
Of course, it was a giant scam that tested for nothing and optimized for how to pass a test.
Let's see if companies are ready to hire more people who know what they are doing, against a super-intelligent swarm of millions of agents with cyber capabilities.
> 7% of Chinas total population are members of the CCP. 7%. So at DeepSeek there's a good few handfuls of them.
If you want a government job, you need to be member of the party. That is no different then the old USSR system.
You end up with a overcount of "members" as people who ideology subscribe to the system, vs people who just become members for the better jobs. And yes, those people also get fired or leave government jobs (especially given the financial issues in the local governments the last few years because of the building crisis / lack of income).
So this type of throw towel over everybody to make a point is just a useless statistic.
> If you want a government job, you need to be member of the party
Do you know this? Or do you assume this?
I actually don't know. However, being from (west) Germany and old enough I know how a real socialist state, the east german GDR, handled it. And keep in mind that they were way more stalinistic than China is.
In the GDR you could have government jobs without being in the SED. In November 1989 they had 2.1 million members. Since the GDR had a population of 16.4 million, a whopping 12.8%. That a higher percentage than in China. And yet they had numerous even higher officials that weren't in the SED. Example "Hauptbuchhalter" in the combinats (some kind of main bookkeeper --- but keep in mind that their job was to follow the planned economy goals, not booking activa and passive). Or members of the central bank. Or lots of teachers (which in both Germanys are traditional official clerks ("Beamte").
They however couldn't be in (open) opposition to the system. There was "the sword of the party", the SED. And they had informants everywhere. So if you showed any sign of opposition, you were removed.
So you needed to be a "yes sayer", but being "SED party member" was not mandatory.
In China one can enter civil service without party membership.
Because membership in the party is strictly quota-ed to prevent overgrowth. The quota for college students is very limited.
But I assume any leadership position will require joining the party after becoming civil servant / government job.
Of course it matters. Suppose because tech pays better the figure in tech is more like 0.7%. The rest is shut concentrated in rural regions and other industries. Then your point would be moot wouldn't it.
Every open source release is visible to me, too. Is your point that the government could stop it if they wanted? That's true of every government, but it's not a problem until it actually happens.
So what makes you think it's not Chinese nationals attacking those comments?
Please never forget that US runs the largest state-sponsored hacking program. They are and have always been the largest APT. Anything opposing that narrative is blatant propaganda.
RE motivations - I wonder whether this is part of their push to double down on social stability efforts?
I have no strong views on whether US or Russia or China are the biggest hackers (and think it's impossible to k ow or judge objectivel) but feel compelled to point out that you seem convinced without evidence and proactively attack any replies contradicting you ("everything else is propaganda").
This is neither good discourse style nor does it help the accuracy of your own worldview to proactively decry and dismiss every contrasting position as propaganda. It's a surefire way to maintain incorrect worldviews and while it may hell your confidence does not make your positions true.
The people doing this work as a career and not performative art, who were already good at their job, had no worries about this to begin with.
The code was always a black box. Always.
Specs come in, passing tests come out. If you find an issue, your specs were shit.
Anyone that has ever had to outsource work to someone else knows this. If you've ever worked with another team whose codebase you didn't touch - you know this.
You write your specs, you launch an agent to implement them. You launch a 2nd agent to keep the first one honest. When done, you launch as many agents as you have budget to try and poke holes in the implementation. As it always was the case.
You can thrash around (and you will), you can fight it (and you will). Like it or not, the genie is out of the box, and the realization you were never really good at your job to begin with is gonna set in eventually.
> You can thrash around (and you will), you can fight it (and you will). Like it or not, the genie is out of the box, and the realization you were never really good at your job to begin with is gonna set in eventually.
I was with you until this sentence. You know you can have an opinion without having to put anyone down?
We're going to get downvoted to hell for saying stuff like this. It's like the group of people who went around telling everyone else that they were awesome and godlike and irreplaceable are now offended. I comment every now and then about the end of programming, and different ways get different reactions. If I say programming is dead, its downvote. If I say I replaced a bunch of SaaS with AI produced replacements, it's upvoted. Surprise! I don't care about programming and I don't look at the code in the successful replacements either.
Noone understood the code to begin with. People understand the concepts, the primitives, the "theory" as Naur said, the basis upon which a project is built. Noone ever understood a codebase worth understanding to begin with.
One step further: use `git tag` for what it's for: tagging a given commit with an immutable reference (say, a version number like `v1.0.23`), and generate and publish "build artifacts" (`my-application-v1.0.23.tar.gz`, `my-application-v1.0.23` binary, `my-application-v1.0.23.tar.gz` helm chart, `my-application-v1.0.23` container image, `my-application-v1.0.23` ... whatever binary artifact)
A quirk here- tags are not actually immutable in git. I agree with the premise, and use tags myself for releases, but if you rely on them being immutable then you have loaded a footgun
What do you attribute Python's success to, in spite of being a disaster of a language and ecosystem?
reply