bstract, rather than through examples. I’d like to see the ability to demonstrate examples in concrete situations, have the system record them, and generalize them to yield a procedure capable of working on analogous examples. I’ve made several systems in this area, and edited a book [2]. Figure 1: Metafor Natural Language Programming system Debugging I think the most pressing need in software development is not programming per se, but debugging. Programmers spend roughly half their time debugging, but debugging tools have hardly improved since the earliest days of computing. I’ve worked on several innovative reversible, graphical debuggers, based on ideas from diagnostic reasoning in AI. [1] I’ve been exploring the idea of end-user debugging [3], what one might call “debugging without programming”. The idea is that even when ordinary application use fails to meet the expectations of users, they could fruitfully use debugging techniques to discover what went wrong. Dagstuhl...