Duplication is bad. In fact, duplication is one of the most dangerous mistakes in coding.
I have to disagree with this; the article feels lofty in its assumption that when you start to program you know what to abstract. More often people begin abstracting due to a misguided axioms like "DRY" rather than to solve a problem with a real cost benefit trade off. DRY as a goal in itself is fairly dangerous.I can't count how many convoluted and confusing frameworks people have put together under this misguided perspective. It's not atypical for an abstraction born of "DRY" motivations to be more code and brittle than just copying and pasting 2 lines in 15 places.
Not to say abstractions are inherently bad, but to the point of abstracting for the sake of DRY is a mistake.