Interesting that there are no languages with "flat" names. I can think of two reasons:
- the word "sharp" has more positive connotations
- if you're limited to the keys on a usual keyboard "flat" would be denoted by "b".
I think it is just due to C# being a play on C++ (the # could be seen as ++ just rearranged to overlap). No doubt the positive connotations of "sharp" also played a role. Cb or C-flat neither looks or sound cool! That said, MS did have en experimental language called C-flat, but it was not intended for general purpose use (if I remember correctly), so the name might have been chosen as a joke.
F# is in turn named after C#, as it is the functional equivalent to C# in the framework.
Jazz musicians (and brass players) generally prefer playing in flat keys (because of transposition making the reading easier) so while "sharp" has a more positive connotation in normal use, if you asked a tenor saxophone player to play something in F# or C# they would generally not be pleased :-)
I didn't think of that. My musical experience is on piano and voice (neither of which has a preference for sharp or flat keys) and I've played around with guitar a bit (which prefers sharp keys in standard tuning) so I tend to forget that some people like flat keys.