The Psychopath Who Knows Where You Live

Written by Piers Cawley on , updated

A definition before we start:

intentional, a. (n.)

1. Of or pertaining to intention or purpose; existing only in intention. intentional fallacy: in literary criticism, the fallacy that the meaning or value of a work may be judged or defined in terms of the writer’s intention

2. Done on purpose, resulting from intention; intended. Rarely of an agent: Acting with intention.

The Oxford English Dictionary, 2nd ed

A definition before we start:

intentional, a. (n.)

1. Of or pertaining to intention or purpose; existing only in intention. intentional fallacy: in literary criticism, the fallacy that the meaning or value of a work may be judged or defined in terms of the writer’s intention

2. Done on purpose, resulting from intention; intended. Rarely of an agent: Acting with intention.

The Oxford English Dictionary, 2nd ed

If you do much reading about good coding practices, it won’t be long before you come across the phrase “Intentional Programming” which is claimed by Charles Simonyi of Microsoft. Read Kent Beck or Martin Fowler you’ll soon be familiar with the Composed Method pattern and its handmaiden the Intention Revealing Selector. Kent Beck wrote an entire book about the tactics of programming that turned on the concept of the composed method. If you truly grok this pattern then more strategic patterns flow naturally from it.

Kent has said that he views comments in code as indicative of either insufficiently well factored code or of badly named methods. From this viewpoint, Intentional Programming is writing code that makes our intent clear to anyone reading the code. Computers don’t care about style (or anything else for that matter). Humans care deeply, even if they don’t realize it. So, given a choice, choose to express your intent clearly.

That’s one way of reading Intentional Programming. An equally important way is to look at the second meaning of ‘intentional’ in that definition. In the light of that, ‘Intentional Programming’ becomes “Deliberate Programming”. Programming you’ve thought about.

  • 0 likes
  • 0 reposts
  • 0 replies
  • 0 mentions