Update on the Natural Programming Project
Google Tech Talks
September 26, 2007
The Natural Programming Project is working on making programming languages and environments easier to learn, more effective, and less error prone. We are taking a human-centered approach, by first studying how people perform their tasks, and then designing languages and environments that take into account people's natural tendencies. We focus on all kinds of programmers: professional programmers, novice programmers who are trying to learn to be experts, and "end-user programmers" who are people who program because they must to achieve their "real jobs." This talk will update my talk to Google from October 27, 2005, and cover the exciting progress we have made since then. After briefly reviewing our old work on designing languages for novices, our new systems and studies will be presented. We have a new version of the the Whyline tool, which allows programmers to directly ask "why" and "why not" questions of their Java programs and get a visualization of the answers. The previous version for Alice decreased debugging time by a factor of 8 and increased programmer productivity by 40%, and pilot studies of the new version suggest a factor of two improvement in time. Other new work helps programmers keep track of their "working sets," since our research showed that programmers spend about 38% of their time navigating around code. Most of coding today is making use of APIs, and we have evaluated a number of APIs and design patterns using HCI techniques, to reveal how to make their easier to use for programmers. We also have a brand new study of the practices and problems for Interaction Designers working on interactive behaviors.