2008-03-11

simont: A picture of me in 2016 (Default)
2008-03-11 11:17 am

Antinouns

Over the past decade I have been gradually forming an opinion about computing, and it is this: complex computer systems and pronouns do not mix well.

I said something like this nearly ten years ago in my article ‘How to Report Bugs Effectively’. Near the end I mentioned that when writing a bug report you should be careful of pronouns, because they can easily turn out to have more than one plausible referent and render your sentence ambiguous. Since then I've been gradually forming the opinion that this principle goes further than bug reports, and should in fact be extended to most – if not all – statements about computers which are intended to be technically precise.

The reason I say this about computers in particular is that computer systems seem to be a particularly fertile field for not being quite sure which bit of them someone's talking about. A complex computer system contains a great many cooperating processes, programs and scripts, so if someone says something like ‘it couldn't find the file’ then there are often several of those programs and scripts which might plausibly have been looking for the same file, so it's easy to be unclear about which the person meant. (And, indeed, there are often many files those programs could have been looking for; ‘the file’ in my above example isn't technically a pronoun, but for these purposes it can easily have the same vagueness problem.)

Part of the problem, I think, is that people are often not sure themselves which part of a complex system they're talking about. That's excusable when a user is reporting a bug: as long as they can clearly describe the visible symptoms, it's not their responsibility to understand the tangle of interoperating processes that gave rise to them. But if (for instance) there's a subsequent conversation between two programmers trying to fix the bug, and one of them advances a hypothesis about what's going on, then the excessive use of ‘it’ in the statement of the hypothesis seems to me to be correlated with the programmer being hopelessly confused about which part of the system is doing what – often leading to the hypothesis being fundamentally unviable.

I wouldn't go so far as to say that one must not use pronouns; but I think that if one is trying to conduct a precise technical conversation, one should at the very least

  • make sure one has a clear idea of the exact referent of every pronoun one uses, and be prepared to state that referent precisely if queried
  • be sparing in the use of pronouns: be aware that there's a constant risk of ambiguity, and only use a pronoun when you're reasonably sure it's safe to do so. In particular, become less willing to use pronouns the more involved the conversation becomes.

(I'm half tempted to coin the word ‘antinoun’ to describe a pronoun used to – not necessarily consciously – cover the fact that you're not sure what its referent is.)