Finally, Let Me Clear This Up Once and for All
What we call programming is really just manipulating computer memory
Telling the machine exactly how to change bits and bytes (turn on and off a switch) inside its memory to perform useful tasks.Now, a programming language is a tool humans designed
To write those instructions in a way that’s easier to understand by other humans instead of raw binary code (ones and zeros).
E.g. in assembly I can write:
mov x0, 1
...You see how hard it is to understand?
But in other languages I can just say:
let x = 1
Assembly language was created so that we don’t forget the name of a variable in memory addr... Instead of memorising the addr we can store it as short addr...
Other languages I believe later tried to simplify the process...
E.g. first with Fortran (1957): still too hard to write on
Then migrated to COBOL (1959) and so on
Till we got to C/C++ (1972) and then to JavaScript/Python and others.
- But here’s the twist Computers only understand 1 and 0 while humans understand sentences better than numbers.
(E.g. if I ask you to memorise 1011011... it becomes hard.
But when asked to remember the sentence "how are you?"—it becomes easy.)
Goal is to write sentences (syntax) that we can remember.
Also, programming languages themselves need to be understood by the computer.
That is why we write special programs called compilers or interpreters that translate human instructions into what computers understand!
- And guess what? Those compilers and interpreters are themselves programs—written in other programming languages (e.g. C++ or C)!
That is...
We take hard things, make it simple, use the simple one to build more complex ones—not necessarily hard...
Forming a loop.
- This creates a fascinating cycle Programs to write programs that write programs.
Each layer builds upon the previous, hiding the complexity just so that humans can create increasingly powerful software without dealing with the tiniest detail of the hardware.
So, when you ask...
Who programmed a programming language to program a program to program programs?
The answer is: Humans did.
We started with 1's and 0's and wrote it in assembly, then convert assembly to a high level Lang (e.g. Python) just to make things very easy to read.
At the end of the day...
It speeds up our development of a project.