Work In Progress: an Empirical Study of Static Typing in Ruby Mark T. Daly Vibha Sazawal Jeffrey S. Foster University of Maryland, College Park fmdaly,vibha,
[email protected] Abstract tural object types, and optional and variable type lists for In this paper, we present an empirical pilot study of four method signatures. Prior experience shows that DRuby finds skilled programmers as they develop programs in Ruby, a errors in a range of existing Ruby programs, when used by popular, dynamically typed, object-oriented scripting lan- DRuby’s authors [Furr et al. 2009b,a]. In our study, we aim guage. Our study compares programmer behavior under the to understand whether DRuby’s static type system actually standard Ruby interpreter versus using Diamondback Ruby helps typical Ruby programmers find and fix errors—if not, (DRuby), which adds static type inference to Ruby. The aim why not, and if so, how could we improve DRuby’s type of our study is to understand whether DRuby’s static typing system to better serve programmers’ needs? is beneficial to programmers. We found that DRuby’s warn- Based on qualitative analysis of participant experiences, ings rarely provided information about potential errors not we made three tentative findings. First, using an open coding already evident from Ruby’s own error messages or from technique [Strauss 1987] to classify DRuby error messages presumed prior knowledge. We hypothesize that program- produced during participant trials, we found that under 20% mers have ways of reasoning about types that compensate of DRuby’s error messages were informative. Second, in in- for the lack of static type information, possibly limiting terviews, participants reported that they did use types as part DRuby’s usefulness when used on small programs.