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 Fast | 1 | 140 | 8.45 |
Michael S. Bernstein | 2 | 8604 | 393.80 |