It's interesting that you lump .NET in with Java. C# has more in common with Scala in terms of flexibility and expressiveness than it does with Java these days. C# 1.0 was a Java clone, sure, but the language has moved faster than pretty much any language out there since then.