I'm trying to figure out how a language which features reified generics, covariance and contravariance, lambdas, expressions-as-data, type inference, both static and dynamic types, reflection, and anonymous types could be considered by anyone as "catering to novices" or "coddling" you. Say what you want about MS, but C# is an incredibly powerful and expressive language.