Instances of class Noun

I sometimes find my background in computer science helpful for understanding language – ironically, since computer science often uses language as a metaphor for computing functions. One case where this is true is in understanding the various ways that nouns work in world languages and the difficulties that English learners face in adapting to our particular system.

Let’s say both our learner’s L1 and English both have a similar definition of a “tiger”:

public class Tiger {

//assume I put the necessary constructors etc. here

public static int eyes=2; //static because each Tiger has the same # of eyes

public static int legs=4;

public String name;

boolean hunt(Animal prey) {

//do something

return true;

}

}

ESL teachers can probably predict what would happen if this student were called upon to write an essay on these Tigers: lots of sentences like “Tiger is the largest cat in the world” or “Tiger does not live in Africa”. It is a mistake to conclude that this student doesn’t realize that there are many tigers in the world, not just one.

English forces you to declare an instance of class Tiger before you make any reference to its number of eyes or call its hunt() function.

Tiger a_tiger = new Tiger();  //declaring an instance of class Tiger

System.out.println(a_tiger.eyes);  //printing a_tiger’s number of eyes

I know – this isn’t good coding style. At least I can take comfort in the fact that not too many people are interested in both Java and semantics. Saved from criticism by my small audience!

Still, I hope you take my point about English nouns: they refer to instances, rather than classes, by default. We demand that references to Tigers in general need to be plural, because there are many instances of Tigers (I’m just going to keep capitalizing this word) in the world, or that they be marked and elevated with the definite article the, singling out one instance of Tiger to stand for the rest. Both of these are ways of signalling to listeners that we mean something other than actual instances of Tigers, although that is what their form implies. So in English, this would cause an error:

System.out.println(Tiger.eyes);

because you can’t refer to the class itself. As in the above examples, you need to (at least appear to) talk about actual Tigers, not just the abstract idea of one.

Meanwhile, in Japanese, the same line produces no error:

System.out.println(Tiger.eyes);

It just prints “2”, as one would expect, because Japanese, unlike English, treats nouns as class references by default, as do many other languages. In fact, you can talk quite a lot about classes in Japanese without making any implied reference to actual instances of those classes.

if (Tiger.legs == Human.legs) {

System.out.println(“それはおかしいでしょう”);

}

if (Tiger.hunt(Human)) {

Human.run();

}

None of this requires us to posit that Tigers or Humans are even real. We can comfortably refer to them as classes and talk about those classes’ features, even imagining interactions between one class and another, without ever letting the wheels touch the ground, so to speak, on actual, flesh-and-blood Tigers.

This requirement of English for instantiation of nouns is unintuitive for many learners. Countable nouns in English must be referred to as if they were either solitary or in groups, a distinction which we call singular/plural, even when the distinction doesn’t matter (e.g. everybody has “their” own problems). There are uncountable nouns, of course, but as any learner who’s ever gone shopping for “furniture” or “equipment” can tell you, the rules for their deployment are not prima facie clear, nor are there reliable rules for making countable nouns uncountable or vice versa as communication requires (one can refer to breads to mean “many kinds of bread”, but not equipments to mean “many types of equipment”).

This is by no means universal, and our approaches to learners shouldn’t make the naïve assumption that mistakes in English countability or plurals indicate some kind of lack of comprehension that more than one Tiger exists in the world. In many languages, class reference is the default (or definite reference, which I was surprised to find is the case with Farsi), and even in the ones where it isn’t, not all share the particular plural/the cheat code for class reference found in English.

Different languages can treat “reality” differently, or sometimes just appear to. This is a major lesson from learning another language – even if that language is a programming language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s