www.eevblog.com
Developer survey: C# losing ground
Excerpt
3MLOC C# web forms application dating back to 2002 and evolved since backed on SQL server on owned hardware.2. Along comes Remoting/DNA fad from MS P&P. Chunks rewritten into semi distributed nightmare on advice.3. Along comes WS-* fad from MS P&P. Chunks rewritten into even worse distributed nightmare on advice.4. Along comes MVC from MS. UI rewritten using this and EF.5. EF, WWF, Remoting, WS-* deprecated (yes all of them) and enough of MVC rewritten to break everything that's left (when they added async which is incidentally buggy as fuck even 10 years later with regular production deadlocks)6. . … Another set of massive breaking changes to the entire web pipeline which causes 3 months wall clock work for 3 people across 120 microservices.10. Try to get this shit working in kubernetes on linux and you find that the certificate store implementation is STILL based on the shitty half arsed APIs written in 2002 which has an abstraction which doesn't make sense on any platform other than windows resulting in 2 month delay on a project while people work out how to do cert management with hashicorp vault in this environment which ends up in a whole chunk of sticky tape and string just to get it out of the door.11. Along comes MSFT and says they're going to rebrand it all .Net 5.12. Everyone goes FUCK YOU we've had enough of this shit. No new projects on .Net / C#So the UI is going in the direction of React and Electron and the back end is Go, Python or Node. And the storage engine is going postgres. And this is all on AWS. And the grass is greener. There's some poo dotted around on it but it's not up to your neck.That's why C# is dying: Lots of people experienced with it don't want to get hurt any more. Id say C# is great at doing what it was made for, easy desktop app development. It probably looks like it works. Watch out for threads and service shutdowns. Sometimes the two are fairly incompatible and will hang service manager. Never as easy as it looks unfortunately. I worked with some big companies. They all use C#.
Related Pain Points
.NET ecosystem rejection due to accumulated pain
9Experienced .NET developers are actively avoiding new .NET projects and migrating to Go, Python, Node.js, and PostgreSQL on AWS due to years of breaking changes, deprecated technologies, and migration pain. C# is perceived as dying for backend/web development.
Cross-platform certificate store abstraction broken on Linux
8The certificate store implementation is based on 2002-era Windows APIs that don't translate to Linux. Attempting to run .NET applications on Kubernetes with Linux requires workarounds like Hashicorp Vault, causing multi-month project delays.
Debugging asynchronous and concurrent code complexity
7Debugging asynchronous and concurrent Python code presents significant challenges. Asynchronous programming features like asyncio and multithreading introduce complexities such as race conditions and deadlocks, making issue identification and resolution harder.
Frequent breaking changes and rapid major version releases create maintenance burden
6Next.js has introduced 15 major versions in 8 years, each potentially containing backwards-incompatible changes. This creates significant maintenance burdens for long-term projects and makes it difficult for teams to keep applications updated.