C++ made easy?

My friend recommended me to not learn c++ until Microsoft release their advanced and easy method? He also told me that a lot of the current c++ function will be wasted and won't be used later on when the new version is released. Should I wait or start learning now?
Ask your friend for more information or he's a c++-incapable fool. The only recent standard advancement to C++ is 0x, which is completely backwards compatible and not coming from microsoft but the ISO.
If you actually want to start learning C++, why do you even care what your friends think?
Even if your friend is right, which I don't think he is, you are better off learning how to do it the more complicated way, so you understand how things work. A good example is the STL, using it is fine, but you should understand what it does in the background, so you get the best performance. (sometimes writing your own container can be useful if you want certain functionalities the STL can't give you or manages things in a way you want.)
Btw, chances are your friend is talking about C#. C# is MSFT's proprietary little language. C# != C++. And in a lot of cases (ie, any OS besides windows, and even then it's better to know C++ IMO), C++ > C#.
If you really want to learn C++, but worry about changes, you could always start with C. C++ adds functionalities to C, but if you are just doing general programming you can do everything in C. Plus you don't have to worry about them changing it.
Better to learn C++ straight than C, then C++. C lacks a lot of the stuff of C++, like classes (IIRC).
You do have structs, but no member functions. The disadvantage is there is less safety, but once you learn C you can move on to C++ pretty easily. For really basic programming you will wind up writing code that will probably be compatible with both, unless you opt to write member functions in your first program.
but once you learn C you can move on to C++ pretty easily.


I would disagree there, since the issue with doing that is that you might get used to using C-style ways of dealing with things (passing by pointers, global functions etc) instead of the C++ style (pass by reference, classes/member functions). You *can* write C in C++, but I think that if you are going to work in C++ at the end, you want to learn C++ from the start.
My friend recommended me to not learn c++ until Microsoft release their advanced and easy method? He also told me that a lot of the current c++ function will be wasted and won't be used later on when the new version is released.

Like tummychow, I am assuming, he talks about the new C++ standard coming from ANSI/ISO and not Microsoft (although Microsoft is one of the major companies who have to write their compilers to support the new standard).

C++0x brings some easier constructs and removes a few pitfalls from the language that would make learning it easier for beginners.

But my impression is, that most features of the new language standard are meant for intermediate people to get hold of advanced techniques. Varadic templates, concepts (not part of C++0x anymore), Advanced initializer syntax, lambdas... All these are big additions to C++ which will not help beginners at all, but help people somewhat familar to "play among the gurus".

For beginners? Well, loops are a bit easier to write now, pointer have a dedicated null-value and some quirks with "> >" are removed. That's about it..


So I'd say: There is no real reason to wait. C++ is and will be hard to learn. Today and at least in the next 10 years - probably forever. If you have to learn it - no reason to wait. If you are not sure, try easier languages first (which is not C ;).

Ciao, Imi.
Topic archived. No new replies allowed.