I would be a bit surprised. These languages are quite old and carry a lot of baggage. Although they are quite a bit more expressive than the current champions, they also give up a lot and are much more challenging to implement efficiently. Most importantly, I do not think they adequately address the pain points I mentioned in http://blogs.msdn.com/hermanventer/archive/2008/02/28/succeeding-as-a-programming-language.aspx.
Now, in Java you can make your data structures polymorphic by annotating your fields with type “Object” and casting down whenever you need to operate on the value stored in the field. But this is not only verbose and ugly looking; it is also downright hard to do. In effect, the programmer has to implement dynamic typing, instead of the compiler doing it. And doing it efficiently is hard. So, instead, Java and C# have acquired ways to parameterize types. This gets you quite a bit of polymorphism, but often too little. Also, the added expressive power comes at the expense of much more complicated type rules. Not many weeks go by in between episodes where I find myself puzzling over how to make a type error go away, or helping someone else understand the C# type rules.