Title
Meta: Enabling Programming Languages to Learn from the Crowd.
Abstract
Collectively authored programming resources such as Q&A sites and open-source libraries provide a limited window into how programs are constructed, debugged, and run. To address these limitations, we introduce Meta: a language extension for Python that allows programmers to share functions and track how they are used by a crowd of other programmers. Meta functions are shareable via URL and instrumented to record runtime data. Combining thousands of Meta functions with their collective runtime data, we demonstrate tools including an optimizer that replaces your function with a more efficient version written by someone else, an auto-patcher that saves your program from crashing by finding equivalent functions in the community, and a proactive linter that warns you when a function fails elsewhere in the community. We find that professional programmers are able to use Meta for complex tasks (creating new Meta functions that, for example, cross-validate a logistic regression), and that Meta is able to find 44 optimizations (for a 1.45 times average speedup) and 5 bug fixes across the crowd.
Year
DOI
Venue
2016
10.1145/2984511.2984532
UIST
Keywords
Field
DocType
programming tools, crowdsourcing, social computing
Programming language,Crowdsourcing,Computer science,Human–computer interaction,Social computing,Python (programming language),Speedup
Conference
Citations 
PageRank 
References 
4
0.39
38
Authors
2
Name
Order
Citations
PageRank
Ethan Fast11408.45
Michael S. Bernstein28604393.80