It is easier to change the specification to fit the program than vice versa.
Every program has (at least) two purposes: the one for which it was written and another for which it wasn't.
In software systems it is often the early bird that makes the worm.
Syntactic sugar causes cancer of the semicolon.
One can't proceed from the informal to the formal by formal means.
Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble?