Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How much will the new C#9 features change the way we use LanguageExt? #800

Closed
MrYossu opened this issue Jul 9, 2020 · 2 comments
Closed

Comments

@MrYossu
Copy link
Contributor

MrYossu commented Jul 9, 2020

I was just reading about the upcoming C#9, and am amazed how much it's looking like F#! The C# team are really going heavily into functional programming (hurray) at last. The only major feature I can see that's missing are discriminated unions, but I guess that those will come along at some point.

Once C#9 is released, how much will it affect this package? There are some features there that cover some of the issues that LanguageExt seems to have been designed to fix.

Any comments from the experts?

@louthy
Copy link
Owner

louthy commented Jul 10, 2020

Many things that I've put into language-ext, or written about, has now got some direct language support:

Not that I'm claiming the C# team is following the lang-ext playbook, by the way. But it is scary how my list of issues with C# is being progressively worked through by the C# team ;)

Some aspects of language-ext are now not required, like using Tuple(1, 2) to construct tuples. Over time some things might get deprecated, but ultimately functional C# still needs a functional base-class library. This is true in all other functional languages, they all have a core Prelude which brings in the common tools, and libraries that support features like immutable collections.

And so, the future of language-ext will continue to provide a more comprehensive feature-set of types and functions that promote functional programming in C#. I will, of course, adapt language-ext to these new language features where appropriate. The next big job is working out how to make the library play nice with nullable references. Another example would be the features of language-ext's records that aren't in C#'s records, so I will look to supplement the core language's features too.

Ultimately, if the C# team can allow me to remove code from this library, that's awesome. But it'll never get to the point where the library isn't needed.

@MrYossu
Copy link
Contributor Author

MrYossu commented Jul 14, 2020

Hi Paul, thanks for the reply.

Not that I'm claiming the C# team is following the lang-ext playbook, by the way.

It wouldn't surprise me in the least if they were keeping a keen eye on this project and taking ideas. By your own admission, LanguageExt has become the de-facto standard for FP in C#. Given the way Microsoft are embracing FP, it makes sense that they would watch this project.

Anyway, don't do yourself down, take a bit of credit!

But it is scary how my list of issues with C# is being progressively worked through by the C# team ;)

Scary? I think it's fantastic. Not that I want to do you out of your project, but it's wonderful to see C# moving in this direction.

All we need now are discriminated unions and my cup of happiness would overflow!

@louthy louthy closed this as completed Aug 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants