4 ms·
Let's Stop Bashing C#
- growlist 8y agoTo 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 8y agoTo 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.
- guggle 8y agoThat hipster language / mature language dichotomy is a bit ridiculous and does not serve the purpose of this article.
- smt88 8y agoI 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.
- marsrover 8y agoI never hear anyone bash C#. Microsoft? Sure, but not C#.
- draw_down 8y agoNever heard it either. Seems a bit paranoid
- ncmncm 8y agoI 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.
- doctorRetro 8y agoI'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.
- guitarbill 8y agoThe 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.
- Niksko 8y agoNice 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