Every program has (at least) two purposes: the one for which it was written, and another for which it wasn’t.
If a listener nods his head when you’re explaining your program, wake him up.
A program without a loop and a structured variable isn’t worth writing.
A language that doesn’t affect the way you think about programming, is not worth knowing.
Wherever there is modularity there is the potential for misunderstanding: Hiding information implies a need to check communication.