Other .NET Programming Languages
If you thought support for four programming languages (C#, Visual Basic .NET, C++, and J#) made .NET programming flexible, you haven't realized the whole story yet. Because every program will end up in MSIL and then be executed later by the CLR, it is possible to write a compiler for practically any programming language, whether it supports object-oriented constructs, functional programming constructs, modular programming constructs, or plain-old procedural constructs, so that it can be compiled into MSIL. This has been the drive behind extensive third-party programming language support for .NET. Chances are that if you know a programming language, it has already been ported to .NET. This goes for APL, COBOL, Delphi, Eiffel, Fortran, Forth, Haskell, Prolog, Pascal, Perl, Python, Scheme, and so on. As you can see, the CLR allows developers to utilize their skills in whatever programming language they have and apply them to the .NET environment. Applying COBOL skills to .NET means that you can develop rich Windows forms applications, Web applications, or even Web services using COBOL. These are programming constructs that were never thought about when these languages were designed originally. It is really because of the richness and flexibility of the CLR that such a thing is possible.
Microsoft research itself has been quite active when it comes to designing and implementing new programming languages for .NET. ASML (Abstract State Machine Language), F# (an implementation of the Caml programming language), and SML.NET (an implementation of the Standard ML) are some of the initiatives from Microsoft research, exploring newer programming models with .NET.
Languages come and go; third-generation programming languages will evolve into fourth-generation programming languages, and so on. With the CLR, the .NET programming model is set to evolve with this change and also utilize the technology excellence and research in the computer science community.
An updated list of .NET programming languages is available at http://www.jasonbock.net/dotnetlanguages.html.