Functional reactive programming
Especially for user interfaces
October 31, 2016 — September 5, 2024
Stream processing plus nearly-functional programming equals functional reactive programming (FRP). Very popular in user interface design.
1 Transducers relate somehow?
CSP and transducers — I don’t think these are transducers as I understand them, i.e. stack machines, but I could be wrong. See also the expositions from the clojure authors:
2 Javascript
See FRP in Javascript.
3 Python
See FRP in Python GUIs.
4 Incoming
ReactiveX is a particular stream processing paradigm with implementations for many languages
-
We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognised individually: we want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems.
Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. This makes them easier to develop and amenable to change. They are significantly more tolerant of failure and when failure does occur they meet it with elegance rather than disaster. Reactive Systems are highly responsive, giving users effective interactive feedback.
Steven Witten, in I is for Intent, does something important: he explains the principled and pragmatic deviations from the stateless reactive ideal that are needed in real user-facing projects.