Originally Posted by ABD EL HAMEED
Well I was asking about performance because I was interested in CUDA parallel computing so performance is everything and that's why I was asking about it :/
CUDA actually uses its own compiler and programming language which is based on C/C++ syntax. If you intend to write CUDA code yourself than learning C first is probably the best thing to do, as the languages are very similar. The overall logic of a CUDA program is going to be quite different though from a typical C program. If you only intend to use CUDA, i.e. use GPU for massively parallel computations, then you can use an existing library, which is written in CUDA C/C++ and provides bindings to the language of your choice. In that case it doesn't really matter if you call some CUDA method from C, C++, Python or Matlab.
If you are interested in C++ then just a few days ago ISO C++ has launched a FAQ which answers most of the questions you may have about the language: http://isocpp.org/wiki/faq/
Here's what they have to say about C++ vs C:
In 99% of the cases, programming language selection is dominated by business considerations, not by technical considerations. Things that really end up mattering are things like availability of a programming environment for the development machine, availability of runtime environment(s) for the deployment machine(s), licensing/legal issues of the runtime and/or development environments, availability of trained developers, availability of consulting services, and corporate culture/politics. These business considerations generally play a much greater role than compile time performance, runtime performance, static vs. dynamic typing, static vs. dynamic binding, etc.
Those who ignore the (dominant!) business criteria when evaluating programming language tradeoffs expose themselves to criticism for having poor judgment. Be technical, but don’t be a techie weenie. Business issues really do dominate technical issues, and those who don’t realize that are destined to make decisions that have terrible business consequences — they are dangerous to their employer.(...)
Several reviewers asked me to compare C++ to other languages. This I have decided against doing. Thereby, I have reaffirmed a long-standing and strongly held view: Language comparisons are rarely meaningful and even less often fair. A good comparison of major programming languages requires more effort than most people are willing to spend, experience in a wide range of application areas, a rigid maintenance of a detached and impartial point of view, and a sense of fairness. I do not have the time, and as the designer of C++, my impartiality would never be fully credible.
C++ is a direct descendant of C95 (C90 plus an Amendment) that retains almost all of C95 as a subset. C++ provides stronger type checking than C and directly supports a wider range of programming styles than C. C++ is “a better C” in the sense that it supports the styles of programming done using C with better type checking and more notational support (without loss of efficiency). In the same sense, ANSI C90/C95 is a better C than K&R C. In addition, C++ supports data abstraction, object-oriented programming, and generic programming.
We have never seen a program that could be expressed better in C95 than in C++ (and we don’t think such a program could exist – every construct in C95 has an obvious C++ equivalent). However, there still exist a few environments where the support for C++ is so weak that there is an advantage to using C instead. There aren’t all that many of those left, though;