James Robertson thinks that I’m too breathless about LINQ in my recent article about C#’s popularity on the CLR. For some reason, I can’t post to his comment section, so I’ll just respond here and shoot him a trackback:
What got through the asbestos was the comment that I “confused s-expressions with function pointers.” C’mon, be fair to the context. I think that paragraph is pretty good for, what? 80 words?, making the point about code-data equivalence while trying to acknowledge languages like LISP and Smalltalk. Feel free to abhor C#, my code, or my conclusions, but please don’t ignore the fact that I’m one of the few industry analysts who bends over backwards to talk about languages outside the C family.
As to the issues of type, perhaps my statement on explicit-implicit vs. static-dynamic was not as clear as it could be. (Clear or not, though, I note that some commentors taking potshots at my accuracy perpetuate the static-dynamic confusion on their own blogs.) I think James took my point in his OP, where he acknowledges that the mainstream has voted for explicitness. He then goes on to (essentially) say “Look how much verbiage results!” Further, LINQ introduces type inference, but you still have to (finger-)type these as var. Implicit-typers feel free to roll your eyes. However, in contrast with what I take to be the popular sentiment [@ James’ blog], I don’t believe implicit vs. explicit typing plays the central role in language popularity. Some role, yes, but not nearly as dominant in practice as its presented by advocates.
The article is about why C# is the most popular language for the CLR. I tried to write that I felt there were 3 main issues: the popularity of the C language family, the evolution of the CLR from a technology with relatively narrow goals to one that aims to be a platform for broad developmentand the role of Anders Hejlsberg in the evolution of the CLR. I suggested that the role of Hejlsberg is the most intriguing, because one can clearly see an alignment between his interests and opinions and the evolution, not just of C#, but of the CLR. Therefore, I would think fans of languages other than C# would do well to pay attention to Hejlsberg’s latest work, precisely because it likely foreshadows the evolution of a very important platform.
Finally, the comment that the industry “blindly stumbled into” a preference for the C family is very disappointing. I hope Patrick Logan isn’t so tired of fighting the good fight that’s the best he can muster. C# is all of 5 years old, Java 10, the old excuse that they are languages of Moore’s Generations distant in the past has entirely lost its persuasiveness.
A question for those who believe explicit-implicit typing is central to language popularity: on the CLR, why has C# grown to be more popular than VB?