Monday, March 3, 2014

And I vs And me

This past week, I've seen three of my friends from university use "and I" in a sentence, where it should have been "and me". This has always been a particular grammatical pet peeve of mine, particularly since it's so easy to correct.

An example sentence (not from any of these specific cases) could be "Jane talked with Jim and I about the proposed design". This should, of course, be "Jane talked with Jim and me...".

This mistake is a little unusual in my experience, since it seems to be pretty exclusive to native English speakers. In six years of living in Romania, I don't think I ever heard a Romanian make the wrong choice between "I" and "me", even when a conjunction was involved. Nor do I remember hearing it from non-native speakers from other parts of the world (whether the native language is Latin-based, Germanic, or non-European). Furthermore, it's a mistake that comes up surprisingly frequently among well-educated English speakers.

In the context of these three university friends who independently made the same mistake, they are all native English-speakers, raised in Canada, with degrees in mathematics and/or computer science. I heard far too frequently in university that math/CS people don't need to know details of grammar, since they don't need to do a great deal of writing. I always found that argument pretty silly, given that math and computer science both benefit from fairly precise use of language (whether it be the extensive jargon and overloading of terms in math, or the languages we use to program, which tend not to tolerate mistakes in syntax -- with the notable exceptions of Javascript and PHP).

How to do it correctly?

There's a pretty simple rule, passed on to me by my mother, who learned it from her father: eliminate the other person. If you think "Jane talked with Jim and I about the proposed design" sounds fine, try eliminating Jim from the sentence: "Jane talked with I about the proposed design". That's obviously wrong. So, it's very easy to correct yourself.

If I recall correctly, my mother taught me that rule when I was six. I remember reciting it to my sister when I was eight and she was five. It's a simple enough rule for five and six year-olds to understand, and yet it's not taught in public schools across the English-speaking world. I vaguely remember correcting a friend at age 10 — yes, I was one of those kids — and being told that his teacher had told him to always use "and I", regardless of context (which is completely ridiculous). In fact, I definitely remember that my mother taught me that rule by telling me a story of when her father proofread something she had written, switched "and I" to "and me", and her teacher had marked it as incorrect. She taught me two very important lessons that day: when to use "and me" versus "and I", and the fact that sometime teachers are wrong.

Why does the rule work?

Studying math and computer science, I always loved it when I could apply the elegant formal theory that we studied to something from the "real world". In general, systems built around axioms, construction rules, and higher-order truth tend to fall apart when you're dealing with messy, human systems (like natural language).

One of the things I love about this particular case is that, so far as I can tell, there is a simple, elegant rule. The word "and" (or "or") is an operator. That is, it takes two elements from the same set as operands, and returns an element from that same set. In this case, the possible sets are simply parts of speech, or "roles" of words in a sentence.

For example, "table or red" doesn't make a lot of sense in most contexts, since table is a noun and red is an adjective. (The exceptions could be where "table" is used as an adjective, as in "table wine", or we use "red" as a noun by referring to word "red" or the colour it represents.)

Of course, in the context of a sentence, nouns aren't just nouns. They end up being either the subject or object of a verb. That is, they produce the action or they are acted upon.

Names are a little tricky, since they work either as subjects or objects (since English lacks the precision that comes with having accusative, dative, and prepositional noun declensions for names, or indeed nouns in general). For example, in "Jim talked to Jane", "Jim" is the subject and "Jane" is the object. Obviously, we can swap them and their roles in the sentence swap as well.

Fortunately, two words (pronouns, in fact) that very rarely change context are "I" and "me". Specifically, "I" (when used as such) is the first person singular subject in a sentence, while "me" is used as the object of a clause's action.

As such, since "and" is an operator, we know that "Jim and I" must be the subject of a verb, while "Jim and me" must be the object, since they are both constrained to the given sets by the presence of "I" or "me".

Hey, isn't this a programming blog?

I got to thinking, "Hey, since this is such a simple rule, couldn't we express it in code, even in a language like Java with basic type inference?" The answer I've been able to find so far is "kind of".

I wanted to make something that would work using infix notation (so that dropping dots and parentheses would result in a readable English sentence), which means using methods, which means using objects, which means using classes. Unfortunately, that means that we're constrained by Java's inheritance rules.

Luckily, the inheritance rules were relaxed a little in Java 1.8, so I can provide an example with less boilerplate than would be required with 1.7 or earlier.

By using default method implementations, we're able to provide an empty implementation of the "Name" class, as well as the anonymous class instances "I" and "me". It doesn't help a lot, but keeps the code short. The important thing to notice is that both "Subject" and "Obj" (used in place of Object, to avoid confusion with the Java base class) define methods called "and", but they only act on operands of the same type and return a result of the same type.

Let's see what the compiler does with different inputs:

We can add a few more definitions to grammar-check pop songs from 1987:

So, what now?

In short, please stop making this mistake. We've seen an explanation that a five year-old could understand, a set-theoretic explanation of why it works, and finally an example in code (along with a reference to a song that appeared on the Dirty Dancing soundtrack). I hope I've made it clear that "But I'm a math/CS person, I don't need proper grammar!" is not a valid excuse for sounding/writing like an idiot.