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

Incremental Reactive Programming #14

Open
fdietze opened this issue Mar 21, 2018 · 4 comments
Open

Incremental Reactive Programming #14

fdietze opened this issue Mar 21, 2018 · 4 comments

Comments

@fdietze
Copy link

fdietze commented Mar 21, 2018

I just found a few interesting papers which I think are very relevant for achieving efficient dom updates without virtual dom:

Maier, Ingo, and Martin Odersky. "Higher-order reactive programming with incremental lists." European Conference on Object-Oriented Programming. Springer, Berlin, Heidelberg, 2013.

Prokopec, Aleksandar, Philipp Haller, and Martin Odersky. "Containers and aggregates, mutators and isolates for reactive programming." Proceedings of the Fifth Annual Scala Workshop. ACM, 2014.

Reynders, Bob, and Dominique Devriese. "Efficient Functional Reactive Programming Through Incremental Behaviors." Asian Symposium on Programming Languages and Systems. Springer, Cham, 2017.

@raquo
Copy link
Owner

raquo commented Mar 25, 2018

Thanks, these look interesting, I will give it a read eventually.

I'll keep this issue open until I add a section in documentation with useful resources like this.

@raquo
Copy link
Owner

raquo commented Feb 17, 2023

Just adding some semi-relevant discussion on SignalMap as an alternative to split here:

https://discord.com/channels/1020225759610163220/1020225760075718669/1075918160915611849

https://github.com/armanbilge/calico/blob/20fc174d3f7f918049187e46369858af43292886/frp/src/main/scala/calico/frp/SignallingSortedMapRef.scala#L35

@fdietze
Copy link
Author

fdietze commented Feb 25, 2023

And there is https://github.com/timelydataflow/differential-dataflow, and a discussion on how to use it as an alternative to virtual dom: TimelyDataflow/differential-dataflow#154 (comment)

@armanbilge
Copy link

Thanks for sharing that! This bit is quite interesting.

For example, for large lists, if you attach every item to its own differential dataflow, then that will make for blazing fast reconciliation, but probably cause all kinds of other problems (e.g. constant teardown and re-creation of dataflows as a user scrolls the list). Therefore I think that a hybrid approach might be best, where the heavy lifting is handled by Differential, and smaller batches are done via reconciliation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants