Functional reactive programming

Especially for user interfaces

October 31, 2016 — September 5, 2024

computers are awful
concurrency hell
premature optimization
signal processing
stringology
UI
Figure 1

Stream processing plus nearly-functional programming equals functional reactive programming (FRP). Very popular in user interface design.

Why are there not more visual pipeline programs for this programming domain? It looks like an obvious fit.

1 Transducers relate somehow?

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

  • Reactive manifesto:

    We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognized 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.