There are so many programming languages that I can’t keep track of them all any more. Presumably each has specific strengths and weaknesses, but I couldn’t tell you what those are, nor under which circumstances any particular language is the best one for the job. Lots of people are still using Fortran, for example, which I was led to believe was as dead as the Dodo. Given the mind-boggling number of existing niche languages, it seems somewhat strange that a powerhouse like Microsoft, with their huge install base of C# and VisualBasic .NET would enter into the fray with a new programming language. And yet, that’s exactly what they’re doing with F#, available as a fully-supported language in Visual Studio 2010.
F# was developed by Don Syme at Microsoft Research, and is a variant of ML. F#, like ML, is a functional language. According to an article at The Register, F# is well-suited for the financial industry, as well as a good choice for parallel processing on multi-core systems.
Just how F# is better than ML, or OCaml, or other functional languages is not particularly clear. My layman’s guess is that it’s the strength of the underlying .NET framework available to F# that makes it a strong contender in an already crowded space. The Register article cites major savings in terms of lines of code, and I can’t imagine that the new language itself offers that much savings, so much as the list of supporting libraries that are part of the .NET framework help programmers reduce duplication and write more svelte code.
I’m not a programmer by trade so I asked a full-time developer friend of mine. While not specifically familiar with F#, he observed that F#’s support for Language Integrated Query (LINQ) and lambda expressions is a big deal. “Transformative” was his word, actually.
It’ll take quite a bit of effort to get programmers to see that F# may be a good choice for anything, given the saturation of available alternatives. Most interesting to me was this bit:
Syme also is convinced that F# has a future that goes beyond financial analysis. He sees it as ideal for web programming, thanks to its use of lightweight “agents” that sit waiting to react to an event such as a network communication.
So in addition to “traditional” .NET languages, and all of PHP, and Java, and good ol’ fashioned Perl, Microsoft is hoping to bring F# to the web development party…
“It’s clearly a niche thing,” is how my programmer friend concluded his remarks. Since Microsoft has made no real effort to advertise F# as part of Visual Studio 2010, I’m inclined to agree. And I guess Microsoft does, too.