Tue Jun 6 10:45:19 EDT 2017
GUI: Event propagation graphs
- Eventually, the computer this runs on needs to execute a sequence of
commands, propagating data in a way that is not circular.
- The problem seems simple if we didn't have to worry about this
- Push: a value changes, and it is expressed manually which other
values have to change in response. If this leads to cycles, the
system will break the cycle by distinguishing old vs. new.
- Pull: every value in the system is a function of another value.
This is the "reactive" paradigm?
- Constraint: there are a number of constraints between values, and
the system would resolve these when one of them is updated.
- Read Conal's push/pull functional programming. The push and pull
ideas are central to the idea and I might have reinvented parts of
his idea in the data elements implementation.
- I believe what I really want is a compiler from a constraint-based
specification of a GUI to an static eager imperative event handler.
Read more about constraint programming.