一句话:通过 71 名程序员实验量化类型标注负担,并评估自动建议对标注准确率的影响。
类型标注将程序变量与领域特定类型关联,配合类型系统可支持早期故障检测,但开发者承担的成本尚不清楚。本文考察三个问题:开发者标注类型的准确率、单次标注耗时,以及自动建议对准确率的影响。研究招募 71 名程序员,对 20 个随机代码工件中需标注物理单位类型的变量进行标注。结果显示,正确标注率仅 51%,单次正确标注平均耗时 136 秒;变量名与对数学运算的推理是主要线索。正确建议将准确率提升至 73%,错误建议则降至 28%。作者还分析当前自动类型标注系统的能力与不足,并总结对工具开发者的启示。
Type annotations provide a link between program variables and domain-specific types. When combined with a type system, these annotations can enable early fault detection. For type annotations to be cost-effective in practice, they need to be both accurate and affordable for developers. We lack, however, an understanding of how burdensome type annotation is for developers. Hence, this work explores three fundamental questions: 1) how accurately do developers make type annotations; 2) how long does a single annotation take; and, 3) if a system could automatically suggest a type annotation, how beneficial to accuracy are correct suggestions and how detrimental are incorrect suggestions? We present results of a study of 71 programmers using 20 random code artifacts that contain variables with physical unit types that must be annotated. Subjects choose a correct type annotation only 51% of the time and take an average of 136 seconds to make a single correct annotation. Our qualitative analysis reveals that variable names and reasoning over mathematical operations are the leading clues for type selection. We find that suggesting the correct type boosts accuracy to 73%, while making a poor suggestion decreases accuracy to 28%. We also explore what state-of-the-art automated type annotation systems can and cannot do to help developers with type annotations, and identify implications for tool developers.