2014 Poster Sessions : Emergent, Crowd-scale Programming Practice in the IDE

Student Name : Ethan Fast
Advisor : Michael Bernstein
Research Areas: Graphics/HCI
While emergent behaviors are uncodified across many domains such as programming and writing, interfaces need explicit rules to support users. We hypothesize that by codifying emergent programming behavior, software engineering interfaces can support a far broader set of developer needs. To explore this idea, we built Codex, a knowledge base that records common practice for the Ruby programming language by indexing over three million lines of popular code. Codex enables new data-driven interfaces for programming systems: statistical linting, identifying code that is unlikely to occur in practice and may constitute a bug; pattern annotation, automatically discovering common programming idioms and annotating them with metadata using expert crowdsourcing; and library generation, constructing a utility package that encapsulates and reflects emergent software practice. We evaluate these applications to find Codex captures a broad swatch of programming practice, statistical linting detects problematic code snippets, and pattern annotation discovers nontrivial idioms such as basic HTTP authentication and database migration templates. Our work suggests that operationalizing practice-driven knowledge in structured domains such as programming can enable a new class of user interfaces.

Ethan is a second-year PhD student in HCI at Stanford University, advised by Michael Bernstein. Formerly he co-founded Proxino, a JavaScript analytics company, which Y Combinator funded in 2011. He has a BA in Computer Science from the University of Virginia.