Over the years I've coded pretty much everything. I started out life with 6502/Z80 assembler and Basic, went through Forth and APL, did Pascal and Modula-2. Had fun with C, C++, Haskell, Lisp, Java, C#, Perl, Python, loads of 4GLs, and a stack of minor stuff. Of all those languages, the one I like the most is C++.
Don't get me wrong, C++ has its weaknesses. Its a very hard language to learn completely. If you don't believe me go and get the Template Meta-programming book by Abrahams and Gurtovoy. It also remains the most flexible language around. Since its a superset of C you can do all the bit-fiddling and other stuff that allows you to write drivers and kernel level stuff. At the same time, with lots of use of things like STL and Boost you can get the high level programming capabilities that allow you to rapid prototype anything and everything, and write huge robust systems. For speed, C++ is beatable, but only in specific fields - for example vector maths Fortran can beat C++, so can APL. For some driver/kernel level stuff you'll be able to write assembler that is better than C++. But as a general purpose language C++ is faster in more things than any other language. And as a true cross-platform programming medium, only C is better.
Anyone who tries to tell me that Java is better cross-platform is having a laugh and has clearly never tried to port a complex java program between 2 different JVM vendors. Java manages the worst of both worlds. It is not portable, but in attempting to make it so, Sun have crippled the language. C# is more capable, but even less portable. I write C++ for multiple platforms, and would much prefer to do that with C++ than Java.
Anyway, I think some day a better language will come along. But nothing has been invented yet that is better than C++ as a general purpose tool.