How (and why) developers use the dynamic features of programming languages: the case of smalltalk
Author
dc.contributor.author
Callaú, Oscar
Author
dc.contributor.author
Robbes, Romain
es_CL
Author
dc.contributor.author
Tanter, Éric Pierre
es_CL
Author
dc.contributor.author
Röthlisberger, David
es_CL
Admission date
dc.date.accessioned
2014-01-09T13:08:57Z
Available date
dc.date.available
2014-01-09T13:08:57Z
Publication date
dc.date.issued
2013
Cita de ítem
dc.identifier.citation
Empir Software Eng (2013) 18:1156–1194
en_US
Identifier
dc.identifier.other
DOI 10.1007/s10664-012-9203-2
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/126093
General note
dc.description
Artículo de publicación ISI
en_US
Abstract
dc.description.abstract
The dynamic and reflective features of programming languages are powerful
constructs that programmers often mention as extremely useful. However, the
ability to modify a program at runtime can be both a boon—in terms of flexibility—,
and a curse—in terms of tool support. For instance, usage of these features hampers
the design of type systems, the accuracy of static analysis techniques, or the introduction
of optimizations by compilers. In this paper, we perform an empirical study of a
large Smalltalk codebase—often regarded as the poster-child in terms of availability
of these features—, in order to assess how much these features are actually used in
practice, whether some are used more than others, and in which kinds of projects.
In addition, we performed a qualitative analysis of a representative sample of usages
of dynamic features in order to uncover (1) the principal reasons that drive people
to use dynamic features, and (2) whether and how these dynamic feature usages can
be removed or converted to safer usages. These results are useful to make informed
decisions about which features to consider when designing language extensions or
tool support.