How programming languages ​​evolved

How programming languages ​​evolved
How programming languages ​​evolved

Programming is the most promising profession of the 21st century. It seems that there is no such field of activity where it is impossible to usefully apply computing technology. What programming languages ​​are there, what are they used for and how do they develop?

The Tcl Programming Language: A Comprehensive Guide

The breadth of coverage and numerous examples will familiarize newcomers to every aspect of Tcl programming. At the same time, the depth and level of detail, and an exhaustive index, make The Tcl Programming Language a valuable reference in every Tcl programmer’s library.

Automation covers more and more areas, computers are more and more included in our life. And this variety of tasks translates into a variety of programs that are written in programming languages.

The most important, but at the same time, the most subtle property of any tool is its influence on the formation of the habits of the people who use it. When this language is a programming language, its influence, regardless of our desire, affects our way of thinking.

Edsger Dijkstra,

Dutch scientist whose works influenced the development of computer science and information technology

What are programming languages ​​for?

Programming language(PL) is a formal method for recording computer programs. Each such program is a combination of computer instructions and data that allows calculations and control.

Natural languages ​​are used to communicate between people, and programming languages ​​are designed to control a computer, that is, to express human ideas in a computer-understandable form.

PL obeys the task of a computer program. It depends on the hardware on which the algorithm is running. Accordingly, for almost every task and every equipment, you can use the most suitable PL. This is why there are so many programming languages.

How programming languages ​​evolved 2
How programming languages ​​evolved 2

A fragment of Charles Babbage’s Difference Engine, assembled by his son from parts found in his father’s laboratory. Metal gears perform mathematical operations.

Since the description of the first universal programmable device in 1835 – considered to be Charles Babbage’s Difference Engine – mankind has created more than 8,000 programming languages. Specifically for this machine, the first program was written in 1842 by a lady Ada Lovelace, she is considered the world’s first programmer. Unfortunately, the car itself could not be fully assembled during the life of the creator due to imperfect technology and Babbage’s meticulousness. The machine reads data from punched cards and uses the steam engine as a power source. If the mechanism was assembled according to plan, then it would become the world’s first computer.

How programming languages ​​evolved 3
How programming languages ​​evolved 3

English mathematician Augusta Ada King (née Byron) is considered the world’s first programmer. Drawing from 1832.

Programming languages ​​incorporate the specific features of specific areas of programming – characteristic data structures, typical processes and terminology. When we hear about the emergence of a new programming language, the thought may arise: another language? Why can’t you make a single, standard programming language?

But no, this cannot be done. On the contrary, the emergence of another language is evidence of the progress of computer science. This means that either the computer has found a new use, or we have learned to perform old tasks more efficiently. The new PL is proof of the achievements and new capabilities of the most powerful tool that human civilization has: the computer.

With each new language, the programming process becomes more universal. Therefore, the diversity of languages ​​is very good. It shows progress and allows you to move on.

What programming languages ​​are there

Already at the beginning of the 19th century, the first “programmable” mechanisms appeared: looms, music boxes, etc. Each of them was programmed with its own set of instructions. This is how domain-specific programming languages ​​appeared, which are still being created in huge numbers as new devices and hardware appear.

In addition to subject-oriented, there are educational programming languages ​​that are created specifically for teaching novice programmers. For example, from one such learning language ABC grew the now popular programming language Python. That is why it is so simple and straightforward.

Program text for displaying “Hello, world” in Python

>>> print (“Hello, world”)

Exists esoteric languages- peculiar works of art that cannot be applied to real problems. For example, the Malbolge language is specifically designed to be as difficult to write as possible.

The text of the program for displaying “Hello, world” in the Malbolge language

(= <`: 9876Z4321UT.-Q + *) M ‘&% $ H”! ~} | Bzy? = | {Z] KwZY44Eq0 / {mlk ** hKs_dG5 [m_BA {? – Y ;; Vb’rR5431M} / . zHGwEDCBA @ 98 \ 6543W10 / .R, + O <

Besides the aforementioned educational, esoteric and domain-specific languages, there are also visual languages, where programming consists in manipulating graphic elements. These languages ​​are mainly used to create programs with a graphical interface. There are also specialized DBMS languages, languages ​​for industrial automation and other languages ​​of relatively narrow purpose.

There are such programming approaches (in a professional language they are called paradigms): aspect-oriented, structural, procedural, logical, object-oriented, functional, multiparadigm languages.

There is no generally accepted classification, but historically it is customary to divide the PL into high-level and low-level languages.

High level languages

High-level programming languages ​​free programmers from the need to detail programs to too small machine instructions and to know the peculiarities of specific computing devices.

It is much easier to write programs on them. If you ask the question of which programming language is easier, then you should look towards high-level learning languages. They are understandable to humans with little or no additional explanation. But for the computer to understand instructions written in a high-level language, a special compiler program translates them into the language of machine instructions, that is, into a low-level language.

Machine Oriented Languages

Compilers will never be as smart as humans; they cannot read a programmer’s mind. Therefore, to write the most efficient program that perfectly realizes the programmer’s intention, you will have to write in machine codes.

Donald Knuth, in his classic book The Art of Programming, made this argument for low-level languages: “For example, some combinatorial computations need to be repeated trillions of times, and we will save about 11.6 days of work by reducing the computation time in the inner loop of all by one microsecond. ” Even one computation cycle saved provides huge savings on a large scale!

If you come across an incredibly efficient and fast program, it is probably written using a low-level language.

Popularity of languages

What are the main programming languages ​​- it is not easy to determine. There are various metrics for measuring the popularity of languages, each of which reflects a specific aspect of the popularity of a language:

  • Counting the number of vacancies with the mention of this language.
  • The number of books sold (textbooks or reference books).
  • Estimation of the number of lines of code written in the language (for example, according to statistics of hosting, where program texts are published).
  • Counting mentions of the language in search engine queries.

For example, IEEE Spectrum magazine tried to compose the most objective picture of the popularity of programming languages 12 metrics from 10 sources… Here’s what the table looked like in 2017, ranked by these parameters:

How programming languages ​​evolved 4
How programming languages ​​evolved 4

Language Popularity Graph, IEEE Spectrum

For each metric, one language can lead, and according to another metric, another. For example, Cobol still dominates in corporate data centers, many programs are written on it, although they practically do not write new ones. Variations of the C language are used in systems programming, and the Java language is popular for writing Android applications. Other languages ​​are regularly used to create a variety of other applications.

History will show which programming language is the future, but the researchers note that the popularity of Python has been growing in terms of metrics, which is now in 1st place. C # and Swift have risen in the ratings. In terms of the number of vacancies for programmers, C is significantly ahead of Python. JavaScript and PHP are popular in web programming.

If your main goal is to find a high-paying job, then look at the relevant metrics and choose the right approach to learning those programming languages ​​that are relevant in a particular field.

Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation)

Over the past six decades, programming languages like ALGOL, BASIC, C/C++, COBOL, Java, LISP, LOGO, Pascal, PL/I, Python, Visual Basic, and many others opened up the field of computer science, and of computer programming in general, to the masses. But all of these high-level languages (HLLs)–computer languages that automate, hide, or otherwise abstract away the underlying operations of the machine–owe a huge debt of gratitude to FORTRAN (FORmula TRANslation), the first HLL to achieve widespread adoption.

Rate article