C++ is not that complex, and honestly it's one of the best documented languages out there. The semantics are very clear and you can easily decide to stick to a smaller subset of C++ if you don't like the advanced features like concepts, template metaprogramming, and class hierarchies (I would in general advice against OOP in C++, just as I would in any other language).
Ruby does a lot of magic stuff to help beginners. That means the semantics are unclear. IMO this is similar to how Apple optimizes UI/UX for first impressions to drive sales. The journeyman user is neglected, simple things are easy to do, but the most powerful features are missing for journeyman and advanced users.
I'm not saying Ruby is a bad language. Just saying that I have the opposite view. I too love to learn, but Ruby did not help me learn, it actively got in my way.
You can make a simple language without confusing semantics, see Go, C, python.
C++ is so complex that you can take 10 C++ devs, put them in the same room, and none of them will be able to read any others' code because they've each written it in a mutually exclusive C++ feature set.
Have you written C++? There are no "mutually exclusive" feature sets. The only deprecated language features I can think of are auto pointers and trigraphs, and I have never seen them in the wild.
It doesn't really work as a joke if there's no truth to it.
I understand what mutually exclusive means. There are no two people writing C++ with no overlapping language features. I struggle to understand what you might even mean.
Non-equal subsets of the full language feature set? Yes, that will happen with any nontrivial language.
It is very hard to take a statement like yours seriously when even veteran developers continue to ship software with memory bugs that exfiltrate data and crash systems to this day.
When I said it's not complex I did not mean it's perfect or that it is easy to write flawless code in C++. And obviously C++ is most relevant within its own niche: video games, scientific computing, and performance critical software. The issues you mentioned are tradeoffs that C++ suffers from the higher degree of control a developer has. They're real, and that's a valid point.
What I meant was that if you wish to fully understand how the language works, I bet you that C++ has a clearer path to get there than Ruby does. The documentation and surrounding ecosystem of conference talks, content creators, and longer texts on new features is excellent. Not to mention public online communities like the irc channels on libera.chat.
The original poster I answered to was saying that C++ requires a lot of dedication to understand, but I would say this is true of every language, and C++ is very good at getting you there.
Ruby does a lot of magic stuff to help beginners. That means the semantics are unclear. IMO this is similar to how Apple optimizes UI/UX for first impressions to drive sales. The journeyman user is neglected, simple things are easy to do, but the most powerful features are missing for journeyman and advanced users.
I'm not saying Ruby is a bad language. Just saying that I have the opposite view. I too love to learn, but Ruby did not help me learn, it actively got in my way.
You can make a simple language without confusing semantics, see Go, C, python.