David Thompson

David Thompson at

"The argument that Monoid should be called something else (maybe Appendable) is about as convincing as the proposition that a Group should be Clock. A clock in a contrived sense can be considered a group and perhaps helps with some initial intuition, but the term is ultimately misleading. Similarly, if one expects that all constructs in programming be modeled on everyday concepts one will eventually hit up against the limitations of everyday experience to model higher abstractions. We would never arrive at complex numbers by counting scratches on a clay tablet, nor would we come up with Galois theory or elliptic curve cryptography by considering groups purely in terms of clocks."

Great article.