Was F# viewed by MSFT as a cheap way to capture more developer mindshare, by accident, harvesting efforts by the research group? Or did they deliberately try to fill a niche they identified beforehand from marketing feedback?
F# is cool, but C# 4.0 does not seem to lack much, feature-wise. If anything the MSFT ecosystem seems to lack supporting tools, not language features.
Why another language from scratch? Why not more effort porting an existing language to the CLR?
Also, IronPython and F# projects seem to demonstrate that it takes a long time to make a credible language for CLR/Visual Studio. A grammar for your language, a compiler, ok. How long did it take? But then you realize oh no, VS support will take many man-years. Whoops.
When I used it no one wanted to learn F#, but if I put a nice OO interface on top of whatever I wrote, packaged it as a DLL the other devs would be happy to use it.
F# isn't just cool, it will make you write better code, faster. The zen of it makes you follow a better path. Think about how many bugs go away when you make all sides of an 'if' 'else' block return the same data type.
Think about how much more sense returning an out parameter as a tuple makes. I'd much rather write
Than Also, if you're using a match statement and forget to handle the false case, the compiler will scream at you. In C# you're on your own. Also, in C# in this case you can't even use var because you're not initializing it.The other thing about F# is that it's FAST, fast like beating C at the burrows-wheeler transform.