David Parnas’ 1972 seminal paper, “On the criteria to be used in decomposing systems into modules”, set a milestone in our collective understanding of how complex programs should be divided into more manageable parts. Over forty years later, I have reimplemented in D the example programs presented in the paper and came away with insights that are not obvious from a more casual reading of that text.

In this talk I will 1) present the original insight of the paper, using more modern language; 2) relate it to current design best practices and 3) argue, with the help of my implementation, that D best fulfilled the paper’s original vision, even surpassing it.