How does a new programmer choose between learning C++ and learning Java?
Stroustrup: Since Sun chose to make Java syntactically very similar to C++, comparison between the languages becomes inevitable. However, Java and C++ are very dissimilar when you consider how you design systems and write good code (you can, of course write lousy code in any language). In particular, Java lacks most of the facilities that C++ provides for statically (compile-time) checked flexible code. This leads Java code to rely on run-time facilities in a way that would be inappropriate for a C++ program, and often inherently far less efficient. I think that if you plan to do serious programming in C or C++, you should learn C++ and the techniques that go with it. It is always useful to learn many languages and no serious programmer should be monolingual. Knowing just one language is inherently limiting, and learning the second, third, tenth, etc. language is far easier than learning the first. However, it would be a mistake to think that you can become a good C++ programmer just b