One of the major advances in programming is the idea of a template.

A lot of programming consists of similar patterns but using different data types.

Template programming or generic programming has enabled easy usage of well known programming patterns.

To understand this, one can visualize a series of stencils being used with various colors of paint to produce similar patterns but with multiple colors.