Title
Emergent, crowd-scale programming practice in the IDE
Abstract
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.
Year
DOI
Venue
2014
10.1145/2556288.2556998
CHI
Keywords
Field
DocType
common programming idiom,programming system,ruby programming language,crowd-scale programming practice,pattern annotation,emergent programming behavior,emergent software practice,emergent behavior,programming practice,popular code,records common practice,data mining
Procedural programming,World Wide Web,Programming paradigm,Computer science,Inductive programming,Human–computer interaction,Symbolic programming,Reactive programming,First-generation programming language,Programming domain,Event-driven programming
Conference
Citations 
PageRank 
References 
20
0.84
29
Authors
5
Name
Order
Citations
PageRank
Ethan Fast11408.45
Daniel Steffee2200.84
Lucy Wang3200.84
Joel Brandt482643.19
Michael S. Bernstein58604393.80