Quote:Original post by captainfreedomQuote:Original post by ManTis
I suggest that you DON'T use C++ as a first language. Unless of course you developed in it for years now and want to try games programming. If so, SDL is always a good choice. If not, try out Python or C#, you'll save yourself TONS of grief. No, "But ManTis, all professional games are made in C++, lulz!" is not a good argument.
That's just your opinion. c++ has many advantages over other languages. It's by far the most portable language (especially when talking about non-pc platforms). There are more c++ engines available and they are more mature. And it doesn't force you to use a garbage collector.
"That's just your opinion." C++ has many disadvantages over other languages, especially when approached as a first language. It's rife with undefined behavior, it's hard to debug, and it indulges in one of the most complex grammars out there. This is evidenced by it's comparatively huge compile times, and it's lack of portability between different compilers, and it's poor intellisense support. Worse, this complexity isn't put to good use -- instead, it's just the consequences of it's messy evolution from C, adding even more brittleness to the code.
Undefined behavior and this complex grammar, in turn, makes one of the very foundations of learning -- trial and error, experimentation -- both hard and very misleading in what it teaches, which is very bad when you're already struggling with the basics of programming. This isn't just opinion, this is fact.
While C++ has it's place, and it can very easily be a good idea to learn it at some point, this does not mean it's what we recommend for a first language. It's a good idea to learn multiple languages "eventually" anyways.
I'd recommend C# (with XNA or SlimDX), or Python (with PyGame), unless, as ManTis already mentioned, you're already experienced with C++.