Let's Stop Bashing C#
codeaddiction.net
codeaddiction.net
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.
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.
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.