How It All Started…AKA the Birth of the CLR

Hello everyone, I am the Lead Architect of the CLR/UIFX group and the Chief Architect of the .NET Frameworks. I was thinking about what I should put in the first entry of my blog… as one of the founders of the CLR I thought it would be interesting to give you some history of how CLR was born in my blog’s intro entry.


Before the CLR I was working on JVM. When Mike Toutonghi, Peter Kukol, Anders Hejlsberg, and I realized that the JVM would not give us the flexibility to innovate in the places we cared about - support for other languages, deep interop with COM and unmanaged code, extensive frameworks to expose MS technology - we decided to join force with the COM team and form a new group, tentatively named COM 2.0.


We soon disagreed about object management, specifically about explicit management like COM (AddRef/Release) versus automatic management (Garbage Collection), we decided to form 2 groups: COM+ and CLR. This marked the birth of the CLR group.


Early on, we were joined by a meta data group who had been prototyping some meta data schema for the C++ compiler. Peter Kukol and the C++ group collaborated on the IL instruction set. I designed the architecture of the runtime and wrote the Garbage Collector (and yes the GC prototype was was written in Common Lisp first and I wrote a translator to convert it to C++).


Soon we had all the fundamental components of a runtime, some runtime helpers for the base classes (String and Object), and a new cool language: C#. We were in the business to build the full fledge CLR and the Framework.


So there you go, for those curious minds this is how CLR was started.


In the next blog entry I will be writing about server modeling. Also feel free to let me know if there are specific topics you want to see me write about.