Every language tribe unites around one banner: “C++ is terrible”
Description
Illustration styled like Arthurian ‘Knights of the Round Table’: six armored figures stand in a dimly lit grand hall, shafts of sunlight pouring through tall windows. Each knight’s sword points toward the stone table and carries a white label: “Actual Haters,” “Bjarne Stroustrup (Creator of C++),” “People who wrote C++ for 20 years,” “C++ lovers,” “Ken Thompson,” and “Java, C#, JS, Python, Ruby programmers.” In the table’s center, bold white text reads: “C++ is a terribly written language,” implying unanimous agreement despite wildly different allegiances. The meme riffs on decades-old debates about C++’s sprawling feature set, backward-compat concessions, and compile-time minefields - highlighting that even its inventor and competing language communities often converge on the same critique. Seasoned engineers will appreciate the meta-joke: after twenty years of template metaprogramming and ABI breakage, the only true consensus is collective grumbling
Comments
52Comment deleted
The real cross-platform miracle of C++ isn’t ‘write once, run anywhere’ - it’s ‘criticize once, every ecosystem compiles the same opinion.’
The only thing more impressive than C++'s ability to unite developers across all languages in shared frustration is its template error messages - which, like ancient scrolls, require years of training to decipher and still leave you questioning your life choices at 3 AM
The irony here cuts deeper than template metaprogramming errors: even Ken Thompson - co-creator of Unix and C itself - once famously said he'd 'rather write in C than C++.' When your language's most vocal defenders are the battle-scarred veterans who've spent two decades wrestling with its complexity, and even computing legends question its design, perhaps the real achievement isn't the language itself but the Stockholm syndrome it induces in those who've mastered its arcane depths. Stroustrup stands alone, crown heavy with the weight of undefined behavior, multiple inheritance, and the eternal question: 'But does it need to be *this* complicated?'
Bjarne reigns supreme, but after 20 years dodging UB and SFINAE, even loyal knights plot a Rust coup
Only C++ can unite haters and lifers: RAII, templates, and ABI “stability” all claim zero cost - until -O3, UB, and the linker form a quorum
C++: where ADL, SFINAE, and UB form a quorum so compelling that even Stroustrup’s sword points at the same verdict - longer than the compile times
Why is it so? Comment deleted
C++ is way too complex and consists of hacks upon hacks upon hacks, on top of a >50yo language Comment deleted
Is complexity really a problem? I think c++ is beautiful of the reason it's logically understandable for me. If I coded in python I wouldn't know how to code simple array sorting function of the reason this function can be used as built-in method Comment deleted
Even if python programmer can code something, he will be code slowly, of the reason coder didn't get enough practice because python is full of methods that you can just use not understanding them Comment deleted
python doesn't have that many methods compared to C++ there's usually only one way to do something, as opposed to C++ Comment deleted
really, one way, have you ever seen those massive tables with huge amounts of names of methods in python? And they're all built-in! Comment deleted
complexity becomes a burden once you get to a level where you constantly have to look up what even stdlib functions do. C++ has long long passed the point where it's impossible to know everything, and it feels like it's still accelerating Comment deleted
and... Nobody said that you have to know everything about language, you just need to understand how it works to do it by yourself Comment deleted
it helps a lot. The less I need to look up when reading code, the less methods I can misunderstand, and the faster I can start working on it Comment deleted
So it's easier for you to remember some names for you instead of writing your own methods/functions that you can change how you want to and understand how they work? Comment deleted
yes. literally just yes Comment deleted
So that's the difference between us, for me python is also complex so don't write that only c++ is bad of the reason it's complex Comment deleted
python is way less complex than C++ C++ literally has a way bigger stdlib, with lots of duplicated features Comment deleted
So don't use them, the thing is that c++ faster, so you can write your own methods and functions easily Comment deleted
"So don't use them" exactly, I use C instead. Or python, depending on what I need Comment deleted
So you just answered. they are different, c++ is used in many applications of the reason it's fast, python can be used for LM, for example Comment deleted
you mean ML Comment deleted
Learning Models? Comment deleted
I didn't mean Machine Learning Comment deleted
isn't that kinda the same? Comment deleted
Machine learning Models are things those are created in Machine Learning Comment deleted
the field is called ML, what creates the models is training Comment deleted
obviously python and C++ are different, I just said C++ is way too complex Comment deleted
Do you know about headers. Not to get lost in your code you can use them Comment deleted
headers are definitely useful, but those exist in C as well, and can be substituted with some IDE features Comment deleted
Complexity is a problem because it becomes so damn difficult to reason about Comment deleted
The moment you say this, this, and that is UB, you have to pay attention to stuff, and you've got lots of stuff to pay attention to Comment deleted
don't know. I used them making some code and they are useful. Like a lot Comment deleted
my reasons for saying cpp is both amazing and terrible are it is great 'cause it gives high level options in low level it is damn complex because of library names and dependencies you wanna write a single program? you need a simple function you should know which header it is in if you don't know implement it yourself and fuck you Comment deleted
same goes with c Comment deleted
the only thing that makes me angry about c++ is that my functions and methods work slower than methods from certain library Comment deleted
probably that's I'm stupid Comment deleted
like game of life with c++ in window with windows.h API Comment deleted
I like headers, and I've written some C too. Comment deleted
I still have the problem with function names which header they are in and what they do Comment deleted
Is there the reference implementation for C++? 😉 Comment deleted
yeah... C is assembly for the C abstract state machine... except a few niche platforms... where c is almost equal to assembly* p.s. on those platform... c looks more like assembly/gibberish if you don't know about the platform... you'll see everyone shoving bits in mystery global variables or reading from them Comment deleted
Arduino e.g. right? Comment deleted
iirc Arduino uses C++ Comment deleted
I should know this because I've done a fair bit of Arduino development a few years ago, but yet… not sure Comment deleted
probably yes but anyways it's about setting and reading serials and bits Comment deleted
yes, there's lots of mysterious weird variables in Arduino development. I do remember that much Comment deleted
arduino is clean and dumb enough Comment deleted
could be better, could be worse Comment deleted
nah... Comment deleted
Sumbed down, superfluous, but still compiled with gcc. Noone stops you from doing things the usual, io.h way. Also, inline assembly. Marlin, firmware for arduino based motion control board provides examples of all 3 Comment deleted