Too Long; Didn't Read
Why is it so hard to write and maintain UI code? One of the reasons is poor API design. Specifically poor balance of <em>control</em> vs <em>effort </em>over a set of use cases. Effort is the time it takes to implement a use case using an API. Control is how fine-grained the commands that we send to an API can be.