Punch cards were first used to save large inputs of data instead of having to enter them manually every time. They were the only means available to store relatively complex programs. The purpose of programming languages, therefore, is to organize these instructions in the best possible way to give both control over what type of input is given to the machine and easiness of forming instructions. Programming languages serve as a dictionary that maps human known variable and function names to instructions only understood by computers (or smart computer scientists).
Each programming language was created to mainly solve few set of problems. For example, a language like SQL is very domain specific; it's mainly used to manage data in databases. In the same way, lower-level programming languages like C and C++ were designed to serve as a proxy between the operation system (or user) and hardware. Using those two languages to manage databases from scratch, for example, is really just like reinventing the wheel. Also, thinking about making one unified language that deals with all kinds of problems will make the programs we write heavier to build and heavier in distribution.
One of the drawbacks of Python, the programming language I mostly use, is that it is slow. It's primarily because it's an interpreted language rather than a compiled one, which means that it's not ready to be executed by the computer; rather, an interpreter software needs to run first and then interpret the code line by line on the fly at runtime.
I will think about the main purpose of programming languages in general. They were mainly designed to make the process of instructing computers easier to humans. With that being said, I will start by making very clear yet short instruction names to keep the balance between readability and speed. Next, I will make the compiler efficient in translating what the developer wants to very short and direct instructions. I will finally define the vocabulary and grammar of my own language through documentation.