Type Systems And Programmers: A Look at Optional Typing in Dart
Authors
Faldborg, Mark ; Nielsen, Troels Lisberg
Term
4. term
Education
Publication year
2015
Submitted on
2015-06-08
Pages
77
Abstract
Denne afhandling undersøger, hvordan programmeringssprogs typesystemer påvirker softwareudvikling, ved at kombinere et kontrolleret eksperiment med interviews. Et typesystem er et sæt regler for, hvilke slags værdier koden må bruge. Ved statisk typning tjekkes disse regler, før programmet kører; ved dynamisk typning tjekkes de, mens programmet kører. Vi spørger, om udviklere bruger kortere tid på at løse opgaver med et statisk typet API end med et dynamisk typet API. Vi gennemførte et kontrolleret eksperiment i Dart, et sprog med valgfri typning, ved hjælp af DartPad, et webbaseret udviklingsmiljø. Resultatet er ikke entydigt: I vores data fandt vi ingen klar forskel i udviklingstid mellem de to tilgange. For at forstå, hvordan udviklere opfatter typer, gennemførte vi også interviews. Deltagerne sagde, at statisk typning forbedrer sikkerhed, har en dokumenterende effekt og fungerer som en social kontrakt med andre udviklere; samtidig oplevede de, at dynamisk typning giver hurtigere udvikling. Afhandlingen er et første skridt og kan danne grundlag for videre forskning.
This thesis explores how programming language type systems affect software development by combining a controlled experiment with interviews. A type system is a set of rules about what kinds of values code can use. In statically typed code, these rules are checked before the program runs; in dynamically typed code, they are checked while the program runs. We ask whether developers complete tasks faster with a statically typed API or a dynamically typed API. We ran a controlled experiment using Dart, a language with optional typing, and DartPad, a web-based IDE. The results are inconclusive: in our data we found no clear difference in development time between the two conditions. To understand how developers think about types, we also conducted interviews. Participants said static typing improves security, has a documenting effect, and acts as a social contract with other developers; they felt dynamic typing enables faster development. This is an initial, exploratory study and a starting point for future research.
[This abstract was generated with the help of AI]
