Sat, 04 Dec, 2021


Programming languages vs. Human languages: The Fundamentals


By Kinjle Nepal

img src: techwithabhijeet

What is a language? 

According to Aristotle, speech is the representation of the experience of the mind. 
Too philosophical? Okay, here is another one. 

According to Wikipedia, language is the principal method of human communication, consisting of words used in a structured and conventional way and conveyed by speech, writing, or gesture.
Too meticulous and long? I got you!

Simply put, language is a communicative interface between two or more parties. While I acknowledge that there are standard answers to the question, I presented to the readers a definition that not only encompasses the human-to-human communication (including sign language) but also, the human-to-computer dialect known as programming language. 
Computer programming means commanding a computer to do certain tasks through instructions. These instructions are called programs which come in different languages; they are called programming languages. A computer programming language is a communicative-channel established between humans and machines. Technically speaking, they are a set of instructions and syntaxes useful in developing softwares and allows computers to quickly and efficiently process large and complex swaths of information. 
So how can we differentiate between natural languages and the artificial ones? Before mulling over these two, let us consider a few dimensions required for a given communicative-interface to be considered a ‘Language’, in the first place. 

1. Linguistic Dimension
2. Communicative Dimension
3. Reciprocative Dimension

Communicative Dimension
It seems redundant to say that the main reason as to why language came into existence was to effectively convey one’s desires, whether they be actions that need attention or emotions. Not to mention the importance of two or more parties to be present for the communication to happen in the first place. Considering these two elements, it is safe to say that both programming and human communication can be labeled as languages. The variance can only be seen in the nature of the two parties involved i.e, human-to-machine and human-to-human, respectively.

Linguistic Dimension
This includes elements such as grammar, articles, phonetics, etc. These elements can also be found in programming languages as what computer experts refer to as syntaxes and semantics, in simple terms: structure and meaning. However, there isn’t just a single human language, nor a single computer language. So, we can still spot differences within those varieties. For instance, languages have different degrees of syntax strictness. Think the German language – German imposes very strict rules for articles: they may vary in number, gender, and function. English, on the other hand, has a definite (the) and an indefinite article (a/an) – and that’s it. The same applies to computer languages. Think of semicolons: they are optional when ending statements in JavaScript but mandatory in C. Some languages are hecticly strict when it comes to grammar/syntax while others have greater grammatical/syntactic flexibility. 

Reciprocative Dimension
Last but not the least, for a language to have it’s optimal effect, it also should be reciprocative in nature. This is the dimension that does not fall in common between the two languages. Take for example a time when you were feeling low and telling your friend about it. You fall short for words and your friend said, “You don’t have to explain, I understand what you are going through.” As humans, we can understand the incomplete and unexpressed emotions because we have the benefit of our thought process but computers? They only tolerate the syntaxes when you enter it in a precise way and precise way only, due to their lack of cognitive abilities.

The number of similarities and differences between programming languages and natural languages are alarming; however the number of symmetries and asymmetries shouldn't really have come across as a surprise. The two forms are still languages at a very fundamental level, not just by name. So it is safe to say that the differences are not in the languages ​​but in who interprets them. Nevertheless, these are some contrasts and parallels worth pondering over!

Total Views: 0