To build more powerful user interfaces, we need more powerful models. Constraint programming provides one useful tool: removing the distinction between input and output.
My talk from JSConf 2013 on constraint programming in the browser is now online:
Resources
-
To learn more about the Cassowary algorithm, read The Cassowary linear arithmetic constraint solving algorithm.
-
To see the power of constraints in UI applications, read Greg Badros’ Ph.D. thesis, Extending Interactive Graphical Applications with Cassowary which describes the benefits of adding constraints to a window manager, a CSS layout engine, and an SVG engine. Greg also deserves credit I failed to give in the talk as the original author of the JavaScript Cassowary implementation.
-
To learn about core.logic, watch David Nolen’s talk from StrangeLoop 2012.