Issue No.05 - September/October (2007 vol.24)
Diomidis Spinellis , Athens University of Economics and Business
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2007.127
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
Diomidis Spinellis, "Abstraction and Variation", IEEE Software, vol.24, no. 5, pp. 24-25, September/October 2007, doi:10.1109/MS.2007.127