gaag. I've written elsewhere that I think Java took the wrong track with making changes and then insisting on backwards compatibility. I think Python and Perl have a better approach, do new stuff, fix bad designs, but be willing to break old code.
I spent five or so years writing C++, coming from a C and other language world before that. I've been in Java with some Perl/python/php for over a decade. When I left C++, I never wanted to look back.
Mostly because C++ was just C with classes, and lots of baggage layered on that made it very hard for professional developers to figure it out. All the const references to pointers, bletch.
Adding functional programming ideas to C++ is not going to make it better. IMHO. They could just go ahead and call it D or D++.
Of course, I'm biased. I think Java has too many C constructs, like int, float, etc. that no self respecting OO language would have.