Hacker News new | ask | show | jobs
by setr 1013 days ago
I’ve been working on c# quite a bit lately, and I don’t think that’s true as much these days. The biggest things remain Microsoft-granted — asp.net, efcore, etc — but I’ve had little issues finding Nugent libraries for random issues like progress bars, weird formats, various excel libraries, etc all community-maintained & provided; my expectations on finding libraries is similar to python.

The biggest issue I’ve had is that some of these less popular libraries (both by Microsoft and not) have some truly tasteless APIs, I think mostly stemming from older versions of C#, and for some reason the lowest quality stack overflow answers are much lower for C# than in python — there appears to be much more cruft and outdated information in blogs, stack overflow in C#-land than python. Really in general I feel like python/rust has a higher floor for taste than C#, but at ceiling it’s competitive.

I’m pretty sure though that startup language choice has nothing to do with practical considerations — it’s largely a popularity contest based on hype cycles, and C# is well past its hype-prime.

1 comments

As you mention yourself, how many use .NET for web stuff without ASP.NET, or for databases without EFCore? Sure there are plenty of third-party "single-task libraries", but all the big architecture-impacting decisions tend to come from the ivory tower.

This kind of reply reeks of when Phil Haack tried to convince people that (the old) .NET Framework was "open-source friendly" because NuGet existed.

The reason is pretty simple. It's because those 1st party frameworks are awesome. There is very little reason to build something else when you can contribute to them instead. ASP.NET is crushing other web frameworks in performance on techempower benchmarks, it's up there with Rust frameworks. And EF is probably the best full fledged ORM in existence (when compared to something like Java Hibernate).
NHibernate is quite popular alternative to EF and I've seen it used on many projects, especially big apps. Some smaller apps also choose Dapper (by StackExchange) and avoid EF.

Regarding ASP.NET, you're right. There are some alternatives, but not used very often from my experience.