Programming language is a tool to write computer programs in a human-friendly language.
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.
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.
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.
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.