This fall Andrei Terekhov, Head of the Department of System Programming at Matmekh of St. Petersburg State University, Professor, Doctor of Physics and Mathematics, told our colleagues about the history of popular programming languages and their penetration into the USSR. Together with Andrei Nikolaevich, we prepared, based on his lecture, material about how different languages crossed the Iron Curtain, how they were translated into different architectures, how some of them came into fashion. General trends and personal impressions - for everyone who wants to get a general idea of the history of the issue.
For those who prefer to watch or listen, a video of the lecture is posted here .
Programming in codes
The first truly electronic machine was called the Electronic Numerical Integrator and Computer and was made in 1946 by the Americans. At the heart of such computers is a trigger, which in 1918 was invented by a resident of Petrograd, Mikhail Aleksandrovich Bonch-Bruevich. Unlike Popov, he even managed to secure the rights to the invention. The circuit itself was pretty famous: my father, a military electronics engineer, used these triggers before the war.
Already in 1949, Soviet engineer Sergei Alekseevich Lebedev made an MESM machine in Kiev. He was only three years behind the Americans, although Kiev was almost completely destroyed. Lebedev was even given a building in the town of Feofania - then it was still 30 km from the city - where before the war there was a psychiatric hospital. But then there were simply no other buildings.
A building in Feofaniya, now a district, and in the 1950s - a suburb of Kiev, where Sergei Lebedev worked
For these first computers, people wrote in binary codes. Let's say the program looks like this: 01 100 101 110. Suppose 01 is an addition code. Then it says here: add the word at address 100 with the word at address 101 and write the result at address 110. In general, everything is clear, but as a person who found programming in codes, I will tell you that this is terribly inconvenient ... Yes, you yourself probably understand this.
From 1964 to 1966, I studied at the 157th mathematical school near Smolny, one of the most famous in Leningrad, subordinate not to RONO, but to the Academy of Pedagogical Sciences. There we had two "Ural-1" and two girls-technicians who did not know how to program them, but could fix these cars. I myself also had to first learn how to repair them, but then we wrote many useful programs at the Urals, even for geologists we counted something.
The main programming problem in codes is not "01 02 03" - it is easy to remember. But if you need to insert something between two cells - according to the logic of work, so that some arrays are synchronized - all addresses below this insert will crawl. We'll have to rewrite everything, and most importantly, re-fill.
We stuffed programs on 35 mm film, which we glued into a ring if a loop was needed. Enter the program - write down the checksum with a pencil. You enter again: if the checksums match, then everything is correct. If they do not match, you enter it for the third time, and so on until it drops.
It was so inconvenient that people quickly came up with symbolic replacements. Instead of 01, it became possible to write just the symbol "+", and instead of the address - a, b or c. It was assembly language, with a very simple translator the program could be translated into machine codes. It took two views: in the first, you make a table of all identifiers and their addresses, in the second, you replace the identifiers with addresses, and that's it.
( ). 101? ? . 102? . , , .
The American John Backus, who invented the FORmula TRANslator language in 1957, made a real revolution. IBM, where he worked, in general came up with many things, including, for example, punched cards. Fortran made it possible to write a formula, and the first translators were created from it, much more complex than a translator from the assembly language. That is, people were able to write normal programs in a normal algorithmic language.
John Backus admitted that the main incentive in his search was laziness and the desire to simplify the process of writing programs. Pictured - Backus on the cover of Think, IBM's corporate magazine
Ironically, Fortran is still popular today, especially with physicists and engineers who believe that they don't need anything else, even though so many years have passed. Tons of standard programs have accumulated - huge libraries.
But, as usual, there were some significant mistakes. The most expensive one happened more than half a century ago. One engineer wrote a program like this:
DO 3 I = 1.4
This is a cycle. Operators up to mark 3 must be performed with I equal to 1,2, 3, 4. But the American made a mistake and put a full stop instead of a comma between 1 and 4. In Fortran, there is no mandatory description, so no error was found. As a result, the space flight to Venus was disrupted.
Even Lomonosov discovered that there is a very dense atmosphere around Venus, but no one saw the surface of the planet. The Americans sent a rocket with an important task: it was supposed to fly to Venus, make a few revolutions, and then dive under the atmosphere and photograph the surface. The rocket flew for three months and flew. When I dived, the camera flap did not open, because it was these lines that were responsible for its opening. So many billions of dollars literally flew into the air. The scandal was incredible, the person who made the mistake was found. 6-7 billion is a tangible loss even for rich Americans. But this programmer was not hurt, because the documents had the signatures of all possible bosses.After long trials, it was decided that Fortran was to blame for everything: the rules for determining the language turned out to be very inconvenient and unreliable.
In the mid-1970s, we made the first translator from Algol 68, and we translated everyone from the old languages into it. In particular, the 93rd box was transferred - now it is the Institute of Radio Navigation and Precise Time.
The building of the Leningrad Research Radio Engineering Institute - the Russian Institute of Radio Navigation and Time - now houses the office of the Rossiya bank.
Previously, it was located in a huge yellow building opposite Smolny, now there is a bank in it, and the institute has been evicted to the outskirts of the city.Then we transferred dozens of programs from Fortran to Algol 68 and always won four times. I thought it was some kind of scam, because we had to win twice - just at the expense of the best translator. Why do we win at four? Understood. We taught people Algol 68 - I gave lectures, my student Leha Rokhlin was practicing. And in Fortran, they wrote like a chicken with a paw.
One time my former student, a major of the Soviet army in reserve, Andrei Sergeevich Agapov, calls me: “Andrei, on one of the programs the answer was four times different from the fortran". Since several dozen programs went well, I answer: "I don't care, it happens." He: “No, this is the control of the radar, which determines the coordinates for shooting. If, due to an error in the program, the rocket flies in the wrong direction, it will not seem enough to anyone. " I began to understand. I thought that ALGOL 68 was lying, after all, a new translator. I checked everything - it’s not lying. I began to read assembler products - no, it’s not lying. Then I began to carefully read the Fortran program. Found nothing. Already brutalized, spent a month. I started reading Fortran's assembler production, but it's stupid. Found! Look.
It was written:
X = 9.3.
But X was double and 9.3 was short. As a result, two teams were born.
LE 0, = E '9.3'
STD 0, X.
On the ES computer - there was such a machine, a copy of the IBM 360 - a 64-bit word. And now the LE command loaded only into the left half of the register, and left garbage in the right half. And the STD command dumped the entire register. Since the process was poorly conditioned, that is, small changes in the input data strongly influenced the result, the answer after 11 minutes of CPU time diverged four times. It turns out that I had to write six more zeros here:
X = 9.3000000
I found this error and remembered it for the rest of my life, although it was 40 years ago.
There is the concept of "friendly system", and there is - "unfriendly". This is a typical example of an unfriendly system.
Or a simpler example that all my students suffer from.
X = 1/3
Any normal person thinks it will be 0.33. Fig you! There will be zero. Two integers, which means there will be an integer division. And if you want to get 0.33, put two dots:
X = 1. / 3.
Enough in one place, then it will be correct. But again, who will notice?
Algol 60
Fortran was found guilty of all deadly sins, and people began to invent new programming languages. The Europeans invented Algol 60. There is also some mischief with numbers: they invented it in 1958 - a year after Fortran. But it was so clumsy and bad that the language began to be revised and was adopted at the IFIP (International Federation of Information Processing) congress only in 1960 - hence the name. But the work continued, and in 1964 a revised message about Algol 60 was published. We worked on it for 6 years. Remember this figure, it will be encountered several more times. It takes six years to bring the initial version of the language to perfection.
The first translator in the USSR from Algol 60 was made at the Korolev Center (this is a space institute, now NPO Energia) under the leadership of Svyatoslav Sergeevich Lavrov, who since 1972 became the head of the computer software department, where I now work.
Svyatoslav Lavrov, 1987. Photo from the archive of academician Andrei Ershov.
Lavrov was the head of the external ballistics department - he was the one who calculated the trajectory of the first satellite, the trajectory of Gagarin. He told how it looked in the era before the computer, when several hundred women spent whole days spinning adding machines, counting something.Having heard somewhere about the first computers, Lavrov became interested in them, got carried away and eventually changed external ballistics to programming, making the first translator. Then in Novosibirsk Andrey Petrovich Ershov created an optimizing translator "Alpha". They say that even the Americans recognized it as the best optimizing translator. Then, in Moscow, they made TA2 from the complete Algol 60, but by that moment, the full Algol 60 with its stupid features was not needed by anyone. As far as I know, TA2 was never used, but I worked on the Lavrovsky TA1M translator for many years. We had two M 20 machines at the Mattech, they were equipped with a TA1M, which was later called "Signal".
PL / 1
The Americans became embittered when Algol 60 appeared in Europe, and made PL / I (Programming Language I). Terrible language! Hundreds of automatic type conversions to other types. A shell language, as they said. Several hundred operators: for any individual operator - who will remember them all? Nevertheless, this language became quite popular in the USSR as well, since the ES computers appeared. I wrote on it, but nightmares also happened. You describe in one procedure the global variable A bin fix (integer), and in another variable A bin float (floating point). Then you will look for an error for a long time - the translator will not say anything.
In short, PL / 1 and in Europe were strongly disliked, not only in the USSR. I have been to the USA many times and have heard thatthere is no capitalist and communist programming, but there are different styles .
American style is a brute force method. When a person lacks the computing power of a machine, he goes to his boss and says: "Buy me a car twice as powerful." Usually they do buy it.
In Europe - and in the USSR, of course - this was not accepted. I had to think with my head, find a more efficient algorithm.
Once I met the chief designer of the PL / 1 translators. His surname Marx is easy for a Soviet person to remember. He is not an American, an Englishman, and these translators were made not far from London - there was an IBM center in Europe. We met him in Novosibirsk, where there was a big conference at which Marx made a report. He was asked: "How many errors were found during the debugging process?" He: "I cannot answer this question - the secret of the company." - "How many people did you have?" The answer is the same. Then Kes Koster, one of the authors of Algol 68 (I was attached to him as a translator), jumps up and starts yelling in a rather specific English, which all children now know: "You dishonor our free world in the face of these downtrodden colleagues." And to me: "Translate!" Me: "It's not accepted here, Kes." - “They assigned you to me, so translate!" Ah well? I began to translate as I understood, but I understood quite accurately. But nobody condemned me. Then there was a break with glasses of coffee and cognac - then it was so. This poor Marx stands, and around a meter there are two voids. I went up to him with two containers: "Let's drink!" He slammed the glass and said: “Let me tell you everything.In a private conversation I can, but I can't from the rostrum . " And so he said that he had 51 programmers, that they found so many errors, that this is such a wild structure - a translator with PL / 1.
Then it turned out that we have a lot in common. Both were born in 1949, both graduated from universities in 1971 - he is London, I am Leningrad. I say: “How is that? We beat you four times in broadcast time, three times in counting speed, and an infinite number of times in code length. Why are you so stupid? " He: "How many years have you worked on the translator from Algol 68?" - "Seven years". - “We would have kicked you out of your job long ago. Year - drive the goods, otherwise you will be on the street. " That was when I first learned what Time to Market is.It is important to work quickly, otherwise someone will occupy this niche in the market. Then you will do better, but no one will know about it. In the USSR, we did not know this.
ALGOL 68
The Europeans responded to PL / I with the language ALGOL 68. There was such a working group 2.1 IFIP on Algol-like languages. When in 1964 a revised message about Algol 60 was published, they decided that this direction was over, something completely different had to be developed. They threw a cry: what are we going to do next? The answer was the White Book - I have it on my shelf, a rarity, not on the Internet - with proposals to the same group 2.1.
It contains a long article by Ralph London on proofs of program correctness, Barbara Liskov's article "The CLU Language", where she first formulated the concept of abstract data types. There was also an article by the Dutch scholar van Weingaarden on two-level grammars. Two-level grammar is like a Turing machine in terms of power, it can be used to describe not only the exact syntax - now you will not surprise anyone - but also the exact semantics of language execution. And after many meetings, the people from Working Group 2.1 decided to take van Weingaarden's two-level grammars as the basis for the future language . No sooner said than done.
The group included about 200 people, including Soviet scientists: Ershov, Lavrov. My scientific advisor Grigory Samuilovich Tseitin wrote a lot of letters to the participants - they even gave him thanks. In December 1968, IFIP adopted a new language called Algol 68.
It was an eerie language, nightmare. On the one hand, it was very formal and precise, on the other, it was impossible to write in it.
And so Grigory Samuilovich Tseitin comes to our laboratory of system programming, in which I then worked as a third-year student of mathematics and technology, and says: “Guys, they came up with such a language - no one can implement it. Let's implement it. " We: "Let's go" - and got down to this business. My diploma in 1971 was called "Search for a chain of ghosts in a translator from Algol 68 for ES computers." 11 pages of handwritten text and a working program. Five years later, I found a mistake in this diploma, but when I defended myself, no one noticed it.
The language was very difficult, and we were not alone in thinking so. Group 2.1 continued and a revised report on ALgol 68 was issued in 74. Another six years of hard work by a large committee.This language has already turned out to be quite understandable, it began to be implemented in many groups both in Europe and in America. In the USSR, there was a group of Mikhail Ruvimovich Levinson at the Central Economic Institute, Ekaterina Logvinovna Yushchenko in Kiev. Sasha Maslov and his team made Algol 68 for Elbrus. Andrey Petrovich Ershov created an optimizing translator from Algol 68 in Novosibirsk. In Leningrad, when Grigory Tseitin left these works, the task literally fell on me.
"Algol: Success and Failure", abstract of the report of the Swiss scientist Peter Naur, presented at the colloquium "10 years of Algol" in Zurich on May 31, 1968. From the archive of academician Andrey Ershov
I didn't have to sit down with someone to become the head of the laboratory. Everything turned out by itself when we started debugging IBM / 360 in Moscow NITSEVT. We had a doctor of sciences, about five candidates and about 15 students, while we were writing articles and books, everything was fine. But then people of the older generation slowly began to fall off. Time at NITSEVT was allocated to us only at night. We went to Moscow for three days - we work at night, we sleep during the day, but the young did not care. Moreover, I loved to work at night. There were American and Soviet devices. Throw the cable, and you work normally on good American equipment, and switch back in the morning. During the day they were not allowed to do this.But my older colleagues could not stand it: when they handed over the translator, I was already both the chief designer and the head of the laboratory.
We made the first translator in the USSR from Algol 68. With some lag, the groups of Maslov and Levinson. Yushchenko made an interesting development combined with a database. A huge scientific research called "Beta Project" was carried out in Novosibirsk. They tried to strongly generalize the problem so that ALgol 68 and PL / I and Pascal could be done with one translator. Both in the BESM-6 codes and in the ES EVM codes. The project was never fully completed, but they did some single translators.
When we started implementing Algol 68, it turned out that nobody really needed its reliability, except for the military.But then they fell for it, and many military organizations switched to it.
Table of contents of the Revised report on ALgol 68 issued by the working group 2.1. First on the list of editors is Adrian van Weingaarden
Pascal
Niklaus Wirth was one of the participants in Working Group 2.1. He, and several other well-known scientists - Hoare, Dijkstra, unfortunately, our Lavrov - did not agree with the opinion of the majority and in December 1968 wrote the so-called Minority Report. In it, they expressed the idea that "the mountain gave birth to a mouse: this language is so large and complex that no one will ever understand it in their life." In fact, this is true, but after six years of work and the release of the Revised Message, Algol 68 has become quite nice and understandable language . In academic circles, it has gained quite wide popularity, but in industrial programming, especially in America, it has not. And so Comrade Wirth made such a trick with his ears - he created a language that he called Pascal. He himself is from Zurich, but at that moment he was an intern at Stanford.
Pascal - "trimmed" Algol 68. That is, he took scissors, cut off this, this, this ... The first description was - like a notebook for 2 kopecks: 24 sheets, thin, thin. Since by that time we had already completed work on Algol 68, one of my students undertook to implement Pascal with our own methods. But each morning began with his questions to me: "why can you write many operators between repeat and until without additional parentheses, and after do - only one?", "Why can you write if after else, but not after then?" what to do if I want to pass the procedure itself as a parameter, for example, to calculate a multiple integral? ". There were many inconsistencies. Algol 68 had limitations so that infinite memory would not work, so that self-reduction would not work. In Pascal, no.
In those years in the USSR there was a popular anecdote: "I work at the bed factory, every day I carry the details home, I want to make a bed, but no matter how I put it together, I get a machine gun." So, when we started to fix Pascal, we got Algol 68 . Everyone laughed, said that it was strange, but I just do not find anything surprising in this. It's just that three hundred people have been working on Algol 68 for many years, including us.
It's funny that my wife wrote to Kes Coster, the author of the exchange section, about the mistakes she found and received answers: "Dear Mr. Terekhova." At first we were offended, and then they told us: "How will he guess that Terekhova is her?" Then we began to sign Galiy Terekhov, and he understood everything.
Wirth is a smart guy, he worked on the refinement of Pascal, and in 1974, together with a man named Jensenmade the standard thicker, pages 100–120. When Wirth celebrated his 80th birthday, there was a small symposium in Zurich, where I was invited among 20-30 guests. When I arrived, it turned out that Jensen was a woman, Kathleen. To be honest, it was a surprise to me. She did a lot to transform Pascal from a toy into a serious language.
Kathleen Jensen's speech at the symposium dedicated to Niklaus Wirth's 80th birthday
Then Borland got down to business and made Borland Pascal - already two thick volumes. Thus a language appeared that could already be used . Before that - school pampering.
When the revised report on Pascal Wirth and Jensen came out - also a few years after the publication of the first standard - Wirth wrote in the foreword: "Pascal has a level higher than Algol 60". The translation editor was the famous Soviet programmer Dmitry Podshivalov, a rather evil uncle. He loved to speak out sharply. After Wirth's remark, a footnote appeared in the translation: “It is difficult to agree with this statement. Try to write a matrix multiplication procedure in Pascal ”. The fact is that in Pascal, as in C, by the way, you can describe an array from zero to one hundred, to a thousand, but you cannot describe it up to N - there are no dynamic arrays. How do you describe the matrix multiplication procedure? You don't know which matrices are going to be multiplied. Therefore, Podshivalov was absolutely right. Also to me, a higher-level language in which you cannot write a matrix multiplication procedure!
Nikolaus Wirth and the Lilith computer developed at the Swiss Higher Technical School of Zurich. Wirth created a new language, Modula-2, specifically to implement the software for this system . 1981
Pascal eventually became very popular with schoolchildren and students. For basic learning to program, he is really good. For dummies, reliability means little: just think, a hole in the language - one, second, third. But it can be easily read and written. In my opinion, Pascal did not go into industrial programming - where responsibility is required and you need to write large software systems with high reliability.
Hell
After the Europeans made Algol 68, the Americans decided - why are we worse? And they decided to create a new language for the US Department of Defense. It is now the largest IT customer in the world, since no company can match it in terms of funding. The Americans decided to approach this scientifically. First, formulate the requirements for the language. They were called like this: straw man, wooden man, steel man. And the last one is stone. I've read these thick tomes, clearly and well articulated.
Then they announced a competition with a multi-million dollar prize. But they understood, if no special measures were taken, IBM would definitely win.It's like the saying about football: “Everyone plays, but the Germans win”. In those years, IBM had 20 times more financial turnover than its closest competitor. They also said "IBM and the 6 Dwarfs": one company with a turnover of 16 billion and six more - 1 billion tons each. IBM would crush everyone. Therefore, the Ministry of Defense classified the participants, no one knew who was who. At the first stage, 17 teams were selected. They gave them quite a lot of funding - millions of dollars each. At the second stage, four teams were selected and named by colors: red, yellow, green, blue. Their funding was already in the billions, and they had to make not only the language, but also a test translator so that it could be tested. Only when they had finished their work were the envelopes opened.
There was a wild scandal, because suddenly the Europeans won - the team of Jean Ishbia from Paris. With a language that is very similar to ALgol 68 and completely unlike PL / 1. The language was named Ada - in honor of the world's first programmer Ada Lovelace, assistant to Charles Babbage and, by the way, daughter of Lord Byron, but you probably know that well.
Jean David Ishbia was an employee of the research division of the French computer manufacturer Bull
To create all these "stone men", that is, formulate demands, the Americans convened committees. Hundreds of specialists were needed to evaluate the whole matter. Therefore, whole groups of programmers were lured from Europe to the United States. A communist was caught in one of the committees - the Hungarian Ivan Bach, a member of the Hungarian Socialist Labor Party, ended up practically in the Pentagon. In 1976 I lectured at the University of Budapest, where I was introduced to him. We became friends, walked around Budapest, and he told me how everything is arranged with the Americans. Finally, he sent me one of the preliminary descriptions of the language of Hell on tape. We worked on it for another three years later. Again, remember the number 6.
And so I brought to the USSR the country's first description of the language of Hell. Naturally, we decided to make a translator. I have already become skilled in this matter and thought: since this is the standard of the US Department of Defense, our soldiers will certainly want to use it. Then I will tell them: "I have a translator." But I missed a lot - our warriors were not interested in Ada. In my opinion, in vain. They stole everything - it was necessary to steal it too.
When I decided to make a translator, one employee of my laboratory, four years older than me, said: “Andrei, you supervised a lot. Why are you all for yourself and for yourself? Let me lead this work. " I answer: “I brought it, thought it over, I know how to do it. But okay, lead. " He persuaded me, and I already had something to do. Three months passed and it turned out that the group, created near Ada, was headed by a graduate of almost this year. It was my student Arkady Popov. I ask: “How so? Why did you tell the jerk? " And he: “I didn’t pass it - they took it away from me”. The young man turned out to be very active.
But the story doesn't end there. The young man says to me: “Andrey, you are the wrong leader. We do everything with prototypes, we quickly want to see something. It is necessary in science: create a project and follow it. " Me: “You lead - do it. We'll see at the same time. "
A group of four people spent two years typing three thick volumes - a draft. We looked after the young, rejoiced for them, after the design was completed we even had a little booze. A solemn moment - two years of work have been completed. But it took three months of implementation, and it turned out that they were mistaken in the project, and in some data structure that strongly affects everything else. Arkady came to me, asked for forgiveness: "We fooled." But this group nevertheless made the first translator in the USSR from the language of Hell. True, later than she was going to, and in normal ways, like everyone else.
Oleg Perminov, "Introduction to the ADA Programming Language", 1991
Java and Python
This is where my favorite languages end. The further path was no longer so revolutionary.
Let's say Java. Based on a virtual machine, code portability. Even Wikipedia says that p-codes were invented sometime in 1978. But no! I asked Wirth himself personally who came up with the p-code. He replied: "I made it up." When Pascal did, he went to the rector of Stanford University: “There is a language in which students can be taught well. Let's?" Rector: “Come on! I only have six types of computers. Have Pascal on everyone. " Wirth said that he almost died - it is impossible to make six translators alone. And that's when he created a p-code, a virtual machine. It turned out that he had a translator from Pascal to p-code written in p-code, and then a p-code interpreter was made on each machine - this is a very simple assembly program, several hundred lines. And it all worked. We still use this idea. Niklas statesthat it was he who invented the p-code, and not in 78, but in 71. I also heard about the p-code in the early 70s - some information reached us.
Now Wirth is doing something similar to what we are doing, and we are making a version of the C language - more secure, with more complete control. It turns out that we are not the first in this either. There is already such a language - Di, it was invented by Andrei Alexandrescu. I know him personally - I saw him at some conference.
I will say just a few words about Python. It is a language that cannot be used to write large programs. But it is very good for prototyping: quickly make up on the knee and see what happens. So they use it, basically. A lightweight language with a huge number of libraries. But I can't imagine that they would write control of a rocket or a telephone exchange in Python - it is not intended for a large hardware system. Actually, Guido van Rossum himself told me about this when he told me how and why Python came up with it.
Si
I will dwell in more detail on the history of the C language - one of the most popular. Ken Thompson in 1970 invented the operating system, which is now called Unix. It was a cool event. For this, he used the typeless language B. A little later Martin Richard invented the BCPL language - the development of the Bi language, also typeless. Then Dennis Ritchie decided to rewrite everything in a more efficient and reliable C language, which he himself invented. He relied on B and BCPL, but added type control.
UNIX creators Ken Thompson and Dennis Ritchie at work on the PDP-11. Photo by Peter Hammer, circa 1970
It turned out funny. Richie's first publication came out in 1978, when Xi had already become popular and even reached the USSR. I knew C because the Unix source code was freely distributed - this was the first experience of an open source project. People studied C in the following way: read it - an array is written like this, a cut is like this, a loop is like this. That's it, nothing else is needed. But the first article by the author of the language appeared only a few years after everyone in the world had already become closely acquainted with it.
C is a very good language, I like it, but it has holes in it. I want to fix this, am working on them now and will ensure that more reliable versions are used.
Cobol
The cover of the report on the Cobol language prepared by the US Department of Defense for the April 1960 conference.
Cobol, this fiend, was also invented by the Americans. The fact is that Fortran was originally invented for scientific calculations, while the Americans already in those years used many computers in the economy - to control production. Cobol was invented specifically for working with economic data.
The language is very strange, but it turned out to be good for economic calculations. You can say as long as you like that it is full of holes and sloppy, but half of the world's financial programs are written on it, the Central Bank of Russia and Sberbank also work on Kobol. I know this well, because my students are everywhere. They don't write new programs on it, but there are tons of old ones.
Kobol gave me the opportunity to survive during perestroika times. By the end of the 1980s, we had a powerful group of translators - the first translators from Algol 68, from Ada, from artificial intelligence languages, robot control. Everything was fine, but perestroika broke out, and a stream of programs from the USA poured in here. American broadcasters flooded the market, and since no one paid for anything - this was the era of sheer piracy - they began to forget about my team. I almost despaired, although by that time I had formed the enterprise "Terkom" - Terekhov and the team.
I probably would have disappeared, but then the Americans had a business problem.They had accumulated tons of programs in Cobol, but their maintenance turned out to be very expensive, very few people know this language. And then they decided to do such a reengineering - to transfer kobol programs to modern platforms. Tried at Duke University, but failed. But in their company there was a native of the USSR. Actually, it was only on my sixth or seventh trip to the United States that I met an American born in America. Lenya Erlikh, a former resident of Odessa, said: "If the Americans cannot, maybe the Russians will succeed." And we did it. In general, the language is monstrous, but it helped me to survive in difficult times.