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

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).

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

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.

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

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.

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

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.


References:

Youngblood, R. (2023, September 6). What Are Punch Cards in Early Computers? Computer Museum of America.

The Purpose of Programming Languages | Introduction to Computer Programming | FreeText Library. (n.d.).

Jamal, M. (2024, January 24). Why Are There so Many Programming Languages - ILLUMINATION - Medium. Medium.

Jorgecardete. (2024, February 4). But why Python is so slow? - The Deep Hub - Medium. Medium.

Create Programming Language: Design Principles. (2024, July 16).