<story><title>Official proposal for Type Unions in C#</title><url>https://github.com/dotnet/csharplang/blob/18a527bcc1f0bdaf542d8b9a189c50068615b439/proposals/TypeUnions.md</url></story><parent_chain><item><author>Eji1700</author><text>F# is so hard to walk back from. I wish Microsoft would support it better and actually push it, because it&amp;#x27;s such a perfect sweet spot.  Most of the functional advantages without being shackled to pure functions and the like is so easy to develop in.&lt;p&gt;Instead they&amp;#x27;ve been, very slowly, turning C# into F#, which is even weirder to watch.</text></item><item><author>tombert</author><text>Huh, I did F# for years with discriminated unions, and I guess I just assumed C# would have had them by now.&lt;p&gt;I know not everyone likes them, but for typed languages I find it extremely hard to go back to languages without ADTs of some kind.  I do Java for my current job, and Java is generally fine enough, but it&amp;#x27;s a little annoying when I have to do whacky workarounds with wrapper classes to get something that would be done in three lines of F#.</text></item></parent_chain><comment><author>tombert</author><text>I agree; F#  is probably my favorite of the &amp;quot;compromise&amp;quot; functional languages [1], where you can drop into the &amp;quot;wrong&amp;quot; way when necessary.  F# pushes a more or less pure approach, but in some cases, like when mutation will be a bit easier and&amp;#x2F;or faster, it&amp;#x27;s easy to do that as well.  I also think that even F#&amp;#x27;s OOP is actually really pleasant...If nothing else, it&amp;#x27;s a lot more terse than C#&amp;#x27;s.&lt;p&gt;I miss writing it; I haven&amp;#x27;t had a job using it in a few years but I really enjoyed writing code in it when I did. Most of my personal projects haven&amp;#x27;t really been able to use .NET for awhile, so I never seem to have an excuse to play with F# in my personal time.&lt;p&gt;I never got into C#, so I can&amp;#x27;t say that I really feel the pain of the C# transition into F#.&lt;p&gt;[1] At least in the typed world. I&amp;#x27;m also really partial to Clojure.</text></comment>
<story><title>Official proposal for Type Unions in C#</title><url>https://github.com/dotnet/csharplang/blob/18a527bcc1f0bdaf542d8b9a189c50068615b439/proposals/TypeUnions.md</url></story><parent_chain><item><author>Eji1700</author><text>F# is so hard to walk back from. I wish Microsoft would support it better and actually push it, because it&amp;#x27;s such a perfect sweet spot.  Most of the functional advantages without being shackled to pure functions and the like is so easy to develop in.&lt;p&gt;Instead they&amp;#x27;ve been, very slowly, turning C# into F#, which is even weirder to watch.</text></item><item><author>tombert</author><text>Huh, I did F# for years with discriminated unions, and I guess I just assumed C# would have had them by now.&lt;p&gt;I know not everyone likes them, but for typed languages I find it extremely hard to go back to languages without ADTs of some kind.  I do Java for my current job, and Java is generally fine enough, but it&amp;#x27;s a little annoying when I have to do whacky workarounds with wrapper classes to get something that would be done in three lines of F#.</text></item></parent_chain><comment><author>electroly</author><text>I&amp;#x27;m glad they&amp;#x27;re simply turning C# into F#. They&amp;#x27;re coming to us where we are, rather than forcing us to make a jump. I&amp;#x27;m a relatively &amp;quot;blue collar&amp;quot; developer, I know a little about FP (not enough to be productive in F#) but I have tons of C# experience. I appreciate them taking the good stuff from F# and making it understandable to C# developers. It&amp;#x27;s been a delightful progression; no big jumps, no paradigm shifts, just the steady addition of useful new features that I can understand.</text></comment>