Mon Aug 28 11:55:32 EDT 2017
Final word on user interfaces
1. Model View Presenter (MVP). Main point is that model and view are
unaware of each other.
2. Use a fully declarative presentation tree model, and base the view
updates on PM tree diff. Structure PM such that diffs correspond
to updates of view widgets.
This is MVP (presentation model, isolated M,V) and also unidirectional
UI (data flows from ui events through model update to ui updates).
I believe there is a continuum between diffing the presentation model,
and diffing the declarative form of the final layout (e.g. React).
Diffing is the bridge between declarative and imperative, which in
reality has to always happen somewhere unless you always redraw
everything (e.g. OpenGL animations).