Hi, my name is Rick Byers.  I’m a developer on the Common Language Runtime (CLR) team at Microsoft.  I work on the debugger services team where our main deliverable is the ICorDebug API which debuggers like Visual Studio use to debug managed code. 


Mike Stall already has an awesome ICorDebug blog, so I’m not about to try to compete with him here <grin>.  Instead, I plan on using this space to blab about whatever ideas from the software industry I happen to find exciting at the moment.  I’ll also try and share some information about the CLR that you might find interesting.


Mainly, I’m excited about improvements to programmer productivity in the software industry.  Building large and complex pieces of software which are also correct, reliable, secure, robust, maintainable and understandable is incredibly difficult.  In my opinion, figuring out how to do it better (“engineering” anyone?) is incredibly important.  I don’t pretend to have any great insights here, but I do try and read and learn what I can in this area, so I’ll often pass on tidbits of information and research which I think are exciting and important.  My favourite areas are the design of programming languages and developer tools.


Of course, the CLR (and managed type-safe environments in general) is all about improving developer productivity (which is primarily why I joined this team).  The CLR also makes it easier to experiment with and deploy new programming languages.  On that note, let’s get things started off with a little quiz.  Which language is each of the following code snippets written in?  Here’s a hint, there are .NET implementations for all of them.


  1. System.Console.WriteLine(“Hello World!”)
  2. write('Hello world'),nl.
  3. std::cout << “Hello World!” << std::endl;
  4. ." Hello, world!" CR
  5. Ada.Text_IO.Put_Line ("Hello, world!");
  6. ldstr "Hello World!" call void [mscorlib]System.Console::WriteLine(string)
  7. io.put_string("Hello, world!%N")
  8. System.Console.WriteLine(“Hello World!”);
  9. string* s = {yield return "Hello"; yield return "World!";}; s.{Console.WriteLine(it);};
  10. (display "Hello, world!") (newline)