Human Languages, Constructed Languages and Programming Languages
Human languages have evolved significantly over the past millennium. To avoid ambiguity and ensure preciseness, some people have even constructed new languages during the past decades. A few such languages were constructed for special purposes and short use. The newer recent ones called the programming languages are meant for communication between humans and machines. However, all of them face a major problem: extinction.
2019 was celebrated as the International Year of Indigenous Languages (IYIL). Many languages around the world are in danger of extinction. There must be some efforts to protect the languages from complete oblivion. Thanks to the various campaigns during the awareness year of IYIL, several media articles on indigenous languages were published. People around the world got to know about the diversity of languages in different countries, their level of endangerment, and their extinction.
UNESCO has documented thousands of endangered languages under 5 categories: vulnerable, definitely endangered, severely endangered, critically endangered, and extinct. Around 2500 languages were documented by this process, considering factors like the number of speakers, the domain of use of language, transfer of language knowledge to newer generations, the frequency of use of language, etc. Unfortunately, extinct languages are those languages that have no speakers left.
Some of the above languages took hundreds of years to be formalized. Historians and academicians worked together from time to time to codify the language script and grammar rules. But human languages have several issues. Ambiguous sentences, metaphors, change of word meanings, etc. make it difficult for the readers to decipher the original meaning after several decades. There are constructed languages that have been designed, taking into account these limitations. They are often designed for communication between a group of people for a formal and precise way to define concepts. Some are even created especially for movies, for the communication between fictional characters.
And then there are programming languages, specially created for communication between humans and machines. Several have been created since the 1950s. Many look close to some human languages, like English. However, the syntax and semantics of these programming languages are well conceived by the language designers. Even though we find some ongoing attempts to replace these programming languages with languages close to the natural language, current research efforts are still far from achieving this goal. Machines neither comprehend the programming languages nor the human language; they need translators or programs that translate these languages into machine languages. These programs are often referred to as compilers or interpreters and must be properly designed without ambiguity.
There are several efforts to document and preserve the human languages. The questions remain for the constructed languages and the programming languages. Programming languages have been evolving at a very rapid rate. The languages that were popular decades ago have very few programmers now. It is sometimes too difficult to find developers and maintainers for many of the systems developed in these languages.
The evolution of languages never stops. We have already seen the change in the prominent language used for scientific communication within a couple of centuries. Thanks to the preservation efforts for the human languages and considering the existing number of speakers, we can still access, translate, and comprehend a few ancient scientific documents. But there are numerous cave paintings and writings that have not been decoded by the scientific community. Documentation related to the associated writing systems could not be found. Similarly, the obsolete information systems developed in some older programming languages will one day become incomprehensible if we have no documentation related to the syntax and semantics of the various keywords used in these programming languages.
Documenting human languages, constructed languages, and programming languages is challenging. Several preservation efforts related to the human languages include documenting the writing system, the grammar, archiving important books written in the language, recording interviews of the native speakers, etc. One may get the impression that programming languages are often ignored in the discussion of preservation efforts. However, digital heritage has brought this topic to the forefront. There are several ongoing efforts like Software heritage focusing on documenting and archiving the source code of different publicly available repositories.
Many important aspects of our lives have now turned online. Both human communication and human-machine interaction involve digital aspects. Hence our language preservation efforts can consider the three categories of languages considering the availability of these interactions online.