
Let's Stop Bashing C# - majikarp
https://codeaddiction.net/articles/51/lets-stop-bashing-c-sharp
======
doctorRetro
I'll happily come to C#'s defense. I enjoyed working in C#. I miss working in
C#. But I don't see much of this purported bashing and I don't see that it
needs defending, really.

------
marsrover
I never hear anyone bash C#. Microsoft? Sure, but not C#.

------
growlist
To me the major strength/weakness of C# is the libraries - if you have good
libraries available and can get by with their limitations you can smash out
code amazingly quickly, and VS is a brilliant companion. However, for writing
a desktop image processing app recently I found I was very quickly reaching
the limits of the built in .NET libraries, at which point it was easier to
drop into C for the heavy stuff and do C/C# interop. For vanilla business apps
and integration I think C# is brilliant.

------
IceDane
To me, C# is a pretty convenient language to work in. It has very good tooling
and a lot of support and a huge ecosystem. It also possesses a lot of nice
ergonomic features. All in all, it's a pretty nice language to work in.

However, that doesn't necessarily mean it's a well designed language. Knowing
a many languages across paradigms, it is very clear to me that C# is borrowing
concepts from a lot of different languages. This is pretty evident almost
anywhere. It's trying to be functional, and it nearly feels like it.. until it
doesn't. They keep bolting on features that end up being rather anemic clones
of the original concepts because C# suffers too much from what it is
fundamentally to allow them to be implemented properly.

I mean, most of these features still improve the development experience, but
that doesn't mean that these features feel, well, not first class. This is
evident in LINQ, the new pattern matching, nullable classes, etc, etc. These
all feel like features that needed compiler support to be implemented half-
assed instead of simply being libraries, because the language isn't expressive
enough.

------
smt88
I like C#, and I _love_ strong, static typing. If C# had structural typing
(like TypeScript does) or just a more expressive type system in general, I'd
call it hands-down the best stack to work with for web apps right now.

However, it's ridiculous to call JavaScript and Python hipster languages.
JavaScript is probably the most widely-known and widely-used language, and the
only reason is that it's the only thing browsers understand for now. For most
of its lifespan, no one was choosing it because it was "cool" or niche-y. You
could say Node started as a hipster project, but even that has a strong
business justification: using a single language on the front and back end.

It's also hard to call Dart a hipster language these days because you need to
use it if you want to write Flutter apps. That's very practical and has
nothing to do with how cool someone looks.

------
guitarbill
The part about being proprietary is a bit disingenuous. For a long time, it de
facto was. Mono was always the red-headed step child, and required a lot more
effort to run in production, so people didn't. This proprietary nature wasted
C# "runway". There was nothing quite like C# and the tooling around version
2.0, but nowadays it's a lot less special.

The ecosystem around a language is the most important part, not the language
itself. While it feels great to finally run C# CI in containers thanks to .NET
Core, it's a bit late to the party.

------
ncmncm
I never hear anything about C#, never mind anyone bashing it. Java is out
there absorbing the bashing. C# is well inside Java's bash shadow.

------
guggle
That hipster language / mature language dichotomy is a bit ridiculous and does
not serve the purpose of this article.

------
Niksko
Nice to see that my sentiment is shared. I heard people joke about C# during
university, but it's a well designed language, VS is a joy, and I'll take it
over Java any day

