Hacker News new | ask | show | jobs
by zigzag312 997 days ago
Why do you think it's a horrible language?
2 comments

It is an excellent language, and a joy to develop in. Works on linux, linq to objects is nice, it has good reflection and decent pattern matching and good ide support. But the library ecosystem is terrible. Imagine starting out web development by looking for alternatives to Entity framework and asp.net core or whatever they have now. ML is sparse, financial libraries are sparse, dataframes, vectorized arithmetic, very hard to find something that works in all .net versions.
I gave it a try for a while - I really like the syntax and some of its capability. But somehow my head was just spinning. I can't explain it, it was horrible to use. The moment I switched back to C++, Python and similar, I felt relief. I genuinely gave C# a chance but it just didn't work. There's nothing specific, it has all the "right" things, but it forces you to work in a way that's just so unusual. I never experienced this with another language. It feels like a language that's intentionally aimed at bloating headcount in development teams where everyone works on that "little" thing that somehow becomes a project in itself.
Thanks for honest answer. I think I get it.

C# has certainly accumulated a lot of history. From being OOP heavy, Windows centric, closed-source, with mostly enterprisey frameworks/libs to more multi-paradigm, cross-plaform, open-source, with iteratively more sane frameworks/libs. A lot has changed (and is still changing).

Modern C# is getting more streamlined, but there are limitations to this due to backwards compatibility, and old boilerplate-heavy syntax is still supported, which leads to having multiple ways of doing the same thing.

While I really like the direction the language is taking now, the official documentation of the new stuff is often sparse or scattered all over the place and a lot of answers on Stack Overflow are dated. Diving into an ecosystem like that, which is in a middle of a big transition, can certainty be overwhelming.

The only tip I can provide is that if you ever try it again, try it in combination with a good IDE like Rider. C# is designed to be used in combination with an IDE. Rider can automate lots of things and analyzers can offer helpful guidance.

> try it in combination with a good IDE like Rider.

Rider is absolutely amazing. Among other reasons due to:

> Rider can automate lots of things and analyzers can offer helpful

I will give it another try but after some time. I really need to undo some of the damage it did to my brain :-)