C++ was initially an object-oriented extension for C (original name for project was "C with classes"). Language has been created by Bjarne Stroustrup. Now thanks to STL, templates, smart pointers, C++11 language is more durable and simpler to use than C. Many of us still consider C++ as a best choice for high-performance tasks (HPC, numeric processing, game engines). The language is supported on most of computer platforms (probably only C is supported on more platforms).
Why not C++?
C++ is not a language for a beginner programmer. Why?
1) The syntax of this language is very rich and language supports several programming paradigms:
- procedural / structural (when programming in C way)
- OOP (object-oriented)
- generic programming (templates)
- functional (C++03 or C++11 way - lambdas, immutable objects, STL algorithms, std::function)
- modular (name spaces without OOP)
Beginner programmer can feel lost when solution for his problem can be implemented in several ways. And all of them can be correct depending on project context.
2) Template syntax error messages are written in a cryptic way
Situation is getting better though thanks to new C++11 standard.
3) Language does not support one standard GUI platform.
There are several important (Qt, wxWidgets, MFC) but none of them is part of standard.
I've included some basic topics here because many schools teach C++ and also because finding job where C++ is required is far more easy than with educational languages more suitable for learning programming (Pascal, Lisp, Logo). So feel warned and continue...
1) C++ - Wikipedia.org
Official homepage of author of C++. If you have any C++ questions - try to ask him. I don't know how many emails he receives every day regarding C++, but he answered my questions in the past.
3) Language standards - if you are interested in different flavours of C++