What makes people think c++ is so hard

Im aware that no programming language is easy, but why do people say c++ is so hard. I'm 14 and have been tinkering with it for a while and find the syntax relatively easy to understand so far, that being said though I'm just starting to learn about friends of classes and composition, etc. So I guess the question I want answered is, does c++ just seem alright so far because I'm not quite far enough into the language and does it get way to complicated further ahead, and should I stick with it if I understand the syntax, or go to a language like java?

All answers will be greatly appreciated :) Thank You
In C++ you really have to know what you are doing. If you do something wrong (e.g. derefence an invalid pointer, access an array element out of bounds, etc.) you are lucky if the program crash. Then you know there is a problem somewhere in your program but not where it is (a debugger can help but it might not be straight forward for a beginner). If you are unlucky the program does not crash (or crash at odd times) and instead gives you obscure bugs that are not obvious at all.

In Java you can pretty much try and see if something works. If something goes wrong a stack trace gets printed that tells you exactly where the problem is. Java also forces you to do things in certain ways (example: no unsigned types, everything has to be inside classes, multiple inheritance is not allowed) so you don't have to make these decisions yourself.

Java also has a bigger standard library compared to C++. Java has classes for networking, graphics/GUI, sound, cryptography, and much more. In C++ you would have to install third-party libraries (or use system specific functions) to do that.
I don't think it's inherently hard, in fact I don't think it's hard at all.

Just be aware that syntax is only a part of the story.

Solving problems, that's the real job. Your programming language is a tool you use to implement solutions to the problem. Of course your language bias will help or hinder you in formulating your solutions.

The real trick is learning to use the language well enough, to solve most of the problems that are relevant to you, and millions of programmers use C++ to do this everyday.

C++ with it's different programming styles and low-level features will give you more power and flexibility in the long run than many other languages. Of course one could argue that writing in machine code is best, since all programs will eventually pass through that stage at some point. You just have to find the right balance for your needs.

You may want to use JavaScript to add some life to a website for instance, that would be totally appropriate. No one would expect you to write a C++ program to do that. You would have to solve so many other problems first, that it wouldn't be worth it and could be justifiably called hard. That's not the language's fault, it's just not suited for solving that kind of problem with that level of effort.

On the flip side, you wouldn't want to implement your supersonic jet flight control system in JavaScript. You could conceivably swim from England to France, but you'd probably take a boat, train or plane. A swimming pool requires a totally different approach. It's not inherently good or bad, it's just using the right tool for the right job.

Try programming a VCR, now that's hard :-)

If you're enjoying C++, I urge you to carry on, but I am biased...
Thank You for your input, It was very useful.
In comparison to a language like Python, one may say so. The language becomes "harder" when dealing with more advanced concepts like memory management with pointer in large-scale applications, pointer arithmetic, and a few others. But I believe in relativity. "The way you see it is how it is."

Aceix.
Topic archived. No new replies allowed.