Programming language is a tool to write computer programs in a human-friendly language.

Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

There were many disadvantages of using punch cards to create programs in the past. Among them, the most highlighted issues were the high vulnerability to error, extremely limited storage, and environmental sensitivity. With the advent of programming languages, those problems have been largely fixed.
This transformative change indicates that the purpose of programming languages is to create abstract layers that in combination provide a convenient and effective tool to write computer applications.

There are hundreds of different programming languages out there. Why do you think we need so many?

While some programming languages are successors (Kotlin) of earlier languages (Java), majority of them including Kotlin and Java serve different purposes. It is no doubt that there is a number of programming languages that grasp nearly every sphere of computing. However, each of them are best in certain specific fields. For example, Python in Machine Learning.

What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.

I use Python. Since Python code has to be compiled first to C and then bytecode, it is significantly slower compared to lower-level languages such as C. For all its beauty and power, I wish Python could also be fast. On top of developing its own compiler, Python needs to get rid of its Global Interpreter Lock (GIL), which limits it to executing only one computing thread at a time rather than multiple threads simultaneously.

If you were going to create a new programming language, how would you start? What do you need to define?

I read this amazing article that provided a high-level understanding of the steps involved in developing a programming language. As such, the first and most important step that I will take is defining the grammar of the programming language. Just like a human language, a programming language must have a specific set of rules. For example, an equal sign (=) is used to assign a variable to a data type. Moreover, programmers will have to follow these rules to be able to write programs in this language.

Illustration of steps to build compiler for a computer language