Immediate Mode with Immutable Data
Immediate mode UI programming is based on continually drawing the UI in a render loop, handling events in between frames using ordinary control-flow. This supports straightforward understanding and debugging of UI code, without inversion of control. In this paper I present TwoStones, a simple DSL for immediate mode Web UI programming in a purely functional style: it presumes a single, immutable application model which is updated functionally through the use of cursors (a kind of zipper). Relying only on immutable data means that time-travel debugging and undo-facilities are easy to implement. For exposition purposes, the semantics of TwoStones is first decomposed in two parts: one semantics for rendering, and one semantics for event handling. Finally, they are merged again for better performance. A number of examples show the potential of the approach.
Tue 4 Apr Times are displayed in time zone: (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
|13:30 - 13:55|
|13:55 - 14:20|
|14:20 - 14:45|
Kristian B. Antonsen, Michel Beaudouin-Lafon, James Eagan, Clemens Nylandsted Klokmose, Wendy Mackay, Roman RädlePre-print
|14:45 - 15:00|