Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

C# is an awesome language and I've worked professionally with it on and off over the course of my career. I'll never take another job at a shop that uses it though. Every job I've taken where it was the primary language forced windows on me and a whole bunch of "enterprisey" BS. They also tended to be spots where the engineering dept was considered a cost center and not a value creation unit. This is just my experience of course but I've got anecdata from colleagues which correlates. I even recall reading about the stigma attached to C#/.NET in "Cracking the Coding Interview" so there must be something there...

I also found that startups (my preferred work env) tend to filter you out when you have too much of that on your resume which is super shitty IMO but it's a thing. I'd love to see that change. Until then I guess I'll stick with Kotlin and TypeScript.



Kotlin is still rather niche outside of Android. Java has been evolving but most enterprises are very reluctant to move past Java SE 8. Lots of projects haven’t even migrated to Java 11. With Oracle’s extended support that gravity is only exacerbated. All while the upstream pushes for Java 21, with confusing licensing changes along the road Eclipse Temurin gaining traction over OpenJDK. Java is a very fractured ecosystem. Microsoft has done a great job at unifying .NET, not without crossing the line several times though.

In my observation, more and more startups have been taking off with C# and .NET. It’s very productive and efficient. It truly shines in many popular benchmarks. With .NET, many potential choices have already been made for you, it’s a true framework. You get a great setup out of the box which you can tune to your liking. It’s like Angular. Java is like React - there’s a core library and the rest is on you, Spring to the rescue, or Quarkus, or Micronaut, or… a hundred other frameworks. Very flexible but also quite fragile. The CLR has much fewer knobs than HotSpot or OpenJ9. I like that actually. It’s just more efficient in most cases. Can’t speak to multi-terabyte heaps with CLR though, haven’t been there.

The GUI story with .NET is amazing. Other than MSFT’s libraries, you have Avalonia and Uno as popular alternatives. Avalonia is very snappy. Uno has a great potential. Both are multiplatform (handheld and desktop devices, with the same codebase). Then there’s Blazor for the web in various incarnations and MAUI on Xamarin. Kotlin’s (Jetpack) Compose Multiplattform is still a couple years behind Avalonia and perhaps Xamarin. And JavaFX GUIs have never been this good or resource efficient, there are a couple other Java frameworks but they are apparently financially too resource constrained to compete yet.

As for the enterprise, I’ve seen both, retrograde Windows shops reluctant to change, riding a slow-paced product lifecycle, as well as agile projects upgrading their .NET stack a few days after the most recent GA release, often having run CI on RC releases well ahead.

Perhaps it’s location dependent. Denmark being an outlier is virtually exclusively .NET. In China, Go is very popular, you also see many contributors to Go projects on GitHub from China. Same with Vue. In short, there are also socioeconomic idiosyncrasies to it.


Denmark knows a bit or two about programming languages. If they chose .net, its a telling.


Linking a language to "enterprisey", especially a young language like C#, seems absurd to me. There are plenty of startups using Java, C#, etc. You don't have to be riding the Node.js bandwagon to be agile.


C# is over 20 years old now. In the land of language design, it's not a young language


I agree! There are a LOT more startups that use Java than C# though despite C# being a better language in almost every respect. There’s a stigma attached to it right or wrong.


I think some of that stigma is warranted because of the tooling and ecosystem around C#. The documentation contains frequent references to azure. Microsoft continues to place features into visual studio while making VS code actively bad. Many libraries are not free open source and you have to deal with weird licensing. Other ecosystems are definitely better.


This has been my experience too.

It's either what you mentioned or they have very outdated development practices.


Sometimes both!!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: