Teachability Important to Programming Language Success
Eric Gunnerson, discussing "Why so many languages?" makes the key point that "Compactness and simplicity have big benefits as well in programming languages."
Once upon a time, I made a good living teaching Java. Sometimes I taught it to C and C++ developers, sometimes I taught it to COBOL developers. One way or the other, in a week you could really deliver value: if people understood imperative structured code, you could really move them towards an understanding of object-oriented programming in just a week. Same for C# 1.0.
Even so, you had to talk about "well, not everything's an object," and deal with function-call semantics and equivalence and so forth. Personally, I think that the inclusion of native types was a critically beneficial language-design decision for Java, but it does complicate teaching. In .NET, it's even harder to teach, because you can't say that value types are limited exceptions.
About a year ago, I had a friendly debate with my colleague Allen Holub about the changes in the then-new C# 2.0 and Java 5 languages. One disagreement we have is that Allen doesn't like generics, I do. I tend to \<a href="http://www.knowing.net/ct.ashx?id=d5cf50c2-af54-4f32-b290-db5d345ada27&url=http%3a%2f%2fwww.knowing.net%2fPermaLink%2cguid%2c336.aspx"" target=_blank rel="noopener noreferrer">like explicit typing, my feeling is that 99% percent of the time you have a type intent that you can memorialize with a few finger strokes and gain Intellisense and better comprehension. But Allen cleverly didn't argue the finger-typing issue, he said that what he disagrees with is that generics are not OO, thereby making the language harder to learn.