Skip to content
DevMeme
5151 of 7435
Every language tribe unites around one banner: “C++ is terrible”
Languages Post #5638, on Nov 6, 2023 in TG

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

52
Anonymous ★ Top Pick The real cross-platform miracle of C++ isn’t ‘write once, run anywhere’ - it’s ‘criticize once, every ecosystem compiles the same opinion.’
  1. Anonymous ★ Top Pick

    The real cross-platform miracle of C++ isn’t ‘write once, run anywhere’ - it’s ‘criticize once, every ecosystem compiles the same opinion.’

  2. Anonymous

    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

  3. Anonymous

    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?'

  4. Anonymous

    Bjarne reigns supreme, but after 20 years dodging UB and SFINAE, even loyal knights plot a Rust coup

  5. Anonymous

    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

  6. Anonymous

    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

  7. @jiriido 2y

    Why is it so?

    1. @RiedleroD 2y

      C++ is way too complex and consists of hacks upon hacks upon hacks, on top of a >50yo language

      1. @jiriido 2y

        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

        1. @jiriido 2y

          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

          1. @RiedleroD 2y

            python doesn't have that many methods compared to C++ there's usually only one way to do something, as opposed to C++

            1. @jiriido 2y

              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!

        2. @RiedleroD 2y

          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

          1. @jiriido 2y

            and... Nobody said that you have to know everything about language, you just need to understand how it works to do it by yourself

            1. @RiedleroD 2y

              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

              1. @jiriido 2y

                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?

                1. @RiedleroD 2y

                  yes. literally just yes

                  1. @jiriido 2y

                    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

                    1. @RiedleroD 2y

                      python is way less complex than C++ C++ literally has a way bigger stdlib, with lots of duplicated features

                      1. @jiriido 2y

                        So don't use them, the thing is that c++ faster, so you can write your own methods and functions easily

                        1. @RiedleroD 2y

                          "So don't use them" exactly, I use C instead. Or python, depending on what I need

                          1. @jiriido 2y

                            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

                            1. @RiedleroD 2y

                              you mean ML

                              1. @jiriido 2y

                                Learning Models?

                                1. @jiriido 2y

                                  I didn't mean Machine Learning

                                  1. @RiedleroD 2y

                                    isn't that kinda the same?

                                    1. @jiriido 2y

                                      Machine learning Models are things those are created in Machine Learning

                                      1. @RiedleroD 2y

                                        the field is called ML, what creates the models is training

                            2. @RiedleroD 2y

                              obviously python and C++ are different, I just said C++ is way too complex

              2. @jiriido 2y

                Do you know about headers. Not to get lost in your code you can use them

                1. @RiedleroD 2y

                  headers are definitely useful, but those exist in C as well, and can be substituted with some IDE features

        3. @purplesyringa 2y

          Complexity is a problem because it becomes so damn difficult to reason about

          1. @purplesyringa 2y

            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

  8. @jiriido 2y

    don't know. I used them making some code and they are useful. Like a lot

  9. @callofvoid0 2y

    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

    1. @callofvoid0 2y

      same goes with c

    2. @jiriido 2y

      the only thing that makes me angry about c++ is that my functions and methods work slower than methods from certain library

      1. @jiriido 2y

        probably that's I'm stupid

  10. @jiriido 2y

    like game of life with c++ in window with windows.h API

  11. @RiedleroD 2y

    I like headers, and I've written some C too.

  12. @callofvoid0 2y

    I still have the problem with function names which header they are in and what they do

  13. @declonter 2y

    Is there the reference implementation for C++? 😉

  14. @ahmubashshir 2y

    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

    1. @callofvoid0 2y

      Arduino e.g. right?

      1. @RiedleroD 2y

        iirc Arduino uses C++

        1. @RiedleroD 2y

          I should know this because I've done a fair bit of Arduino development a few years ago, but yet… not sure

        2. @callofvoid0 2y

          probably yes but anyways it's about setting and reading serials and bits

          1. @RiedleroD 2y

            yes, there's lots of mysterious weird variables in Arduino development. I do remember that much

            1. @ahmubashshir 2y

              arduino is clean and dumb enough

              1. @RiedleroD 2y

                could be better, could be worse

      2. @ahmubashshir 2y

        nah...

  15. @IvanVodkavich 2y

    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

Use J and K for navigation