The worst programming language of all time
57 points by rcalixte
57 points by rcalixte
This is world-class haterdom (complimentary). Being a hater gets a bad rap! I've learned many amazing things at a surprising level of depth through spite and hating, and that knowledge can be presented in a way that's knowledge-giving and entertaining (for example, contrast this with Fly's anti-anti-AI article, which was mean and angry haterdom; a much weaker form).
He's covering so much ground about C++ and it's millions of warts, edge cases, tribal knowledge, it really should be considered a reference. A 2 hour video won't ever get watched/disseminated widely, I think, but if it did I think it could move the conversation. Watching this feels like the first time I read Eevee's PHP: a fractal of bad design (fairness disclaimer: PHP has since really, really improved it's game since that post)
I don't love the AI slop art, but some of it is entertaining, and again, if you've run into the issues he's describing, it's very cathartic. Bravo.
The rate of slop-images-on-screen per minute is concerning.
I thought they worked pretty well. It's a two-hour-long dense rant, it's not exactly technical content that should be showing code all the time, and there's not many natural visual elements. Before AI slop this would be filled with stock photography slop. It's asking too much to expect more. And the AI slop, which is actually carefully made to complement the material, is way better than stock photography or clips.
I also agree that they’re fine here. This jan Misali video is a counterexample of a well designed video rant using only a black screen and text. But Misali makes that work by spending a lot of attention and care, which would be taxing for a rant of this length that otherwise works well.
Hmm. I wrote that about 30 minutes in and after watching through, one issue I noticed is that there are no AI images of women programming. This isn’t really a fault of the creator; even if this video were to use stock photos rather than AI, those photos would be more likely to include any representation. I really don’t like that AI makes it easier to perpetuate harmful biases in these ways.
After a bit of searching, I found a comment by the author on r/cpp saying they did explicitly add the AI images as extra content to keep people's attention and didn't write the text using an LLM.
Partial quote:
Some people want to look at the code examples, others want to look at pretty pictures and tag along for the ride without diving too deep into the technical details. I tried to satisfy both audiences but might have ended up inadvertently alienating some in the former group. I really didn't expect the backlash to the images, I thought they were creative and funny.
Good to have confirmation, but not fully sure how I feel about the images now. Some really were funny, but on balance not overall, and many were just uninteresting or ugly. Though the creator definitely should have expected some of these responses.
I just went back to an old C++ code base today and, yeah, the critique here is fair and accurate. Some quotes after skimming the video transcript.
If you like C++, then you don't know it well enough.
C++ is the only language where the further you go up in the abstraction, the more code you have to write.
[--] when you call vector.end(), you get an iterator that points to a position after the last element in the vector. This is the back of the vector. Whereas if you call vector.back(), you get the last element, which is the end of the vector. Therefore the end is the back and the back is the end.
If you try to insert or emplace something which already exists in the map, it won't override that value with a new one, it just ignores your insert.
And there's also another
std::movein the standard library. So don't get the move from the utility header, which is the one we use for move semantics, but it doesn't actually move anything, mixed up with the one from the algorithm header, which actually does move things.
Simply put, C++'s reputation for speed is not a triumph of its design but a testament to the extraordinary efforts of those who build its compilers.
On careers.
In contrast [to web developers], C++ engineers are often confined to doing infrastructural work like maintaining legacy systems or optimizing low-level libraries that while mission critical, remain largely invisible to non-technical leadership. This has a tendency to constrain their career trajectory and influence.
Sometimes in life, there are these fleeting little windows of opportunity that present themselves to you. And it's imperative that you capture those opportunities before they're lost forever. It takes a really long time to make software with C++. And what you may find is that by the time you're ready to ship your product, the opportunity has passed, technology has evolved, and the world has moved on to something else.
And finally,
Rust has continued to grow without faltering. I think it could potentially grow even faster, but one of the things that adds friction to its adoption is that you sort of need experience in C++ to truly appreciate and understand the problems with C++ that Rust fixes.
"There are only two kinds of programming languages: the ones everyone complains about, and the ones nobody uses."
This quote has been popping up in every C++ discussion for decades and I think it's less a witticism and more a thought-terminating cliche. It's extremely reductive and for the most part it serves to shut down the possibility of better languages and better ways of evolving languages.
I can think of languages which are used fairly widely without everyone complaining about them. Elixir would be one example.
Personally I exited the C++ world after C++14 because I thought that the way C++ metastasised features was atrocious and made every new language version more incomprehensible.
I think this quote is quite suicidal to the project when used as a "defence" against criticism.
Sounds like something a person who designed a language that everybody complains about would say. Oh wait
... I used to think I knew some C++. Four minutes in and I see I know nothing. This was quite humbling, haha