Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?
Punch cards were slow. Excruciatingly slow. A programmer would need to write their whole program on a paper, then 'punch' that code onto the card. Then, a programmer would have to wait until the card was checked by the cardreader, and the output was shown. If there were anything wrong with the output, the whole process would be repeated, from writing the program, to repunching the cards, and rechecking them over and over. Therefore, a more optimal, efficient method of programming was needed. We since moved to programming languages and electronic storage methods, where, if a mistake were made, it would not take as much time to correct. Furthermore, programming languages and electronic storage methods were able to store much more code, in contrast to the low storage amounts offered by punch cards. This, on top of the fact that the programming languages are much easier to read and debug, proved to be much more optimal; hence our move from punch cards to programming languages.
The purpose of a programming language is to ease the process of writing software. It is to provide a human programmer/user with the ability to write code, read it, debug it, and rewrite it, without the tediousness of waiting for hours while doing so. They were created for efficiency, and for normal humans, such as myself, to interact with the hardware of the computer and create software without the need to learn machine code.
There are hundreds of different programming languages out there. Why do you think we need so many?
There are various softwares which need to be developed. Each of these have a different job. One programming language cannot encompass all of the softwares (and their goals). Python, for instance, is used for big data analysis; while C++ is used for game development. Different programming languages, and developers, have to 'sacrifice' certain parts (such as speed/efficiency), for other important aspects, such as user-friendliness. Hence, hundreds of programming languages needed to be developed, each of which excels at its own tasks, but may not excel at others.
What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.
I've used Python my whole life, and honestly one of the most 'painful' drawbacks was the inability to create constant variables, its lack of post-conditional loops, and how slow it was at interpreting code. While Python is very user-friendly, and easy to learn when the effort is put in, some of the most 'obvious' drawbacks were missed the most. For instance, I could never use a repeat...until; I always had to stick with a while loop, and had to go through the pain of reversing the logic of while and repeat. Furthermore, Python, when writing very big programs (only did it once), would take ages to go through the code. While it was not a problem for me, since my program, relatively, was still small, I doubt it is as small of an inconvenience for much larger programs (and companies).
If you were going to create a new programming language, how would you start? What do you need to define?
I would start by looking for optimisation: nowadays, efficiency, time, and profit are measured the most when any task is being done; whether in education or business. Specifically, I would search where the other programming languages are lacking, and try my best to improve, or reconstruct, those flaws. I would start by defining the paradigm of the programming language and the data types (primitive ones too, if necessary). The rest comes later :).