Publications

Stats

View publication

Title How (and Why) Developers Use the Dynamic Features of Programming Languages: the Case of Smalltalk
Authors Oscar Callau, Romain Robbes, Éric Tanter, David Roethlisberger
Publication date December 2013
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.
Pages 1156-1194
Volume 18
Journal name Empirical Software Engineering
Publisher Springer-Verlag (Berlin/Heidelberg, Germany)
Reference URL View reference page