Programming languages

One sector that has reached most of the world’s people, and that also has a highly technical sector supporting it and fluent in one natural language, is informatics or Information technology (IT for short). If you are reading this text it is because of IT. It has been written down in a computer, sent to a publisher through the Internet where it has navigated different servers. Then again processed in another set of computers, and sent to your screen. This is still text, and it could have been done all like in pre-electronics time, but the difficulty of that would have been much bigger, as society is not familiar with the old ways, and the infrastructure is no longer in place to produce this kind of work in an accessible way.

Informatics is ubiquitous all around us, probably even your washing machine might have some pieces of code into it. Internally many electronic devices run using a specific language which is called “software”, a set of instructions written in a programming language which translates instructions that can be understood by humans to instructions that can be understood by the machine. That “language” is a set of instructions based on another natural language, English, the same one as aviation.

You can check this out quite easily, if you go to an internet browser based on open-sourced technology, such as Opera and Firefox, right-click on any web page and select the option “source code of the page”, or “origin of the page” or something along these lines. If you select that option you will see a long list of strange text. These are the instructions, the “programming language” will be a mixture of HTML and Java Script, and no matter where you are, virtually all of the keywords that you would see in that text will be “if”, “for”, “script”, “function”, “window”, “style”… All of them English vocabulary. Any computer in the world would use them and virtually all widely used programming languages are equally based on instructions that make use of English words such as “do”, “while” “end”… If one wants to program one would need at least a basic understanding of the natural language that is English.

This process of English coding itself into the infrastructure of IT happened for similar reasons to those of aviation. After World War II, a German scientist had already developed the first programming language, Plankalkül. But with the development of electronics moving to the US, and the Soviets not picking it up from this lonely German, the Plankalkül did not have much influence in the languages to come.

In the US in particular there was a heavy investment in all the IT sector by the US industrial might and wider university sector in UK and US. That effort set the backbone of all the programming languages to come. All of them were trying to make it easy for programmers to translate the instructions to the machine, and of course, for them English was the easiest language to use. Therefore, the syntax of the languages, by default, was in English. As with aviation, this was the first time that a prevailing technology was developed by only one linguistic group. The technology took global scale thanks to the level of connectivity developed since the years of the navigation breakthroughs. The English-speaking world piggybacked on the networks already established. With the redefining of world equilibria after WWII, English achieved almost total dominance in two key aspects of our current world, Aviation and IT.

To put this in context, there exist now about 8,500 different programming languages, all of them developed in the last 70 years, and virtually all of them with some amount of English in its structure. For comparison, that is more than the total of natural languages surviving on the planet today, about 7,000. These spoken languages took thousands of years to develop, and most of their diversity remains in only one island, Papua, where about 1,500 exist.

What is more interesting from this is why the Soviets, or the rest of the powers for that matter, were not able to muscle out alternative systems. As we have seen previously, the Europeans took over almost the complete surface of the planet. By the end of WWII the only territories that had some influence over the rest of the world were the US, the UK and the USSR. UK and US had English as their language, which translated to their technology. The USSR had Russian as its main language, so did they develop a programming language based in Russian and the Cyrillic alphabet?

The answer is that they did, but with few exceptions, did not continue the effort. By 1959, in Minsk, they developed a computer that used assembly language (strong correspondence between the instructions and the specific architecture of the computer), and later auto-programming systems translators — “Autocode Inzhener” and “Autocode Economist. It also incorporated translated languages such as ALGOL, ALGAMS and FORTRAN, which were developed in English logic. Meanwhile, in 1965 they developed a computer called MIR, not to be confused with the MIR space station. МИР (MIR) means both “world” and “peace” in Russian. The computer used AлМИР-65 (Almir-65) as coding language.

However, that incipient development did not come to foster further independent development. By 1966, when the Soviet Union could have had some influence in the wider world, the US and themselves stopped it. For example, when the Soviets signed a cooperation agreement with France to share IT research, the US punished France by blocking the purchasing of US mainframes, the supercomputers of the time. That might have been the pivotal moment for two independent computing systems. By 1968, the Council for Mutual Economic Assistance, an umbrella for Soviet-aligned communist and socialist countries –China already broke relations with the CCCP by that time– it was decided to abandon the Minsk line of computers, despite being on a par with its western counterparts, because it was decided that the software development was much more advanced on the other side of the Iron Curtain. Thus, the strategy shifted to develop a series of mainframe computers compatible with IBM’s System/360-370, as all the code could be more easily imported. The hardware was created by reverse engineering, but the software, the code, was based on IBM’s. From then on, the scientists and engineers were ordered more and more to copy semiconductor designs, playing always a catch-up dynamic which did not provide much room for fostering, and keeping, independent systems. By the 70s, the Soviet government ended most of the independent development, encouraging the pirating of US systems, and then by the mid-70s the US started exporting directly the computer hardware to the Soviet sphere.

And we all know what happened by the 80s… Through computing one can easily see the slow, and then fast, train of Soviet crash. With Perestroika, the Soviet bloc increasingly adopted foreign computers, but they were relatively more expensive. As the system was collapsing, the West pressured the Soviet government to grant exit visas to computer experts. By the fall of the CCCP at the end of 1991 the large state companies that manufactured computers for the Soviet military virtually ceased to exist.

With that rapid collapse, any real hopes for an alternative, non-English syntax system, mostly banished, with only a few strongholds. One is РЕФАЛ language that originated from the time that alternative system might have seemed possible (1966-68), and still is in use today, albeit also with English syntax. РЕФАЛ (Refal) is oriented toward symbolic computations, meaning that is good for mathematical and theoretical development, but also for writing sophisticated computer programs. These characteristics make it useful for some niche applications like text processing, language translation, artificial intelligence, but is not widely used and was not widely adapted for the Soviet mainframes. Another stronghold was Elbrus, a family of computers starting in 1972 and used in the space programme, nuclear weapons research, and defence. They initially used the Эль-76 (Elb-76) programming language, based on Russian syntax, but also used ALGOL, which is English-derived. Moreover, by 1978, Elbrus implemented a processor that executes instructions in an order depending on the availability of input data and execution units, independently of the actual order in the program, with register renaming and speculative execution that was years ahead of Western counterparts. Since Elbrus was linked to the military and space sectors, which were partially kept afloat in Russia by the West to keep a bit of the military and space capacity in place, that niche system had some options to persist.

For the rest, the Soviet system did not provide an alternative architecture to the Anglo one, not even in revolutionary terms, like the French with their Metric system, which persisted despite the first French Republic, and first French Empire burned to ashes in the Napoleonic flames. That universal role, in coding, has been left uncontested, so far, to English.

Previous

Leave a comment