Products · Product
C#
Raised as a usability problem by 85 people on Hacker News over 18 years (2009–2026), in 80 threads.
No issue was raised by at least 3 people in 3 threads this year.
- 1
- 2
- 3
Every issue, all time, most people first
New features make syntax noisy and hard to readUnreviewed
20092026- Too many subtle features make code hard to understand for readers2025-09-18
- New features make the syntax noisy, convoluted and hard to read2025-04-02
- Too many overlapping syntax features, so it is hard to learn and understand2024-11-29
Too much assumed knowledge makes C# daunting for newcomersUnreviewed
20092026- Hard to find what they want in the C# docs2024-09-13
- Newer C# features make code reviews hard because colleagues must explain them2024-08-08
- New C# features have sparse, scattered docs and outdated answers, making it overwhelming2023-09-21
async everywhere causes deadlocks that are hard to debugUnreviewed
20092026- Impossible to tell what code actually does; debuggers fail on async code2023-12-08
- Async design not always clear to understand2023-09-08
- Async everywhere makes code prone to deadlocks and hard to debug2022-06-01
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 50 complaints
- Build and dependency config is spread across confusing, poorly documented files2026-04-09
- Array initialisation syntax was not obvious and needed fighting with in early versions2026-04-08
- Too many syntax changes to remember which version allows which2026-04-08
- Forces passing tokens around and managing cancellation sources, which is bug prone and confusing2026-04-07
- Getting a C# dev environment working required many obscure workarounds and hacks2025-11-12
- Docs are missing or useless, and go-to-definition shows decompiled code instead of source2025-10-05
- Too many subtle features make code hard to understand for readers2025-09-18
- Hot reload has been broken for years, so edits don't apply reliably2025-08-11
- Top-level statements interact weirdly with the rest of the language, making them hard to use2025-07-20
- Requires verbose typing and IDE features, hard to write in plain text editors2025-07-19
- Formatting codes are so arcane the author must look them up every time2025-07-19
- New features make the syntax noisy, convoluted and hard to read2025-04-02
- Confusing tables of packages make it unclear how to install C#2025-01-08
- Too many overlapping syntax features, so it is hard to learn and understand2024-11-29
- Languages keep growing so complex that modern code is hard to read2024-10-10
- Hard to find what they want in the C# docs2024-09-13
- Newer C# features make code reviews hard because colleagues must explain them2024-08-08
- Default C# IDE is junk compared to IntelliJ2024-08-08
- Can't tell whether an object satisfies an interface without counting and searching methods2024-07-26
- Each small change requires a slow rebuild and rerun, slowing the feedback loop2024-06-05
- Hard to find where a symbol is defined when browsing code without an IDE2024-05-04
- Query syntax is hard to read and jarring to switch between C# code2024-04-01
- Impossible to tell what code actually does; debuggers fail on async code2023-12-08
- Dictionary initialisation syntax is clunky and verbose to write2023-10-20
- Inline arrays require an awkward struct with an attribute and a weird member2023-10-20
- C# requires boilerplate and dealing with compiler intricacies that domain experts found easy to avoid in VB62023-09-24
- New C# features have sparse, scattered docs and outdated answers, making it overwhelming2023-09-21
- Verbose XML markup makes comments harder to read and discourages writing them2023-09-20
- Earlier optional parameters had to be passed explicitly at default values, making interop unusable2023-09-11
- Async design not always clear to understand2023-09-08
- Extending the basics to do anything extra wastes hours and sometimes breaks the magic2023-08-05
- Failing or cancelling a Task is slow, so errors must be returned as successful completions, which is confusing2023-07-15
- Defaults to CurrentCulture formatting, so output can differ unexpectedly from invariant formatting2023-03-03
- Language has become cluttered and hard to follow and read2022-12-21
- Unclear how to create projects, pick .NET versions, or import dependencies2022-11-11
- Mapping between types for serialization is boilerplate-heavy and slow to update when the domain changes2022-11-05
- Language syntax changes make basic code confusing, forcing constant Googling2022-10-22
- Team finds C# and ASP.NET painful to learn, needing lots of prior knowledge2022-07-25
- C# structs behave weirdly and are hard to use2022-07-14
- Language changes every year and is confusing and hard for beginners to learn2022-06-11
- Async everywhere makes code prone to deadlocks and hard to debug2022-06-01
- Closing delimiter's whitespace rules are unintuitive and overcomplicated for developers2022-05-22
- Iterating and experimenting on the graph problem was a nightmare, with too much scaffolding obscuring semantics2022-03-27
- XML must be manually escaped and unescaped to paste into strings2022-02-17
- Having to repeat async and await keywords on almost every line is tiring2021-09-25
- Easy to get wrong, with problems that only show up rarely2021-09-24
- ConfigureAwait has horrible ergonomics and a default developers easily get wrong2021-09-24
- Badly documented; unclear what happens when waiting synchronously on a Task2021-08-20
- Official editor abandoned for a paid version with no notice, making setup hard2021-06-26
- Too much assumed knowledge makes C# daunting for newcomers2021-04-21