Microsoft is actually putting out some Geek friendly tech in the last couple of years. If you need to Develop on Windows, there are some pretty interesting tools to play around with.
I use PowerShell as my main shell on Windows. IronPython and IronRuby are pretty cool ways to poke around .NET libraries. I've heard some pretty cool things about C# and F# as well. I do still use Unix for sever boxes, however.
They actually have some good programs for startups and ISV's as well. You can get a whole mess of Microsoft licenses in an Action Pack for $300.
I think it's not necessarily about people using F# but rather about creating cool things to help attract intelligent people to Microsoft and to give technical-minded people a better impression of them. Secondarily it also gives puts them in a prime position within the functional programming niche in case it does catch on and is likely to become the first choice in production environments. It will attract a very different set of people to the .NET stack.
Microsoft Research have employed Simon Peyton Jones, one of the main designer of Haskell, for the best part of a decade to work on GHC so functional programming is not really new to them.
The main problem of the .NET is its distribution. I had to write million lines of C++ win32 code, because no one wants to distribute a 22MB .NET installer.
As goes to ASP.NET that only works with IIS.
F# could be a great thing, but I wish MS would have solved this prime issue before adding all kind of funky languages to the .NET Framework
Eh, the problem will get fixed eventually when in 5-10 years everyone upgrades to Vista and later OSes which come with .NET. It's similar to the IE6 problem. People aren't willing to upgrade their old machines and Microsoft can't force a Windows Update without incurring the wrath of antitrust prosecutors.
Segmenting the download into smaller chunks isn't a panacea either. As a case point, take a look at the Tablet SDK. To redistribute that to non-Tablet, developers have to choose between 6 distinct components and check whether each one is on the system (http://msdn.microsoft.com/en-us/library/ms819420.aspx)... no user's gonna know whether they have the "Ink Divider object" installed. Having big versioned checkpoints is definitely the clearest from a user and development perspective (e.g. "make sure you have .NET 3.5").
So in the meantime, all Microsoft can do is keep working to make .NET better.
I don't think this is an "issue" to Microsoft. I doubt that they want to officially support .NET on more than their own platforms. .NET is becoming more and more tied to Windows anyway, e.g. WPF.
Microsoft is actually putting out some Geek friendly tech in the last couple of years. If you need to Develop on Windows, there are some pretty interesting tools to play around with.
I use PowerShell as my main shell on Windows. IronPython and IronRuby are pretty cool ways to poke around .NET libraries. I've heard some pretty cool things about C# and F# as well. I do still use Unix for sever boxes, however.
They actually have some good programs for startups and ISV's as well. You can get a whole mess of Microsoft licenses in an Action Pack for $300.
But, as I've said, YMMV.