Hello, World!


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)
Comments (10)

  1. Pieter says:

    1. VB.NET

    2. ?

    3. C++

    4. ?

    5. Ada 😀

    6. IL

    7. ?

    8. C#

    9. ?

    10. ?

    Hope I get 50% for this! 😀 Or is the pass rate 70%?

  2. Welcome to blogosphere…

    Hmm, a few of these are easy, but others are not. Let me try a first shot.

    1) JScript?

    2) not sure, is this fortran?

    3) C++

    4) no clue

    5) I guess the namespace is a giveaway: Ada

    6) IL . But shouldn’t the ‘call’ be on a second line?

    7) No clue, again

    8) C# (definitely) and also J# (probably)

    9) C-Omega

    10) no clue…

  3. PatternGuru says:

    Just a quick guess (not complete):

    1. VB.NET

    2. ?

    3. Managed VC++ (guess?)

    4. ?

    5. ADA.NET?

    6. MSIL

    7. ?

    8. C# 1.0

    9. Ehh if not for the * I’d say C# 2.0…?

    10. LISP.NET

  4. Rick Byers says:

    Wow – three decent answers and my blog has only existed for less than 12 hours! Good work guys.

    I was thinking VB.Net for #1 (I don’t know JScript very well, but it does have semicolons). Nope, #2 isn’t fortran. Luc, good question about the line-break for #6 – I thought so too, but then I tried it and apparently ilasm didn’t care that the two statements were on one line :-). Comega is correct for #9 – good work Luc, I thought that would be a tough one! (I’ll be blogging about Comega soon). #10 is "a Lisp" (good work PatternGuru), but I don’t think common lisp defines "newline". I was thinking "Scheme".

    So we’re left with 3 hard ones – #2,#4 and #7.

  5. 1) VB.NET

    2) prolog

    3) C++

    4) Forth (funny, but true)

    5) ADA

    6) IL

    7) Eiffel

    8) C#

    9) Comega

    10) Lisp

    Come on!! 😉

  6. Rick Byers says:

    Wow – vey good Matthew, that’s perfect (although I still think #10 is more accurately Scheme than Lisp)

Skip to main content