Language Uniformity - Bug or Feature?

I recently read an interesting interview to Martin Odersky, Scala creator, at Computer World's A-Z of Programming Languages interview series. Beyond all the buzz this interview and a similar one to Clojure brought around this new trend of bringing Functional Programming to mainstream, there was one question that caught my attention and drove me to write this post. I'm quoting here part of Odersky's answer to that question:

Philosophically, I think that is the biggest difference between Scala and Java. Java has a fairly restrictive set of concepts so that any Java program tends to look a bit like every other Java program and it is claimed that this makes it easy to swap programmers around. For Scala, there's no such uniformity, as it is a very expressive programming language.

I've always been a strong defender of C++ against all existing languages and all of those yet to come (by the way, check out the C++ interview, I'll refer to it in a moment) and one of the main props I always talk about is the fact that you can mutate your C++ code to look like any of the most popular programming paradigms: Structured Programming, Object Oriented Programming, Generic Programming, and even Functional Programming to some extent; something hard to do in most of the other languages: for example, you cannot go very long into Object Oriented Programming using plain C, and you definitely can't go out of it using Java. Yet, that comes at the price of an extremely heterogeneous set of code samples making it difficult for any given programmer to say "I'm an expert on C++ Programming". Futhermore, as stated by Odersky in his answer, companies are challenged by the fact that it's difficult (but of course not impossible) to take off from existing third party code even if all of the company programmers have a medium sized experience on C++ simply because whoever wrote the original code had a wide fan of programming styles and paradigms to choose from and chances are that he didn't choose your favorite one. On the academic side of things, it's very difficult to conceive a complete C++ course that could cover all of the different language features you may use (in the particular case of my University, the professors don't even know about the '98 standard, so as I usually say, modern C++ doesn't even look like the programming language they teach). Odersky puts this lack of uniformity as a possible drawback in Scala, an argument that might as well apply to C++.

If you ask me, I frankly don't think that makes C++ a weaker language than any other language around. After all, it's a well known fact that learning C++ is harder than just memorizing the keywords as stated by Stroustrup himself on his A-Z of Programming Languages interview:

So I'm often pleased with the surprises, but many times I'm dismayed at the attempts to force C++ into a mold for which it is not suited because someone didn't bother to learn the basics of C++. Of course, people doing that don't believe that they are acting irrationally; rather, they think that they know how to program and that there is nothing new or different about C++ that requires them to change their habits and learn "new tricks." People who are confident in that way structure the code exactly as they would for, say, C or Java and are surprised when C++ doesn't do what they expect. Some people are even angry, though I don't see why someone should be angry to find that they need to be more careful with the type system in C++ than in C or that there is no company supplying 'free" and "standard" libraries for C++ as for Java. To use C++ well, you have to use the type system and you have to seek out or build libraries. Trying to build applications directly on the bare language or with just the standard library is wasteful of your time and effort. Fighting the type system (with lots of casts and macros) is futile.

I personally think that, in the end, your C++ programming style an expertise boils down to your favorite C++ libraries and frameworks which you'll use the most. I, for example, consider myself affiliated to Boost Libraries' and Qt Framework's programming styles and conventions, because those are the ones I use the most. You can pick your own way to go in this wide world of possibilities and have a happy hacking!

PS.: Did anybody count the number of links I included to Computer World's A-Z of Programming Languages interview series? I'm going to start charging these guys for the propaganda :)