Every program has (at least) two purposes: the one for which it was written and another for which it wasn't.
Alan PerlisYou think you KNOW when you learn, are more sure when you can write, even more when you can teach, but certain when you can program.
Alan PerlisOften it is the means that justify the ends: goals advance technique and technique survives even when goal structures crumble.
Alan Perlis