>>55
You just don't know enough programming languages and you don't know C# well enough. Don't get me wrong, a few years ago I thought C# was really awesome, but that was because I didn't know other languages(I was coming from a C-like background, with lots of low-level inclinations), nor did I know C# well enough to know its limits. Now, I just think it's an okay language I'd rather work on if I had to choose between it and Java. If you're coming from a low-level language, C# may seem very high-level, but that's just because one does not know enough high-level languages to make an informed choice.
but I do like how it marries functional and object-oriented programming
C#? A functional language? I wouldn't say it's that much more functional than C: if you obey the right conventions, any language can be thought of as functional, however how 'functional' a language is, is usually described in support for various features that you might expect from such languages, like having almost every expression return a value(or values), lots of mapping, reduce, lambdas, high-order functions, closures, and many others. By itself, C# does incorporate some nice features found in functional languages, but I don't consider it a functional language that much more than I consider C a functional language.
This is purely from a joy-of-programming standpoint
I find coding in C# to be a fairly non-frustrating activity as it's a managed, garbage collected language, but I wouldn't go as far as to say it brings me great joy in using it. Many OO features may not be needed by the user, as well as various restrictions that come with such single dispatch OO systems. One may find himself writing lots of boilerplate code to please such systems, instead of
just solving the problem.
tl;dr: C# is an average/decent language, but if the programmer thinks it's the best that there ever was/will be, then he just doesn't know enough.