For the emergence of programming languages, the very existence of a computer was not needed; therefore, programming languages appeared long before the advent of a computer, they were created for programming the creation of a pattern on a fabric.
Jacquard machines, invented in 1804, needed a program that contained a list of instructions for the automated creation of large-knit fabrics.
Each punch card meant one passage of the shuttle - which of the threads of different colors to lift, so that they became visible in the drawing, and which ones to leave below so that they could not be seen. To draw a pattern on the fabric, it was necessary to make a set of thousands of punched cards. The punch cards were connected with a flexible tape into one long strip, the first punch card was connected to the last, and the longest ring of the program for creating a color pattern on the fabric was obtained. A jacquard machine performed, endlessly repeating, the same cycle of operations. When the machine finished creating the fabric with this pattern - the machine program immediately began to weave the same pattern again.
Charles Babbage's analytic machine also needed programs to work with, so in the early 1840s Countess Ada Lovelace wrote several programs for her — including the calculation of Bernoulli numbers. This program was also written on punch cards.
The first programming language for computers "Plankalkul" (calculation of plans) was developed by Konrad Zuse in 1943-1945. for his computer Z4. The computer did not work, but the first programming language was created.
The first computers were programmed in machine codes. Nowadays, these binary languages are called the first generation languages.
Programs written in machine codes do not have unnecessary instructions, and therefore they work quickly, but it was very difficult and long to write them. And besides, even if they have the same set of machine commands - almost all computers have a different set of external devices: disks, printers, input devices - and therefore the same program written in codes could not even work on different computers of the same type, differing in their structure and number of input and output devices. She needed processing - and only an author or a very high-level programmer could make it.
Whereas for transferring a program in machine codes to a machine with a different command system, it simply had to be rewritten again, using the old program as an indication of what exactly should be done. As a result, the software implementation created for a new computer would be completely different from the old software. All first-level languages are dead languages, no one has used them for a long time. Extinct with the computers of the first generation, for which they were created.
In order to avoid unnecessary problems, we invented common standards for programming languages and compilers with them into machine codes. The programmer writes, say, “divide A by B,” and the compiler (for a given type of computer) writes the implementation of the division. The programmer writes “print the result”, and the compiler sets the subroutine for preparing the result as a string of characters and printing this line on such and such a printer (namely, the one that is designed for printing the results of the tasks on this computer).
Assembly languages are called second generation languages. Assembly languages created in the 50s for the ancient computers are dead, but their principles of operation became the basis for new languages, an assembler language for this instruction set is created for each new processor family. These languages are used to create drivers and kernel routines for operating systems.
In the 1950s, they began to create third-generation languages. These languages, also called “high-level languages” (HLM), depending on the compiler, can work on different types of computers, and their compiler for each type of computer leads them into executable machine code.
In the late 50s Algol-60 (Algol - from ALGOrithmic Language) appeared, programs for him were written on translators in the 60s and 70s. Subsequently, Algol-60 spawned Algol-68, a much more advanced programming tool. Nowadays, this language is practically not used, but on its basis, many other languages were created - Pascal, Ada. Pascal subsequently gave impetus to the creation of Delphi.
So if Algol-60 is a dead tongue today, then his great-grandson Delphi is more alive than all the living. His ability to create GUI and work with databases, and moreover - the free distribution of simplified versions of the compiler, have earned him fame among users. Today there are Delphi compilers for Windows and for Linux.
In the second half of the 50s, besides Algol, Fortran (FORmula TRANslator - formula translator), Lisp (LISt Processing language - list processing language) and Cobol (COmmon Business Oriented Language - Generalized Business Oriented Language) appeared.
Fortran exists to this day, in the early 60s, Fortran translators were created that worked on many computers of the IBM family, and because of its prevalence, Fortran compilers for other computers began to be created - in the 60s Fortran became one of the de facto standards programmings. Subsequently, after Fortran-4 were Fortran-66, Fortran-77 ... the last to date standard Fortran - Fortran-2008.
Lisp is a list processing language. Developed a range of different versions of the language for the performance of different types of tasks.
Cobol - in the 90s, about 90% of all financial transactions in the world were processed at Cobol.
Are the above-mentioned HLSD alive? Definitely yes. It is enough to search the databases of employers to see if there are vacancies for programmers on both Fortran, Lisp and Cobol. And programmers on Delphi are expensive and very demanded goods.
When in the 70s personal computers appeared (they are also PCs), the number of new programming languages began to increase exponentially. It all started with C.