Thu 21 Oct 2021 15:55 - 16:10 at Zurich D - Corpus and User Studies Chair(s): Iulian Neamtiu
How working statically-typed functional programmers write code is largely understudied. And yet, a better understanding of developer practices could pave the way for the design of more useful and usable tooling, more ergonomic languages, and more effective on-ramps into programming communities. The goal of this work is to address this knowledge gap: to better understand the high-level authoring patterns that statically-typed functional programmers employ. We conducted a grounded theory analysis of 30 programming sessions of practicing statically-typed functional programmers, 15 of which also included a semi-structured interview. The theory we developed gives insight into how the specific affordances of statically-typed functional programming affect domain modeling, type construction, focusing techniques, exploratory and reasoning strategies, and expressions of intent. We conducted a set of quantitative lab experiments to validate our findings, including that statically-typed functional programmers often iterate between editing types and expressions, that they often run their compiler on code even when they know it will not successfully compile, and that they make textual program edits that reliably signal future edits that they intend to make. Lastly, we outline the implications of our findings for language and tool design. The success of this approach in revealing program authorship patterns suggests that the same methodology could be used to study other understudied programmer populations.
Thu 21 OctDisplayed time zone: Central Time (US & Canada) change
07:40 - 09:00 | |||
07:40 15mTalk | Well-Typed Programs Can Go Wrong: A Study of Typing-Related Bugs in JVM CompilersVirtual OOPSLA Stefanos Chaliasos Athens University of Economics and Business, Thodoris Sotiropoulos Athens University of Economics and Business, Georgios-Petros Drosos Athens University of Economics and Business, Charalambos Ioannis Mitropoulos Technical University of Crete, Dimitris Mitropoulos University of Athens, Diomidis Spinellis Athens University of Economics and Business; Delft University of Technology DOI | ||
07:55 15mTalk | How Statically-Typed Functional Programmers Write CodeVirtual OOPSLA Justin Lubin University of California at Berkeley, Sarah E. Chasins University of California at Berkeley DOI | ||
08:10 15mTalk | What We Eval in the Shadows: A Large-Scale Study of Eval in R ProgramsVirtual OOPSLA Aviral Goel Northeastern University, Pierre Donat-Bouillud Czech Technical University, Filip Křikava Czech Technical University, Christoph Kirsch University of Salzburg; Czech Technical University, Jan Vitek Northeastern University; Czech Technical University DOI | ||
08:25 35mLive Q&A | Discussion, Questions and Answers OOPSLA |
15:40 - 17:00 | Corpus and User StudiesOOPSLA at Zurich D -8h Chair(s): Iulian Neamtiu New Jersey Institute of Technology | ||
15:40 15mTalk | Well-Typed Programs Can Go Wrong: A Study of Typing-Related Bugs in JVM CompilersVirtual OOPSLA Stefanos Chaliasos Athens University of Economics and Business, Thodoris Sotiropoulos Athens University of Economics and Business, Georgios-Petros Drosos Athens University of Economics and Business, Charalambos Ioannis Mitropoulos Technical University of Crete, Dimitris Mitropoulos University of Athens, Diomidis Spinellis Athens University of Economics and Business; Delft University of Technology DOI | ||
15:55 15mTalk | How Statically-Typed Functional Programmers Write CodeVirtual OOPSLA Justin Lubin University of California at Berkeley, Sarah E. Chasins University of California at Berkeley DOI | ||
16:10 15mTalk | What We Eval in the Shadows: A Large-Scale Study of Eval in R ProgramsVirtual OOPSLA Aviral Goel Northeastern University, Pierre Donat-Bouillud Czech Technical University, Filip Křikava Czech Technical University, Christoph Kirsch University of Salzburg; Czech Technical University, Jan Vitek Northeastern University; Czech Technical University DOI | ||
16:25 35mLive Q&A | Discussion, Questions and Answers OOPSLA |