I was recently interviewed by ๐ Paulius Juodis for The Ink Well podcast and while chatting about language learning, he asked me a very interesting question:
"Should programming languages be considered actual languages?"
As a software engineer and a language learnerโโโor in other words as a person who is a polyglot in multiple human and programming languagesโโโI think I have some good points for you.
Let's jump into this analysis and find an answer to this intriguing question.
Learning Programming Languages vs. Language Learning
Learning a language takes years. Actually, you never really learn a language but keep acquiring new words and expressions every day until the last day of your life. It is a process that requires a good memory and involves four pillars: writing, listening, speaking, and reading.
Learning a programming language is closely connected to the process of being able to code. If you are a skilled developer, you can probably learn the basics of a new programming language in hours. Sure, reaching a high level will take months, even years, but always way less than with natural languages. One of the main reasons is that programming involves only reading and writing. There is no speaking and listening to prevent you from getting closer to your fluency goals.
A senior programmer is likely to know a dozen coding languages and be able to switch effortlessly between them. What about polyglots? Except for extremely talented human beings, that is usually not the case.
Listen to the conversation Paulius and I had about coding vs. language learning to find out more:
Why Programming Languages Are Not Languages
During the podcast, I focused on three points to show that programming languages should not be regarded as human languages. Let's take a look at them.
1. Programming Languages Are Limited to a Few Keywords
While most natural languages can boast thousands of words, expressions, and idioms, coding languages only consist of a few keywords. JavaScript, the most popular programming language on Earth, has a little more than 50 reserved keywords. What about English? Well, that is a different story, since we are talking about hundreds of thousands of words. Some human languages even have millions of unique terms. Furthermore, languages evolve rapidly, and we continue to create new words to meet our new needs as a species.
So programming languages are less powerful than human languages, right? Not at all. Quite the opposite, actually. Limited vocabulary does not make them less powerful. Yet, it must be noted that this difference puts them on two different levels and clearly separates them from being the same thing.
2. You Can Understand Me If I Make Some Mistakes, but a Compiler Cannot
Grammar in human languages is flexible. As a non-native English writer, I must have added some minor mistakes or oddities to this article, but I bet you got most of what I wrote so far. If you were a compiler, this would not be possible. Machines must be instructed rigorously, as they can only execute operations that they are programmed to understand.
When it comes to programming, you must adhere to strict rules. There are no other options available. A tiny syntax error in the code that may look insignificant to you, will lead to a runtime or compilation crash.
There are no shades of meaning or other possible interpretations. Code has one meaning and one meaning only when it is written following the rules defined by the programming language. Forget about ambiguity and context.
3. They Involve Two Different Sets of Skills
Being good at a human language requires strong interpersonal abilities. You must be open and willing to talk and interact with new people, make new friends, express your ideas, and embrace new cultures. These are all social and communication skills.
In contrast, knowing how to program requires much more analytical skills. You must be methodical and able to think algorithmically, bringing out your problem-solving skills. Unlike natural languages, you can write code in your room alone, without interacting with anyone, and become a master in the language you are using.
Why Programming Languages Are Real Languages
Although I mainly supported the thesis "programming languages are not real languages" during the 1-hour podcast episode, there are some additional considerations to take into account.
1. More and More Developers Are Claiming That They Are Fluent in Programming Languages
I recently helped a company hire some new coders and was shocked to see how many programmers treat the coding languages they know just like human languages. I even happened to read "I am fluent in English and JavaScript, Java, โฆ" in a resume. At first, this puzzled me, but with time I realized that this is something pretty common in the IT world.
Whether it is a passing fad or a more complex phenomenon, we still need to take note of it. Our idea of something also depends on the general perception that others around us have of that thing, and it is interesting to note that many developers are taking this route.
2. Improving in a Programming Language and in a Natural Language Feels Similar
Maybe it is just me, but the emotions produced by learning a programming language and learning a human language are pretty much the same. The two journeys share some key similarities, especially in terms of the obstacles we are called to face as learners. Another common element is frustration. In both cases, you feel the stress of having to deal with something complex that at first seems foreign and far from your world. This is especially true when learning the first new language, whether machine or human.
Is this enough to be able to classify them in the same way? I do not think so, but it was still crucial to point it out.
Programming Language vs. Human Language
Here are the most relevant takeaways from this article:
Learning a programming language is faster compared to learning a human language, especially if you are an experienced developer.
Language learning involves listening, speaking, writing, and reading while programming only reading and speaking.
In programming languages, the understanding aspect is delegated to a machine. In natural languages, we interact with human interlocutors who can understand us even if we are not proficient.
Coding is more about having an analytical mindset, while language learning requires social skills.
Programming languages have a limited vocabulary with a few keywords but are as powerful as human languages with millions of words.
Coding languages require strict adherence to syntax rules, leaving no room for interpretation. Natural languages are more flexible in terms of grammar and allow for context-based understanding.
Mistakes in programming languages will always lead to errors or crashes, as machines follow strict rules, while human languages allow for minor mistakes and still convey meaning.
Some people claim fluency in programming languages, which influences their perception of them as actual languages.
Learning a programming language and a human language may evoke similar emotions and challenges.
Conclusion
Here, we tried to understand whether programming languages and human languages, whether developers and language readers, can be put in the same basket. Are they two phenomena of each other or the same thing? In this article, supported by a longer discussion in a podcast, we saw the most important points supporting both theses. As a technical writer and language enthusiast, I have tried to provide my perspective on this evergreen topic.
Thanks for reading! I hope that you found this article helpful. Feel free to leave down below any questions, comments, or suggestions.
FAQ
Before inviting you to share your ideas, let's answer some interesting questions related to this topic.
Are Programming Languages Real Languages?
Programming languages are generally not considered real languages in the same sense as human languages. While they share certain similarities, programming languages are primarily designed for communicating instructions to computers and lack the ambiguity, cultural aspects, and expressive capabilities of human languages. At the same time, they can be compared in broader terms.
What Programming Languages Look Similar to Human Languages?
As the world of computing has evolved, programming languages have improved by becoming more high-level and less coupled to the underlying machine. Instructions that were difficult for humans to read and understand slowly turned into simple English keywords, and programming languages are now more similar to human languages than ever before, especially after the rise of AI.
Are There Programming Languages in Different Human Languages?
Yes, there are a lot of non-English programming languages out there. Even though most coding languages are in English, there are dozens of languages to write code in Japanese, Chinese, Italian, Arabic, and many other human languages. Check out the list of non-English programming languages on Wikipedia.
The post "Are Programming Languages Real Languages?" appeared first on Writech.
Top comments (0)