We moved from punch cards to programming languages to save time, reduce errors, and increase accuracy and productivity. Because they were made of paper, punch cards were prone to damage. Losing, misorganizing, or even bending a card could cause mistakes and result in data or software loss. Additionally, unlike punch cards, programming languages use commands in a human language, English, which makes the code easier to read and understand.
This shows that the main purpose of programming languages is to make it easier for humans to communicate with computers while saving time and minimizing errors.
As technology advances, new problems and issues arise, and new tools are needed to solve them. Programming languages often come from specific needs. For example, Google developed Go in 2009 because the languages they were using at the time slowed projects down. Go was designed to be faster and more readable for their work. Another example is JavaScript, created in 1995 by Netscape for front-end development so that web developers and designers could quickly build and deliver websites. Today, JavaScript is used not only for front-end work but also for back-end and mobile development.
Another reason we have so many programming languages is the wide variety of roles in computer science. Different jobs require different tools. For example, a data scientist mainly uses R, Python, and MATLAB, while web developers rely on HTML, CSS, JavaScript, and PHP. In addition, new languages are sometimes created to improve existing systems and software, making them more efficient and easier to use.
I use Python. While I like how readable it is, I find some calculations in Python confusing. For example, mixing floats and integers always returns a float (e.g., 3 * 2.0 gives 6.0 instead of just 6). Or with powers, 2 ** 3 gives an integer, but 4 ** 0.5 gives a float (2.0). As a beginner, it’s hard to predict when the answer will switch to a float.
Another drawback is that Python sometimes feels too forgiving. For example, I can write code with mistakes like adding a string to a number, and instead of telling me right away, Python only shows the error when I run the program. This can be frustrating at times. So I would appreciate the early warnings.
To create a new programming language, like previous developers, I first need to have a specific problem or task in mind that this language would help solve. My decisions afterward–such as which programming language to use to develop it or whether it will be compiled or interpreted–would all depend on its intended purpose.
Next, I would need to define the language’s syntax and rules. I would also need to decide on its data types, control structures (like loops and conditionals), and built-in functions or libraries that make it useful for the tasks I had in mind. Finally, I would need to consider readability, so other programmers can learn and use the language effectively.