-
Notifications
You must be signed in to change notification settings - Fork 13
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
Thank you for using FusionTasks, will archive in late 2022. #14
Comments
Features
As far as I can see, NONE of the above feature list is covered by the new Task {} CE in F#. There is plenty of reason to carry on using async {} instead of task {} but async {} still doesn't easily consume Tasks or ValueTasks, C# still doesn't consume Asyncs and so on. While it's true that you can use task {} it's not always a natural fit with existing API's or in general as a way to do asynchronous control flows compared with async {}, using MailboxProcessor for example which really require the use of Async, and async {} CEs can't consume Tasks directly. task {} CEs can consume Asyncs though. |
(This is a complete ramble ;) Thank you for showing us a summary of the benefits of FusionTasks. I'm very glad you did! These are precisely the motivations I felt were lacking in F#'s Async and designed FusionTasks to compensate for that.
... what I was thinking (in terms of maintenance). On the other hand, I started with C# 1.0 as the language for .NET, and in order to use F# (both in the hobby and work domains), I could not ignore the overwhelming majority of libraries created by C#. In F#, using libraries designed for F# is what boosts the F# programming experience the most, but to do so:
Any of the above would involve a great deal of work. In particular, at the same time I felt this problem, C# 5.0 was in the process of introducing the async-await syntax with To avoid as much as possible incorrect writing of glue code with OSS libraries (for C#), and to reduce the barrier that C# developers have to overcome in order to touch F# and write code in F#, even if it is only in the scene of asynchronous processing. This would lead to an opportunity to get more people exposed to F#, which is why we created FusionTasks. However, as a community activity, we have spent a great deal of time explaining asynchronous processing, from hardware to software, from the big picture to the smallest details, but I feel that even now it is difficult to say that such activities have come to fruition. In fact, I think that the syntactic rules of asynchronous processing have become so well accepted that it has become more difficult to understand the background. To return to your point,
While it is certainly true:
|
Finally deployed 2.6.0 package on nuget.org. I put unit tests on F# 7.0 and exactly passed with no additional patching :) I really loved this project. あらためて、皆さん、ありがとうございました! |
Thanks to the many users who have tried this library.
As you know, when F# was updated to 6.0, it supported a generic awaitable computation expression using SRTP.
While we considered continuing to support it when the specification was not yet finalized, the new solution is generic enough that it no longer requires FusionTasks.
Originally, this library was implemented because F# uses
Async
and C# usesTask
separately, which made it (somewhat) inconvenient to use the OSS libraries. This was a good experience that helped me to understand the concept of `asynchronous' in an abstract way, and thus the abstract concept of functional programming as a whole.The FusionTasks NuGet package continues to be applicable and can probably be used in future versions of F#, as F# will probably maintain backward compatibility. It is one of my most cherished projects, and I am sad to see it end, but I will finish it properly.
I plan to archive it during 2022, around the end of the year.
Thank you for all again.
The text was updated successfully, but these errors were encountered: