Yes, it's a big language, but the complexity is at least justifiable, and generally comprehensible.
C++ gives you immense power and a huge range of functionality to choose from, and some of the complexity arises from this. It has a very long history, which also contributes to the complexity. And it's first and foremost a pragmatic language, which of course brings in some complexity in order to deal with the inherent complexity of reality.
If something is seen as "complex" in C++, there's usually a good, or at least understandable, reason for this. You can usually find technical documents or discussion that justify why things are they way that they are, and the reasoning is usually quite sound. And in many cases, it's possible to safely ignore or just not use large portions of the complexity that C++ offers without facing any sort of a penalty or harm.
It's very different from the complexity that languages like JavaScript or PHP bring. The complexity there is usually unjustifiable, and often due to very rushed work, a lack of understanding and poor design, or a lack of care and consistency. They suffer from serious flaws and complexity that were not justified when introduced, and were subsequently not cleaned up or fixed once recognized. They suffer from harmful complexity, while C++ offers beneficial complexity.
If I were to use a word, personally, it might be "daunting" instead of "terrifying" but I have at least some experience with C and manual memory management. In that regard C isn't alien to me, so my perception is a little different from the op.
I don't think the parent post was trying to say C++ was necessarily bad, but the features of C++ being justifiable or not don't really impact my feeling of it being daunting, or terrifying to learn. I could say, with reasonable certainty, that every part of a space shuttle launch probably has a good reason for being there, but the system taken as a whole is still intimidating. It's that C++ is a huge beast and there's just so much there. I haven't gone hard core at looking into C++, but every time I do people start of by saying you need to pick a sane subset of the language to work with, and they all have different views of what is and isn't sane. Add to that the fact that you can do some potentially scary stuff when you're close to the hardware, and I can see why it would be a bit scary.
In my view, the right way to approach that, if I were really trying to learn the language, would be to just pick a guide and go with the assumptions it makes until the reasoning for those assumptions becomes more clear and I can better pick and choose according to my use case. But it's still an intimidating proposition.
I'm also guessing that something like Javascript is less terrifying because of previous experience with dynamic languages. The kind of foot-shooting you do in javascript (because of accidental global scoping, poor equality semantics, or any number of things) at least make sense in the context of having programmed in a dynamic, managed language previously. C and C++ can be pretty scary when everyone talks about manually managing memory or being close to the metal or saying stuff about 'systems programming', which just sounds like crazy voodoo if you don't have a point of comparison.
I think the things your saying are all true. Just trying to offer my perspective as to why, those things being true, a language can still be scary to approach. fwiw
C++ gives you immense power and a huge range of functionality to choose from, and some of the complexity arises from this. It has a very long history, which also contributes to the complexity. And it's first and foremost a pragmatic language, which of course brings in some complexity in order to deal with the inherent complexity of reality.
If something is seen as "complex" in C++, there's usually a good, or at least understandable, reason for this. You can usually find technical documents or discussion that justify why things are they way that they are, and the reasoning is usually quite sound. And in many cases, it's possible to safely ignore or just not use large portions of the complexity that C++ offers without facing any sort of a penalty or harm.
It's very different from the complexity that languages like JavaScript or PHP bring. The complexity there is usually unjustifiable, and often due to very rushed work, a lack of understanding and poor design, or a lack of care and consistency. They suffer from serious flaws and complexity that were not justified when introduced, and were subsequently not cleaned up or fixed once recognized. They suffer from harmful complexity, while C++ offers beneficial complexity.