While C# is cross-platform, almost everybody using it seems to be on Windows. Also, a bunch of the libraries people normally use with C# are Windows-specific (like WPF, I guess. Does anybody still use WPF?). Also, Microsoft has some patents which put projects like Mono in a potentially poor situation, which is why it isn't entirely embraced by the free software world.
Java, on the other hand, is, for better or worse, used heavily on all the different platforms. Moreover, most Java libraries (like Swing. Does anybody still use Swing?) are cross-platform.
I find F# a much more interesting language than C#. Do you know how F# behaves on Linux? While I've heard of people using C# on Linux and Android, I haven't heard anything about F#. Then again, the Linux people might just prefer OCaml.
I would, of course, agree that the majority of C# developers are on Windows (this seems natural). However, I think mono is in wider use than people think because of the fact that it's embedded in products like Unity. It's often not very obvious.
WPF was a definite non-starter for mono. Just too huge of an undertaking; much more focus on GTK#. Sometimes it's easier to bring something else to Windows than to bring Windows to everything else. In the case of WPF, it seems like not bothering was probably the correct move...
My understanding is that F# works just fine on linux and mac, but I haven't had the opportunity yet. Quite interested in this as well.
WPF is used extensively in enterprise. Alternatives are Windows Forms which is pretty old,and significantly less flexible, or web apps. WPF can host Windows Forms, so for legacy its a way better option then web.
I use WPF regularly. Initially it seemed quite alien compared to the windows forms world I was used to. Once I got to know how it works on the inside, I fell in love with it. In my opinion it is elegant and well thought through.
Java, on the other hand, is, for better or worse, used heavily on all the different platforms. Moreover, most Java libraries (like Swing. Does anybody still use Swing?) are cross-platform.
I find F# a much more interesting language than C#. Do you know how F# behaves on Linux? While I've heard of people using C# on Linux and Android, I haven't heard anything about F#. Then again, the Linux people might just prefer OCaml.