"What I'm trying to say is that we should stick with C++, especially C++0x, and forget about the rest."
Interesting. I programmed a fair bit in C++ last century. Today I did my first serious coding in C++ in this century, writing a class, after years of Java.
Wow. Suddenly you have to worry about .h files, #IFDEF, #INCLUDE for the header files, declaring functions, in effect, in two different places (the header and the .cpp file). And if you mess up some closing semicolon or }, the preprocessor goes nuts and you get weird errors in some .h file (the next one) that you haven't even looked at. Not to mention whether to use foo.bar or foo->bar or where to put the * on a declaration.
The only thing I liked was the shortcut for ints
if (!error)
which is handy in chains of lots of function calls that return negative numbers on failures, e.g.
int error = call_1();
if (!error)
error = call_2();
...
if (!error)
error = call_N();
return error;
Of course, functions returning funny ints on errors are non-ideal, an exception is better, as well as some form of finally... :-(
Not to mention all the *real* faults of C++. Now, maybe C++0x fixes some of this, I don't know much about it.