Can learning and using another language change or even improve the way you think? This question first came up after reading a fascinating article last week about experiments in cognitive psychology, considering natural languages. My goal is to connect these ideas with computer science, considering programming languages. In both cases, there is evidence suggesting that the answer to the question above is yes.
First, I recommend reading “How Language Shapes Thought,” by Lera Boroditsky, an assistant professor of cognitive psychology at Stanford. The article is less than three pages, and contains descriptions of several experiments that suggest the extent to which a person’s language affects their ability to perceive the world, perform tasks, etc.
(I find observations from experiments like these to be very interesting… and almost spooky. We humans have grown used to the idea that our bodies are made up of physical processes, that we are at times like cars with a knock, and medical doctors are like tinkering mechanics. But many people grow much more uncomfortable at even the suggestion that their brains, their minds, might similarly be “merely” physics, nothing more than a deep pocket of low entropy.)
For example, consider the Kuuk Thaayorre language spoken in northern Australia, that does not contain words for relative directions like “left” or “right.” Communicating relative spatial relationships in this language always involves absolute cardinal directions like north, east, etc. The result of this “restriction” is interesting, as Boroditsky writes:
“… People who speak languages that rely on absolute directions are remarkably good at keeping track of where they are, even in unfamiliar landscapes or inside unfamiliar buildings. They do this better than folks who live in the same environments but do not speak such languages and in fact better than scientists thought humans ever could. The requirements of their languages enforce and train this cognitive prowess.”
The idea is pretty simple: our language is not separate from our thought process. Certainly how we think affects how we create, modify, and evolve our means of communication; but the converse appears also to be true.
Now let us switch gears, and move from cognitive psychology to computer science. It occurred to me that one of Paul Graham’s essays, Beating the Averages, describes a very similar phenomenon involving programming languages. (If you have not read any of Graham’s stuff, look farther than just the link above. He has written a lot, and almost all of it is interesting reading.)
As with natural language, everyone has a favorite or most commonly used programming language. That favorite language is almost certainly not machine language (at least I hope not). And everyone can probably explain why his or her favorite language is “better” than machine language: because machine language lacks some particular nice feature, like vectorized arithmetic operations, or list comprehensions, or macros, or whatever.
This is because machine language is at the bottom of what Graham describes as a “continuum” of expressive power. We know how to appreciate our own language’s advantages over machine language because we know how to talk about what machine language lacks. But– and this is the key point– what happens if we try to compare our favorite language with another language that is “higher” on the continuum of expressive power? As Graham puts it (replacing “Blub” with the programming language of your choice):
“As long as our hypothetical Blub programmer is looking down the power continuum, he knows he’s looking down. Languages less powerful than Blub are obviously less powerful, because they’re missing some feature he’s used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn’t realize he’s looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.”
To wrap this up, my goal was simply to point out some interesting experiments in cognitive psychology, and to compare observations from those experiments with similar observations in computer science. But I think those observations suggest a potential clear advantage of learning a new language. Whether it is Spanish or Scheme, Portugese or Python, we can not only learn something, but we might even improve– or perhaps abandon– how we use our “native” language.