Mine is that the useState hook is an actual plague on the entire React ecosystem. Regardless of your opinions of React, if you wanna use something then use it right.
Mine is that the useState hook is an actual plague on the entire React ecosystem. Regardless of your opinions of React, if you wanna use something then use it right.
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.
Pretty much hit the nail on the head to be honest
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.