I don't understand that attitude. First, you can use C# really well without depending on any Microsoft tech. Second, Microsoft standardized the language and made a community promise not to enforce their C#-related patents (like e.g. Oracle did against Google for Java).
So, it free, it has full FOSS tooling. What's the problem?
> First, you can use C# really well without depending on any Microsoft tech.
As someone who is coming from a very FOSS world and trying to learn C#, I have to counter that no, C# does not have a really good open source ecosystem. Mono works, MonoStudio is pretty decent, but it lacks all of Windows, and there isn't much to target that is not Windows if you are doing anything that is not a webapp.
Objective-C also has a pretty decent open source toolkit in GCC, but a toolkit that lacks Cocoa is like trying to eat dinner but forgetting the food. Mono is a great toolkit, but it's missing 80% of the libraries that makes C# an easy language to use. You've got your forks and spoons, but you've got nothing to eat.
Note that I'm not complaining against C#. I'm really liking the language and everything I can do when I'm in a Windows or Windows Phone environment. I'm arguing that C# is not as portable, in practice, as everyone continually claims.
I started learning F# a few weeks ago and feel the same way. The language is very nice, but so much of the .NET ecosystem is Windows-specific. I've run into a handful of libraries that would be useful, but I cannot use them on my Mac. To be fair, there are quite a few libraries that do work.
Furthermore, much of the documentation assumes a Windows environment. Getting a development environment set up around Mono has been possible but challenging.
F# and Mono are neat, but .NET has a long way to go before it becomes as cross-platform as Java.
So, it free, it has full FOSS tooling. What's the problem?