East of Toronto User Group, Generics, and ROTOR
I made the sojourn to Kate's EoT.NetUG (you can tell by the sheer length of the acronym she's a C++ guru), and had a blast. Not only did she bring in the deep expertise of Sam Gentile for tonight's meet, but had the foresight to book an LCBO-sanctioned hall, so once the main seriousness was complete it became an instant social occasion. Kudos.
Sam's presentation on .NET Generics was great. I was lucky enough to learn the concept straight from Anders (with about 30 others), but at the time a few key pieces didn't sink in on how they drill down through MSIL and the CLR. And as Sam also reminded the group today, until you get it at the CLR, you don't quite got it. Sam helped me finally get it.
Sam brought something else full-circle for me. The research project that developed the concept of Generics for .NET was called Gyro and it was developed by a couple blokes from MSFT UK. Their original paper remains the blueprint, and it's next on my reading list. I've skimmed through, it's straightforward and readable, and you should check it out too. And it was made possible by something called ROTOR.
In Spring 2002 I first heard of this thing called ROTOR from Brad Merrill. Brad was excited about ROTOR (as memory serves) because it helped people understand the CLI, especially those people who wanted to write their own .NET implementations for different languages (Brad's a linguist by nature as much as by schooling). Or new languages. Or extensions to existing languages. There was no precedent for this open sourcing of significant IP at MSFT. Many saw it as a risk, battles were fought, but making the CLI an ECMA standard and releasing ROTOR happened and we now enjoy the fruits, including Generics.
What does this mean to you, intrepid reader? Well if that ROTOR thing called Generics turned into an integral feature for v2.0, just where do you think the ideas for v3 are being sewn? And you thought blog-watching was busy work. Enjoy. Sam, thanks. It was great to finally meet.