Despite many improvements in
C++ is still not an easy language. Java, while not as easy as some may think, is still an easier language with very good performance (often almost as fast as
C++) and offers better IDEs (maybe
Visual C++ is as good as current Java IDEs but no luck here on Linux), a much more comprehensive standard library (the JDK), more libraries (e.g. Hibernate, Spring, JEE, Lucene, etc) and no memory leaks (well, almost none – you can still build a memory leak in Java but it is more difficult to do so than in
C++). To be fair, with modern
C++11, it is much easier to avoid memory leeks.
C++11 has many cool features like lambdas, auto keyword, move semantics and much more. It is definitely a much better language than
See this overview by Herb Sutter about the new features in
Elements of Modern
To sum up, I think everyone should learn at least some
C++. If you have been programming in
Python for the last decade and never touched
C++, now with
C++11 I think it is time to learn
C++11 and improve your programming skills while doing so.
I probably won’t be using
C++ much at work in the coming years and when I need a more powerful language than
Java, I will probably go for Scala, but I will have a closer look at
C++11 and try to learn and understand the new features, particularly those about multithreading and concurrency.
Remember: It always helps to learn a new programming language even
when you don’t plan to use it in production.