this post was submitted on 09 Jun 2024
1 points (100.0% liked)

> Greentext

7512 readers
1 users here now

founded 2 years ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 0 points 4 months ago

Runs on Windows, macOS, and Linux

I mean, you can't argue with that.

[–] [email protected] 0 points 4 months ago

i hate .net with a passion and will spent the rest of my life hunting down the inventor

[–] [email protected] 0 points 4 months ago* (last edited 4 months ago) (1 children)

My dot-net experience is kinda the opposite. Was I doing it wrong?

[–] [email protected] 0 points 4 months ago

No you tried like the rest of us. I hope the fantasy OP is spewing is at least earning him some money.

[–] [email protected] 0 points 4 months ago* (last edited 4 months ago) (1 children)

i tried using c# for lower-level-ish tasks and it was even more painful than js (emulation development, specifically). who the fuck decided that all math operations should cast to int????

[–] [email protected] 0 points 4 months ago

I program professionally in C# and I gotta say, it really isn't for that. You can do services in it, but that's as low level as I'd suggest. It's definitely a high level language for rapid dev of web and desktop stuff.

[–] [email protected] 0 points 4 months ago

I guess I need glasses bc I can't C#

[–] [email protected] 0 points 4 months ago* (last edited 4 months ago) (2 children)

pervasive unchecked nullability

Framework management is hell, fat binaries inconvenient and not default

No option monad in the standard lib

Cross version dependencies simply don't work in some contexts

Compiler output only marginally better than working with c++

At least it doesn't have Gradle.

[–] [email protected] 0 points 4 months ago (1 children)

Null reference checking by the compiler is enabled by default in new C# projects.

C# doesn’t come with an option monad in its standard library, but its cooler sibling F# does.

[–] [email protected] 0 points 4 months ago (2 children)

You can also easily write your own option monad or use a tiny library that does.

[–] [email protected] 0 points 4 months ago

Yeah, 100%. I don't really recognize the complaint that "it isn't in the standard library" as being super valid. If you know what an option monad is and you want to use one, you can certainly create one. Lots of people don't know what it is and won't miss it, especially in this context since the option monad is a functional construct and C# is an objects-first language.

[–] [email protected] 0 points 4 months ago (1 children)

Good idea, then patch the whole standard library and dotmet framework and most popular libraries to use that tiny library

[–] [email protected] 0 points 4 months ago (1 children)

You don't need to use the same one. Just don't expose it publicly in libraries.

[–] [email protected] 0 points 4 months ago (1 children)

This is the stupidest thing I've read all day

[–] [email protected] 0 points 4 months ago
[–] [email protected] 0 points 4 months ago (2 children)

pervasive unchecked nullability

Addressed nowadays with the question mark and exclamation mark syntax, and programming without nullability is a pain

Framework management is hell, fat binaries inconvenient and not default

Nuget?

Compiler output only marginally better than working with c++

No one claims it's faster at runtime than good C++, it's just a lot easier to write decent code

[–] [email protected] 0 points 4 months ago

Nullable reference types are (a completely mandatory) bandaid fix in my opinion as a .net dev. You will encounter lots of edge cases where the compiler is unable to determine the nullability of an object, e.g. when using dependency injection to populate a field, or when using other unusual control flows like MediatR. You can suppress the warnings manually at the slight risk of lying to the analyzer. Objects supplied by external library code may or may not be annotated, and they may or may not be annotated correctly. The lack of compile-time null checking is occasionally an issue. But that said, NRT makes nullability a significantly smaller issue in C# than it used to be

[–] [email protected] 0 points 4 months ago (1 children)

Compiler output only marginally better than working with c++

No one claims it's faster at runtime than good C++, it's just a lot easier to write decent code

I think they're referring to warning and error content. Compared to things like rust, deciphering error notifications from the c# compiler can sometimes feel like trying to figure out what a child with limited vocabulary is trying to tell you.

Even with decades of personal experience with it, they can be confusing and non-informative sometimes for me.

[–] [email protected] 0 points 4 months ago

Yes this is right. C++ in this context is the boogeyman worst possible scenario. C# only being a little better just means it's not actual garbage

load more comments
view more: next ›