21 Oct

2100 Ways to Implement Helloworld in .Net

Category:UncategorizedTag: , :

Have you seen the list of languages implemented on the .Net CLR lately? I was just listening recently to the .Net Rocks episodes where Jon Harrop introduced F# and the one in which John Lam discusses the DLR and this caused me to go find this list on Wikipedia. Really, the thing that made me care about this was Robert Pickering’s interview with Hanselman in which he so eloquently lays out the case for F# as an alternative to C# for algorithmic efficiencies.

By my count Wikipedia is currently showing 10 Microsoft developed languages and 32 languages created or parted by the community onto the .Net runtime. That there are currently 42 languages built on top of a shared and common framework is amazing and I would guess unprecedented. 

Now what about the .Net Framework itself? Wikipedia lists 5 alternative implementations of the .Net framework itself, and while .Net obviously works on all current versions of Windows, it it also available via these ported implementations to several other platforms including Mac OS X, FreeBSD, Linux, UNIX, Solaris, and Symbian. That was a count of 6 operating systems plus current Windows (2000, 2003, XP, Vista).

10 Microsoft languages + 32 community languages = 42 languages

5 alternative framework implementations

10 targeted operating systems

42 X 5 X 10 = 2100 different configurations in which you can implement HelloWorld in .Net. Admittedly some of the DLR languages are not available in other framework implementations and on some platforms, but since the is maturing publicly on CodePlex I am sure that will take care of itself.

Besides, I just found a DLR implementation of Lisp that wasn’t in my other numbers, so I can’t keep up with the right totals anyway.