   Should I wait to learn for C++0x or?
  Hi everyone! I'm going to learn C++; however, I heard the upcoming "C++0x" and I'm not sure if the language will be the same as before, or it's totally changed.    I wonder whether I should wait for C++0x to release and learn it, or if C++0x only add new features new STLs (where the old ones still the same), I would just start learning the current C++ and learn the new one.Thanks!   
  "Programming" is language agnostic. Once you learn how to program in one language, you start to grasp the abstract concepts of programming in general. If you're excited to start programming, don't wait! start right away. Observational note: Waiting for a new technology to come out can be a form of procrastination.   ;  C++0x is primarily about adding features and clarifying current ambiguities. Moreover, it is likely that full C++0x on common compilers, and in particular on MSVC++, is several years away. Because of these things, you won't be doing yourself any favors by waiting around for C++0x. Get started now.   ;  C++1x will add even more confusion to the mess that C++03 is.  By the time you become good in C++03, C++1x will be widely supported (or dead and forgotten) -- you can then grab a C++1x-capable compiler and continue your education.   ;  Alright thanks for the advice! I'm going to get start on my "C++ Primer 4th Edition" book right away!   ;Quote:Original post by OxydC++1x will add even more confusion to the mess that C++03 is.  By the time you become good in C++03, C++1x will be widely supported (or dead and forgotten) -- you can then grab a C++1x-capable compiler and continue your education.Don't say that ! It will remains C++0x, the 0 won't become a 1 :I want to believe:.Appart from that, you can try some new features with GCC which implements some interesting things (RValue reference, variadic templates...).For me, one of the thing that can confuse novices is RValue references, but in fact it's pretty easy and can boost performance a lot ^^.auto is also a great great keyword ! I even think it's one of the best new features of C++0x ! So practical !;  If you're new to programming, then for the love of God, don't even think about touching C++. Haskell or Python are good first languages; they let you focus on problem solving and actual programming rather than irrelevant low-level details of three decades ago. C++ is just about as bad a first language as you can find.(I went the route QBASIC -> C -> C++ -> modern languages, and not a day passes by where I don't regret that.)   ;Quote:Original post by ValdermanIf you're new to programming, then for the love of God, don't even think about touching C++. Haskell or Python are good first languages; they let you focus on problem solving and actual programming rather than irrelevant low-level details of three decades ago. C++ is just about as bad a first language as you can find.(I went the route QBASIC -> C -> C++ -> modern languages, and not a day passes by where I don't regret that.)try{  resistLanguageWar();}catch{  throw fit;}   ;Quote:Original post by ValdermanIf you're new to programming, then for the love of God, don't even think about touching C++.Fair advice although it's not that cut'n'dried.Quote:Haskell or Python are good first languagesWTF? Haskell as a good first language? Yeah sure if you want people unable to understand normal programming in real life. Learn a functional language to broaden your mind, but not as your first language.Quote:(I went the route QBASIC -> C -> C++ -> modern languages, and not a day passes by where I don't regret that.)I went exactly the same route (well add GWBasic before QBasic) and I am extremely glad of it. Understanding how bits are stored in a byte, how pointers work, approximately how code is mapped to assembly - these are all things that form the backbone of my software development skills and allow me to learn new languages and technologies quickly.;Quote:Original post by BakuraQuote:Original post by OxydC++1x will add even more confusion to the mess that C++03 is. [...]Don't say that ! It will remains C++0x, the 0 won't become a 1 :I want to believe:.[...]According to Wikipedia (insert disclaimer about research on Wikipedia here), they've already missed their 2009 goal of submitting the final draft. It'll likely become C++11 or C++12 when it's finally published.But until then, I think I'll too keep referring to it as C++0x. Using another term would only be confusing at this point and you'd still have to google for C++0x to find existing informations on the net :)