Couple of Historical Facts


At first when I started to see things I’ve worked on talked about in articles I thought it was pretty cool.  And then I started to realize how much is taken down incorrectly.  I’m sure it is hard to piece things together after the fact.  Take this article.

A couple corrections:

  • The CLR was actually built out of the COM+ team as an incubation starting in late 1996.  At first we called it the "Component Object Runtime" or COR.  That’s why several of the unmanaged DLL methods and environment variables in the CLR start with the Cor prefix.
  • There were several language projects underway at the start.  The C++ and languages teams both had ideas (Cool was one of them), and in the CLR we wrote Simple Managed C or SMC (pronounced ‘smack’).  We actually wrote the original BCL in SMC.  It was a leap of faith to convert to C#.  At the time the IL instruction set was changing quite a bit and having our own compiler checked into the tree was very handy.  In the end we wound up releasing the SMC compiler in the SDK as a sample.

Given how much work was done on the runtime, languages, and IDE, it was quite surprising things didn’t leak by the time we did the formal product launch at PDC 2000 in Orlando.  Since that time (thankfully) we’ve tried to be much more transparent with the products we are building.


Comments (5)

  1. Ah yes.  By the time we switched over to running on you guys it was probably 1998 or 1999 and it was just bieng called "ComPlus" by then – and we went straight from J# to Cool (C#) and I think we (WinForms) were the first team to do so, thanks to Chris Anderson on a weekend mission to singlehandedly convert the whole tree.   I remember intracting with SMC but can’t remember if we had any in our tree.

    I remember the rough early integarations into the VS tree, the star chambers, debugging introp issues from the CLR side (no managed debugger).  Good times – not a shipped piece of software in the whole stack.  PDC2000 was a blast.

  2. Andrei Rinea says:

    so that’s why the core DLL is called MSCORLIB.DLL

    I thought that COR was a shortened "CORE" but it isn’t.

  3. Norman Diamond says:

    "And then I started to realize how much is taken down incorrectly."

    Just like any other kind of journalism.

    Or MSDN.

  4. Jason Zander says:

    One more factoid:  the MSCORxxx.DLL naming convention shows off my IBM background.  For the AS/400 we used a naming convention of [Sub][Component][Feature].  I (literally) created the original set of engine DLLs in the build system and copied that format.  So MSCOR is the Microsoft COR and the last 3 letters is the feature (Execution Engine, Just-in Time Compiler, Library, etc).

    Thankfully someone else created the class library name spaces and weren’t stuck in 8.3 mode like me 🙂

Skip to main content