this post was submitted on 25 Oct 2026
371 points (95.1% liked)
Programmer Humor
33844 readers
1322 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
- If the mod doesn't find it funny, you're banned. Ha-ha!... For real: do not use the community for "statements". There are other places for such content. Keep it chill and funny.
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Sometimes we have to use them, but Java and C# sucks hard as languages.
I actually really like C#, it's my favourite. But don't know how much of that is Stockholm syndrome at this point haha. But whenever I'm writing in other languages i always end up missing something i do regularly in c#, especially from it's latest versions (which i also deeply miss when forced to work on legacy software that is still using shit like version 4 or 5 of C# (ASP.NET 4.8 / .NET standard) whereas I feel like C# really got good and fun to use from C# 8 onwards (I think this was .NET Core 3.0 or .NET 5 - we're on C#14 now with .NET 10, with 15 on the horizon).
It’s a bit of a kitchen sink language now. I haven’t used it professionally in quite a while but using it for Godot (anything but gdscript) has me scratching my head over some of the architectural decisions. It seems to be led by „if people do a certain form often enough, add a shorthand to the language“, which is one way of cutting boilerplate, but does lead to something very hard-to-parse if you’re not familiar with it.
Heey Godot for the win! And yeah no gdscript please!
C# is like a script language wanting to be a C++ contender (let's switch everything around to show how different we are, sigh).
They do have one thing right though, true & false aren't True or TRUE etc. But man all the new() whatever all the time 😓.
public int A {get; private set;} = 0;
Beautiful eh 😐
What do you miss?
Not the oc, but honestly just random shit, like:
Linq.
Async and await are both in python or rust, but still via anexternal provider afaik (like Tokio).
Explicit interface implementation (default trait implementation for the Rust fans)?
Nice source generators and what you can fo with them (kinda like aspect programming).
Idk if python or js support pattern matching or proper low level or no GC coding.
I also enjoy my langauges to have an end of statement character like
;instead of the horrible visual mess python is.Type safety of compile and runtime type checks lol. In C# if you say your module requires int parameter, noone will be able to call it passing None/null/string/date.
AKA - We have Monads at home...
Rust is really missing something like do syntax. It's half-way there with the semicolon and question marks, but it's missing an idiom for .map_or_else and to generalize the thing to work with a trait.
Thats not the linq purpose. Though it is technically a monad, its purpose is not hiding side effects or managing an async flow, or managing nulls/errors, but query, filter, map data from an enumerable.
If you use Linq as a replacement for Option, Either or Maybe you're doing something wrong.
Yeah, exactly, it's a replacement for List.
Pretty much hit the nail on the head to be honest