Hacker News new | ask | show | jobs
by vips7L 28 days ago
Union/sum types are generally a good thing. Even Java added them. They tend to be worth “the madness”. Now the rest of all the crazy C# features might be a different question.
1 comments

What features do you see as crazy?
All the weird cruft around nullability, for starters. Once again confirming that allowing null references is usually a mistake.
Do you mean the implicit nullable types? Now that you can make nullable explicit instead I really don’t have much issues with it. It is part of the type system, as it should, and you have null coalescing operators. Is it still problematic or are you dealing with older codebases where you cannot set the nullable pragma?
Yes, all that stuff. I try to stick to F# where no special syntax is required for missing values (via Option<T>).
Given that they already made the billion dollar mistake, I find their handling for nulls the best possible thing they could do at this point. I’d hardly call it crazy — rather, it’s exceedingly pragmatic.
Personally I prefer T? over Option[T]. Monads just add extra typing and destructuring for no reason. It’s definitely the pragmatic choice.
Maybe not crazy but the language just has a really broad surface. I find it to be like the Scala of the OO world.