Affinity for Language
Mark Mzyk | March 9, 2008
One of the phenomena I’ve noticed among programmers is that we seem to share an affinity for the spoken language. What is it about programmers that makes this the case?
Obviously, there are similarities between the syntax of natural language and of programming languages. Both exist to fulfill the same role: that of communicating ideas.
Yet there are differences as well. Natural language is a messy system. It changes all the time as people adapt it to their needs. Also, the rules are numerous and subject to all kinds of exceptions, especially in the English language.
Programming languages are general controlled by small cabals of power who keep the syntax (relatively) clean and mange the rules so there are few, if any, exceptions. You could even argue that programming languages are more abstract than natural language. The syntax exists to enable abstractions in the movement of bits across the system.
Of course, language by definition is nothing but a series of abstractions. This links all language. I think it plays into why programmers have an affinity for natural language. We’ve mastered the often times dry syntax of programming languages, but because natural languages are messy, it gives us a forgiving syntax to play with. The rules of programming languages give us a base understanding which natural languages let us then extend and even break free from.
Working with programming languages all day also hones a programmer’s skill in parsing syntax. A very fast internal parser is developed in the minds of programmers and this parser carries over to natural languages. Say something that syntactically or logically doesn’t make sense and a programmer will very quickly pick up on it.
Certainly there is more that can be said on this topic. It makes me wonder if there are certainly types of people who would make good programmers. Perhaps companies should be interviewing students from the English department as well as the Computer Science department at universities. While the English students might not grasp the technical concepts, once they were taught them they might become excellent programmers. Of course, there is no guarantee of this, and it would be an expensive proposition for any company who undertook it.
It would be interesting to know if there has been any research done on this. Do programmers process language different from the rest of the population? Or are we just a bunch of geeks who while enjoying esoteric topics like the syntax of the latest programming language can’t help but play with natural language, especially since natural language is a low hanging fruit that’s easy to grasp?