Issue No. 05 - September/October (2007 vol. 24)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2007.127
Diomidis Spinellis , Athens University of Economics and Business
Copy-pasting code is a source of bugs. By employing in our programs abstraction mechanisms such as functions, classes, types, decision tables, domain-specific languages, and databases, we can abstract common elements into parameterized reusable functionality. However, abstraction has its cost. Its early gains are large, but eventually the benefits turn negative and the code becomes less comprehensible and maintainable. Deciding when abstracting is appropriate is what makes programming an art.
abstraction, function, class, generics, types
D. Spinellis, "Abstraction and Variation," in IEEE Software, vol. 24, no. , pp. 24-25, 2007.