News for hackers. Stuff that matters.
Re:dotNET (OK, C#) gets union types by joe_mwangi on Sunday May 24, 2026 @03:49AM (#48255365)
Notice you point out features that were easy to add during the beginning where there was no concern of backward compatibility? Now that java is porting value classes to mainline and we might have them soon, and planned operator overloading through type class, I believe java approach is making careful design choices that are semantically sound, rather than adding features that create edge cases such as boxing invariants in unions like C#.
Re:dotNET (OK, C#) gets union types by mrsmrtss on Sunday May 24, 2026 @04:32AM (#48255607)
So you try to say that Java gets to be more semantically sound by making bad choices early on? That does not make sense. Those choices are very difficult fix today and many of them can't be fixed. Say what you want but semantically more sound Java won't be. And the boxing with C# unions can and will be addressed later, this was a deliberate choice by the team to bring unions earlier.
Re:dotNET (OK, C#) gets union types by lostmsu on Sunday May 24, 2026 @07:05AM (#48256293)
> and many of them can't be fixed... And the boxing with C# unions can and will be addressed later

No, they won't. C# already got itself into a corner with 32 bit arrays and 32 bit spans. And if unions are introduced as reference only that will never be fixed due to binary compatibility requirement.

Re:dotNET (OK, C#) gets union types by longor1996 on Monday May 25, 2026 @06:34AM (#48265344)
The new C# unions are not reference-only. The attribute/interface allows implementing custom union types by writing `TryGetValue`-methods instead of a single `object? Value {get;}`. The compiler handles this transparently.