3 ms·
There's a lot of talk of Rx libs, but from https://reactivex.io/intro.html https://reactivex.io/intro.html I see: "It is sometimes called “functional reactive
by dllthomas 4y ago
There's a lot of talk of Rx libs, but from https://reactivex.io/intro.html https://reactivex.io/intro.html I see:
"It is sometimes called “functional reactive programming” but this is a misnomer. ReactiveX may be functional, and it may be reactive, but “functional reactive programming” is a different animal. One main point of difference is that functional reactive programming operates on values that change continuously over time, while ReactiveX operates on discrete values that are emitted over time."
At the same time, I see lots of references to FRP on https://reactivex.io/tutorials.html https://reactivex.io/tutorials.html so I am not sure what the actual position of the project is, or the actual status of the technologies (maybe things have changed?).
- Paradigma11 4y agoThere was reactive programming coming from c#. You can look up Eric Meijer and the duality of Observable and IEnumerable. It is discrete, push and event based and has some history with flow based programming. FRP comes from Conal Elliot and has a continuous pull based aspect with maybe an additional reactive event based component on the side. Then the javascript horde discovered rx and since functional programming is cool, rp is now frp.
- dllthomas 4y agoBut an article on FRP on haskell.org is probably actually about FRP, right?
- Paradigma11 4y agoIndeed. That is why you have: at : Behavior α → Time → α which is a pull based continuous data type. This is a very elegant concept but comes with its own set of difficulties if implemented naively (space and time leaks). A similar concept is shown here: https://www.microsoft.com/en-us/research/uploads/prod/2000/09/pj-eber.pdf https://www.microsoft.com/en-us/research/uploads/prod/2000/0... Imo the main problem in the end is/was that not many problems are that conveniently described as continuous. Discrete and push based (rx) can do most things and even that is overused. It makes problems that are otherwise very hard, much easier to describe and solve using the many powerful combinators https://www.learnrxjs.io/learn-rxjs/operators https://www.learnrxjs.io/learn-rxjs/operators On the other hand you make all those easy problems quite a bit harder and if you are not disciplined you end up with complex rx "queries" that have semantics that you dont understand.