27101
Developer's Corner / Re: The Best Introductory Language
« Last post by mouser on April 16, 2007, 10:07 AM »I am a long time C++ programmer and consider it more my native language than english. But I would not start with c++ as a beginner, for a few reasons:
1) A major design goal of C++ was to be backward compatible with C. Because of this, and because it was one of the pioneering object oriented languages, it carries around with it a lot of baggage in terms of idiosyncrasies and ugly illogical design aspects. These are things that as a coder your learn to ignore and look past, but as a new learner it makes things harder. It's like learning to congugate irregular verbs in a spoken language. yuck.
2) C++ was designed with a lot of emphasis on speed and minimal memory use. While this can be very advantageous in some cases, it means that some things are a little more raw and low-level than a more modern language; again useful for a hardcore coder but perhaps overkill to handle when just learning. This shows up in things like lack of array boundary checking, which can be deadly to new programmers, who are rightly angry when the computer starts acting weird instead of flagging an error.
3) C++ has no standard user interface library and it's not fun to find and use one -- this can be a killer issue for new coders who want to jump right into GUI programming. Languages like java and C# are similar to C++ but provide such libraries and can make it easier to transition to gui stuff.
There are more reasons as well, but as a long time programmer, my view can basically be summed up as follows: 95% of learning how to program has nothing to do with what language you use/learn. The more you learn, the easier it will be to switch to a new language. Better to pick whatever path gets you into the game and productive. C++ has some great things going for it, and mastering c++ will serve you well eventually, if only because you'll have an easier time figuring out whats going wrong when something truly goes wrong with your code.
1) A major design goal of C++ was to be backward compatible with C. Because of this, and because it was one of the pioneering object oriented languages, it carries around with it a lot of baggage in terms of idiosyncrasies and ugly illogical design aspects. These are things that as a coder your learn to ignore and look past, but as a new learner it makes things harder. It's like learning to congugate irregular verbs in a spoken language. yuck.
2) C++ was designed with a lot of emphasis on speed and minimal memory use. While this can be very advantageous in some cases, it means that some things are a little more raw and low-level than a more modern language; again useful for a hardcore coder but perhaps overkill to handle when just learning. This shows up in things like lack of array boundary checking, which can be deadly to new programmers, who are rightly angry when the computer starts acting weird instead of flagging an error.
3) C++ has no standard user interface library and it's not fun to find and use one -- this can be a killer issue for new coders who want to jump right into GUI programming. Languages like java and C# are similar to C++ but provide such libraries and can make it easier to transition to gui stuff.
There are more reasons as well, but as a long time programmer, my view can basically be summed up as follows: 95% of learning how to program has nothing to do with what language you use/learn. The more you learn, the easier it will be to switch to a new language. Better to pick whatever path gets you into the game and productive. C++ has some great things going for it, and mastering c++ will serve you well eventually, if only because you'll have an easier time figuring out whats going wrong when something truly goes wrong with your code.

Recent Posts
