In programming, canonical means according to the rules.. And non-canonical means not according to the rules.. In the early Christian church, the canon was the officially chosen text. In The New Hacker's Dictionary , Eric Raymond tells us that the word meant reed in its Greek and Latin origin, and a certain length of reed came to be used as a standard measure.