Danny Thorpe used to say that he was very much interested in things that the .NET CLR did which C# did not support. Examples include unmanaged Win32 exports and exception filters. One thing which had previously escaped my notice is covariant and contravariant subtyping of generic types, which was apparently introduced along with generics in the 2.0 CLR. C# does not presently have a syntax for this, although the team is talking about it. Of course, some would question whether adding such support is such a good idea. Steve Yegge proposes that dynamic languages are a better solution to the problem. Since I, when thinking about covariance and contravariance, have a hard time remembering which is which, and since I suspect that many programmers don’t understand them at all, I can sympathize with his position.
On an unrelated point, I enjoyed the Steve Yegge blog post that I referenced earlier. There’s a lot of good stuff referenced there, and not just for users of dynamic languages. He cites work on, for example, how to make virtual method calls (nearly) as fast as static method calls, it least in places where it counts. From a paper published in 1994.
Post a Comment