Is coding a foreign language?

Is coding a foreign language?


A lot of states in the U.S. are in the process of passing laws to allow students to use coding to meet their high school foreign language requirements.

Here’s my take on the subject:


I absolutely agree! I don’t think coding can or should replace foreign language requirements too. Will be interesting to see how this plays out as it seems that several states are really intent on pushing this as a law.


My major in college was cognitive linguistics, and when I’ve recovered from my university burn out, I plan to go to grad school for computational linguistics. The intersection between language and thought was my passion for my time at uni. I’m conversant in American Sign Language and Spanish, and can watch movies in German and French. In my time, I’ve heard it all - programming is a language, music is a language, body language is a language, math is a language, cat meows are language, chimps can sign. I even watched a (awful) horror movie last night premised on binary being a language. It’s all hogwash. This may seem like it’s an opinion, but with the exception of non-human animal communication, it’s not controversial at all to say that these claims are absolutely false. Being that I spent so much time immersed in the relevant science, it’s somewhat frustrating to me when I read completely unqualified statements like

Programming languages have syntax and structure like any other language, the primary difference being that you don’t have to “speak” it.


…like Latin and Sign Language, which are other languages offered in Florida, computer coding isn’t spoken.

It’s not so much frustrating because they’re wrong. It’s because the insistence that X is a programming language doesn’t come from any rational consideration as to what a language is, but from the social and psychological prestige of something being a language. When William Stokoe et al. formally described American Sign Language, it was a huge boon to the Deaf community who could finally be accepted in academia (and, increasingly in popular culture) as a real culture. On the opposite end of the spectrum, we see people excluded or devalued because of the language they use, whether it’s “Spanglish”, Black Vernacular English, or just a southern drawl. By officially supporting or denying the way a person thinks and speaks, we say something about how we view them as people. It’s natural that people who care deeply about their profession would want the same veneration for their own domain, but it’s wrong.

The problem, though, is that unlike BVE, ASL, or non-standard English, programming (or music, or math, or DNA, etc.) is fundamentally different from language. What we see as the programming “language” is actually an abstraction meant only for human convenience. It’s an interface. It only has a syntax insofar as we must input certain symbols in a certain order for the machine to run our commands. By contrast, the syntax of language is not defined by strict rules of correctness, but patterns that signal meaning. The the West, English class gave us the impression that words fit into distinct categories, and that those categories have distinct functions. This façade crumbles under even elementary inspection

I like dogs
I like walking
I am walking
I am dogs*

Is walking a verb? A noun? Is it plural? The English class answer is that it’s a gerund which acts as both a noun and a verb, and while there are some attempts at defining exactly when that happens, they fall flat. These rules we have are enough to codify a level of professionalism in the written form, but for everything else, they are useless.

Programming lacks semantics. What does a for loop mean? I’m not asking about just the keyword, but an entire, constructed loop. And if we take a statement to be a ‘sentence’, what does this mean?

var tooltip = Document.getElementById(‘tooltip’);

We know what it does, but what does it mean? We can argue whether or not every syntactically valid utterance has a meaning, but it’s undeniable that language can and most often does have meaning. After all, what use would it have if it didn’t convey meaning? Meaning is inherent and inseparable from a thing being a language.

Frequently, the programming === language camp will point out that

computer coding isn’t spoken

This is a red herring. Dead languages were spoken, and even though ASL isn’t “spoken”, we see much of the same brain activity in signing as we do speaking. The outward expression of a language isn’t the part that makes it language, it’s the inner workings. As an example, I assume that you’re familiar with the voice in your head that you hear when reading, counting, remembering, or generally thinking. I can assume this because the process is largely considered necessary for you to perform these sorts of higher level functions. Subvocalization, as it’s called, is experienced by Deaf people whose primary language was ASL and attained it during the critical period of development. They will even sign to themselves while thinking in the same way that hearing people talk to themselves out loud. Schizophrenics and other delusional patients who are plagued by voices are thought to have an issue with the part of our working memory in which this subvocalizing process occurs. Clamping their jaw shut (not as torturous as it sounds) has been shown to reduce or eliminate the voices for those patients. Here’s the really cool part - it works for native speakers of ASL as well, but you have to restrict their hands.

My point in all this is that although “they” try to paint programming as some “language that doesn’t get spoken”, being able to speak in a language is a requisite part of what makes it a language. Even for those savants who claim to “think in code”, language is what makes this possible for them. Ray Jackendoff has argued quite well for the unconscious meaning hypothesis which argues that far from just helping us think, the pronunciation of language is the only way that we can consciously think. Language and thought are symbiotically related in the human mind, and without one we cannot have the other. Sound like lunacy? Consider the heartbreaking case of Genie, who was so severely abused that she never learned a language. Chimps who are able to use rudimentary signs show an increased capacity for reasoning [citation pending while I review old material].

I want to be clear: programming should be taught in public schools. Programming and computer science should be required subjects. But they do not replace foreign language instruction in any meaningful way. I think this has so many supporters because, in my experience, STEM students prefer to isolate themselves from the “soft sciences”, culture, and other “boring” stuff that don’t conform to what they perceive as having any universal significance. I can only speculate on the reasons why they do this, and won’t do so here.

Sorry for the train wreck of an info-dump, but this topic has been a thorn in my side in one form or another for most of the last decade. If we accept that we should listen to experts in their field, then we ought to listen to linguists and educational psychologists on this matter. I can’t speak for educational psychologists, but for linguists, the idea that programming is a substitute for learning a language is beyond preposterous.


Of course you could combine the two. Learn to program in Latin?