Some more .NET/C# Generics Research Project History
Another history email, discovered while poking around for some old image files. There are some other entries in this series here.
In any case, In 2004 I sent around a note to our research lab about our coding work on .NET generics. It began:
I am enormously relieved to announce that the Cambridge Generics team (Andrew, Claudio and myself) have essentially finished all of our coding work and bug fixing for the Whidbey Beta 1 release of the Common Language Runtime (which is included in the .NET Framework, Visual Studio, …)This milestone is called “ZBB” – Zero Bug Bounce, which means there are no current bugs remaining to be fixed for that milestone. We actually reached ZBB a few weeks ago, and then some more bugs came in, but now we’ve fixed those too.
One of the interesting things was the table of bug fixes, included below. I'm including this for a couple of reasons
- From a Microsoft Research perspective, I want us to build an institutional understanding of technology transfer - how does it succeed? There are various models, but I think the statistics show how in this case the Microsoft Research team "went the extra distance" to make sure this feature landed well in both C# and the Common Language Runtime.
- From a research perspective it's important to understand how language features land in "industrial" languages.
- From a language/runtime perspective, its interesting to see the relative difference in the bug counts, a strong indication of where the complexity in implementation lies.
Here are the compulsory bug-fix stats, ... Some of these bugs hide an awful lot of work…
Whidbey M1 (Q3-Q4 2002) M2 (Q1-Q2 2003) Beta1 (Q3,Q4 2004)
CLR/C# Generics bugs fixed by Cambridge 39 258 229
CLR Generics bugs fixed by CLR team 2 13 ~45
C# Generics bugs fixed by C# team 7 75 27
Bugs Opened by Cambridge 36 128 145
Total bugs fixed with the word “generics”… 58 510 1319
And if you're about to ask, no we didn't implement the support for generics in Visual Basic. That was done by John Hamby, to whom I still owe a Ferrari. And to all those using C#/VB/F# generics, I hope you're enjoying those bug fixes :-)