3 ms·
I'm working with C++17 right now and I personally can relate to the author. Reading the discussions around C++20 has been an eye-opening experience for me. C++
by HippoBaro 8y ago
I'm working with C++17 right now and I personally can relate to the author. Reading the discussions around C++20 has been an eye-opening experience for me. C++ was already a difficult language but has become a behemoth of complexity. But it has to be said that once you know "Modern" C++ it's a very productive language.
Somehow, it feels good to use it and after a while you find yourself reveling in complexity. I'm almost ashamed to say really.
- lallysingh 8y agoThe complexity in the language is gameified a bit. It's a terrible sport where everyone suffers.
- munchbunny 8y agoMy personal favorite metaphor for the complexity of C++ (and other languages, like Scala) is a hamster wheel. You enjoy writing it, but from the outside it feels a bit ridiculous to see the amount of energy dedicated to problems of your own making. R-value references, for example. This is entirely a problem that C++ has created for itself with its copy semantics. From inside the C++ ecosystem, the language feature makes sense, but from outside the C++ ecosystem, the idea that there are now two types of references and two types of copy semantics triggered based on the implicit interaction of reference types, and you sometimes need to do idiomatic things like declaring undefined private copy constructors to lock down unintended implicit behaviors relating to copy semantics for R-value references... yup, hamster wheel. C++ isn't the only language where I get this feeling. I think Scala is pretty guilty of this too. It's not that I can't grok it if I wanted to (survived my share of proof based, pure theory math classes back in college), it's that I think it's entirely too much energy to be spending on mundane code.
- jstimpfle 8y ago> two types of references include normal pointers and it's three.
- ryanianian 8y agoadd const-ness and you get *2. Then ponder what `const &&` even means.