The Linguistics of Programming Languages

David MacDonald
CodeX
Published in
4 min readSep 1, 2021

--

Photo by Hannah Wright on Unsplash

It has recently dawned on me that the majority of modern programming languages are primarily in English. This will be a quick article discussing some ideas that come off the top of my head. I would also like to preface this by saying that we must be wary of inclusivity for the sake of satisfying a quota. I do not believe that is what I am currently doing. It may not be immediately obvious as to why the idea of inclusivity might be in the shadow of a beast. It is not inclusivity itself that is an issue, but rather the resentful motivation often used to justify it. I will point you towards my article about this if you are interested; however, I do not wish for this article to become political in nature.

Programming is a skill that provides extreme utility to everyone's lives. Whether you program or not, almost everyone with access to electricity uses systems functioning using programming. However, the vast majority of programming languages have English-only syntax. This is something that is almost always completely ignored in English-speaking countries, where we simply take it for granted. However, this is fundamentally a major issue for a global programming community. The key thing to remember is that people are individuals and every individual is unique. Every individual has the potential to provide extreme utility to the rest of us. Thus, for the betterment of all people, it is in our best interest to help break down borders that prevent discussion, cooperation, and co-development.

Imagine having to learn programming in a foreign language — especially a foreign language with characters completely unfamiliar to you and your keyboard. Simply attempting to pronounce and discuss segments of code would pose a challenge. Over the last few years, programming languages have, rightfully in my opinion, trended towards a more readable state; moreover, they should become less mechanical and more abstracted towards colloquial speech. However, that doesn’t help people that do not speak the language the programming language is constructed in — which I will call the constructor language. In fact, making a programming language more like a constructor language makes it harder to program in when you are not fluent in the constructor language. Mechanical languages are harder to get into, but are very familiar to seasoned developers; they help break down the language barrier.

The main purpose of this article is to bring your attention to the fact that programming is extremely shut off to the non-English-speaking world. There are programming languages that exist within certain countries, but there is not much overlap. It would be useful if any of you have the time to create a translation layer on top of existing programming languages. It would effectively be an assembly or pre-processor syntax on top of a language such as Java, Python, JavaScript, C++, etc., where the translation layer converts between non-English and English syntax. I suppose this would get quite complex for languages that do not share the traditional Latin sentence structure. However, it should still be possible.

Consider a programming language that natively supports different language packs that developers can choose from. They can work together, so bilingual developers can use whatever constructor language expresses the code the best. They can choose from packs to prevent a large size as well as compilation time increases. For this to work, it would also require a multiway translation system, where any code written in this language can effectively be translated to any other language. This would be easier than translating colloquial language, but still a daunting task. Consider the outcome of such a language. Programming in this language would be open to anyone in the world, assuming a large list of supported languages. More importantly, however, it would allow for programming between different languages. It could be viewed as an “lf” to “crlf” conversion done so code written on Unix-like operating systems can be used on Windows. Of course, this conversion would be far more intensive, but similarly, it would allow more people to program together. It could be possible that the next massive software to change the world is in the mind of a child in some foreign country, blocked by a language barrier.

Please, if you want to create such a language, you have my blessing — so long as you do it properly and to the best of your ability. It should be modular, efficient, and decent. I’d love to continue to discuss this hypothetical language some more in the comments if you would like to hear what else I believe makes for a good programming language. Be sure to check out my tutorials teaching you how to make your own programming languages. There’s only a few articles there now, but I have future plans to add more.

--

--

David MacDonald
CodeX

Developer, Mathematician, and Introspective Thinker. Learn to become smart, but live to become wise.