“We learnt that we were building the same thing over and over, and realised that the more interesting thing to do was to cut out the wasted effort and cost, and work out how to automate 90 per cent of writing code.”<p>I view that as a failure of abstraction and composition, not as a failure of automation. If it's tedious to hook up window controls to underlying data, or to handle properly a form validation loop in a controller for the millionth time, we should be asking why the abstraction layer we are using requires that tedium instead of being more succinct?<p>Often the abstraction is complex because of the degrees of freedom it has. Automation on the other hand reduces the degrees of freedom. This is great if you are the one who is reducing and making the choices, but if you are letting someone else make all the choices about what is possible... It's like the difference between driving and being chauffeured.<p>Even if this system were like the mathematician: "show me all possible worlds satisfying X" it would require either a huge search space to pick the desired answer or present only a handful of preselected choices. Search refinement is more interesting, sounds like a great deal of complexity to avoid (less?) complexity of actually doing the work-- especially in meanial cases-- i.e. I don't want to sift through 1000 variations of form validation to "find" the magic one that completely meets my business needs.