The behavior of gradual types: a user study
- 6 April 2020
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 53 (8), 1-12
- https://doi.org/10.1145/3393673.3276947
Abstract
There are several different gradual typing semantics, reflecting different trade-offs between performance and type soundness guarantees. Notably absent, however, are any data on which of these semantics developers actually prefer. We begin to rectify this shortcoming by surveying professional developers, computer science students, and Mechanical Turk workers on their preferences between three gradual typing semantics. These semantics reflect important points in the design space, corresponding to the behaviors of Typed Racket, TypeScript, and Reticulated Python. Our most important finding is that our respondents prefer a runtime semantics that fully enforces statically declared types.Keywords
Funding Information
- National Science Foundation (1518844)
This publication has 38 references indexed in Scilit:
- Gradual typing for SmalltalkScience of Computer Programming, 2014
- An empirical study on the impact of static typing on software maintainabilityEmpirical Software Engineering, 2013
- An empirical study of the influence of static type systems on the usability of undocumented softwareACM SIGPLAN Notices, 2012
- Integrating typed and untyped code in a scripting languageACM SIGPLAN Notices, 2010
- Hybrid type checkingACM Transactions on Programming Languages and Systems, 2010
- Operational semantics for multi-language programsACM Transactions on Programming Languages and Systems, 2009
- The design and implementation of typed schemeACM SIGPLAN Notices, 2008
- Natural programming languages and environmentsCommunications of the ACM, 2004
- Contracts for higher-order functionsACM SIGPLAN Notices, 2002
- A theory of type polymorphism in programmingJournal of Computer and System Sciences, 1978