this post was submitted on 01 Oct 2023
511 points (98.5% liked)
Jellyfin: The Free Software Media System
5476 readers
41 users here now
Current stable release: 10.9.7
Matrix (General Information & Help)
Matrix (Off-Topic) - Come get to know the team and blow off steam!
Matrix Space - List of all the available rooms on Matrix.
Discord - Bridged to our Matrix rooms
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm been wanting to ask for a while, and now seems like a good time.
Why do some programmers hate C# so much? What are the reasons for "eww no it's c# and .net i ain't touching that?"
Microsoft.
I'm a .NET dev, still hate Microsoft, but the language and ecosystem are fantastic. At least since .NET Core when it was mostly decoupled from Windows.
The misconceptions that persist to this day despite over half a decade of .NET Core are mind-boggling. MS has a steep hill to climb.
The language itself is great, but Microsoft the docs are sometimes horrible or outdated.
And most things feel like magic that you can't or don't need to understand. E.g. if you set up a modern asp.net project it's some huge boilerplate with configuration files and what not...
Also standards often change... E.g. try figuring out what the best GUI framework is to create a full-fledged Desktop app in C#. There's like a few different ones, and most are for basic mobile-style apps or not really mature. The best I found so far is WPF, which is kinda old though and everyone thinks it's dead.
i asked a few people and got the following answers
"cuz: 1: its fake java 2: eats memory like java 3: .net on linux is l-o-l 4: unlike java there is no C# kotlin 5: other better things exist (java, javascript, go) "
"the biggest issue with C# is that its just a fucking pain in the ass to use" (this one got several uses of a "yup" emoji reaction)
"wtf is a compiler macro and why would i use one"
"I dislike async/await garbage in most languages, this includes C#
like you need to designate some functions async and others are non-async and sometimes you run into a situation where you need to block on async from sync and you're basically fucked"
I feel like most of them haven't used C# in the last decade, let alone .NET since Core.
is smoking crack. .NET on Linux has been fine for years. Unlike Java there is no need for a .NET Kotlin (and there is F# if you really want a functional-first .NET language). If you want to call Java a "better" alternative to C#, power to you. But Javascript and Go shouldn't be in the same conversation. Hence the crack.
Might be thinking about .NET Framework, which is a pain in the ass to deploy. Modern .NET is completely different. Can't think of many instances where the language itself works against me compared to Java.
So you can conditionally compile code based on build-time constraints. For example, debug logging code can be removed entirely in the release build.
Has a point, but this also disqualifies them from using almost any language with asynchronous programming.