John Backus (1924-2007), Fortran's father

Following @beliavsky 's post, I think that John Backus deserves his own post in our Discourse. And knowledge about the birth of Fortran can help the community to promote the language: as for human beings, many qualities and defects of Fortran come from its early years.

Speedcoding (1953)

In 1953, John Backus works on the IBM 701 Speedcoding system, a simple interpreter to ease computing with floating point numbers (the IBM 704 will be the first to have builtin floating point reals). In those early days, programmers are programming in machine language, a tedious task. Backus says that the operation cost is equally divided between the operation cost of the computer and personnel cost [1]. And Speecoding allows to reduce the cost by accelerating the programming and testing of programs, although running far slower than machine language.

At that time, other people were working on the problem. For example, Grace Hopper completed in 1952 what is considered the first compiler: the A-0 Compiler.

Fortran (1954-1958)

In december 1953, John Backus writes a letter to his boss to propose the Fortran project, for the new IBM 704. It is motivated by the same economical reasons as Speedcoding and will be funded by IBM without questions for that reason.

Interestingly, FORTRAN is described to be composed of two parts: the language itself and the translator. In 1957, Backus does not still use the word “compiler” [2], although he uses the verb “to compile”.

In [3] he insists that their objective was nor to translate quickly, nor to elaborate features of the language, but to obtain very fast object programs, working especially on the optimization of the loops and the way array indexes were treated.

In [4] he explains that most people were skeptical about the ability of a program computer to generate a machine code as fast as would human beings. That’s why his group wanted to create a compiler which would produce optimized machine code whatever the problem, fearing that if a particular problem would be running much slower than a human being’s code, Fortran would be rejected.

Thus this interesting sentence which tells much about Fortran: “Because of our 1954 view that success in producing efficient programs was more important than the design of the Fortran language…” And: “As far as we were aware, we simply made up the language as we went along. We did not regard language design as a difficult problem, merely a simple prelude to the real problem: designing a compiler that could produce efficient programs.” While people working on other early languages were focused on their language, Backus’ group was focused on the translator program (compiler).

It was already quite sophisticated: there was even a compiling phase investigating the frequency of execution of each part of the program, using a Monte Carlo algorithm. Backus will even pretend that it remained the best compiler for more than 20 years. Note also that they were working for the IBM 704, not even thinking Fortran will run one day on other computers.

The compiler was ready in April 1957 and distributed to all IBM 704 installations. Interestingly, they first tried to distribute it using punched cards, but failed and finally used magnetic tapes…

Backus also insists on the importance of the writing of “Programmer’s Primer” (Spring 1957) by Mitchell, the first Fortran tutorial, on the subsequent growth in the use of Fortran.

After Fortran

While working on Algol, he worked on the Backus-Naur form (Backus–Naur form - Wikipedia) to describe the syntax of the language.

He will also work on functional programming. In the conclusion of [4], he wrote: “By splitting programming into a world of expressions, one the one hand, and a world of statements, on the other, von Neumann languages prevent the effective use of higher-level combining forms”. “The world of expressions has some elegant and useful mathematical properties, whereas the world of statements is a disorderly one without useful mathematical properties.”

In 1977, he will be the laureate of the A.M. Turing Award (the equivalent of Nobel Prize for computer science), “for profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages”:
https://amturing.acm.org/award_winners/backus_0703524.cfm

[1] J. Backus, “The IBM 701 Speedcoding System,” J. ACM, vol. 1, no. 1,
1953, pp. 4–6. https://archive.computerhistory.org/resources/access/text/2018/02/102632810-05-01-acc.pdf
[2] Backus, J. W., H. Stern, I. Ziller, R. A. Hughes, R. Nutt, R. J. Beeber, S. Best, et al. ‘The FORTRAN Automatic Coding System’. In Papers Presented at the February 26-28, 1957, Western Joint Computer Conference: Techniques for Reliability on - IRE-AIEE-ACM ’57 (Western), 188–98. Los Angeles, California: ACM Press, 1957. https://doi.org/10.1145/1455567.1455599. http://archive.computerhistory.org/resources/text/Fortran/102663113.05.01.acc.pdf
[3] Backus, J. W., and W. P. Heising. ‘Fortran’. IEEE Transactions on Electronic Computers EC-13, no. 4 (August 1964): 382–85. https://doi.org/10.1109/PGEC.1964.263818. http://www.softwarepreservation.org/projects/FORTRAN/paper/BackusHeising-FORTRAN-1964.pdf
[4] Backus, J. ‘The History of Fortran I, II, and III’. IEEE Annals of the History of Computing 20, no. 4 (December 1998, first published in July 1979): 68–78. https://doi.org/10.1109/85.728232. http://www.softwarepreservation.org/projects/FORTRAN/paper/p165-backus.pdf

6 Likes

More gory details can be found in Lorenzo, Mark Jones: “Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation)”, Independently published, ISBN 978-1082395949, (Aug. 2019), which I can highly recommend.

Mike Metcalf

3 Likes

A full interview from September 2006, excerpts of which are shown at the ACM Turing Award page, can be found on Youtube:

He also appears in this documentary prepared for an earlier anniversary of the language (at least the comments say so):

3 Likes

The transcription of that interview can be found here:

2 Likes

Reading that interview was a strange experience. It was made in 2006, as J. Backus was approaching 81 years old, one year before he passed away. He seemed not a very talkative man, but quite fun and humble, not taking too seriously the achievements he made in his life.

"Programming is a pretty low-level enterprise"
I have not learned more about the beginnings of Fortran, but interestingly discovered that he did not seem to be someone passionate about programming, as we may think. On the contrary, my feeling is his work was, in a certain sense, mainly about getting rid of programming!

  • Speedcoding and Fortran were about getting rid of machine language programming. And I feel the effort of people coding fpm and the stdlib is similar: getting rid of reinventing the wheel, a quite common syndrome in our Fortran world.
  • His work on functional programming (or rather function-level programming) was an attempt to get rid of Von Neumann programming style: "Basically, the idea was to try to describe the transformation that you wanted to take place, rather than how to do it. "

He seemed rather a mathematical mind (Masters in Mathematics) and was more proud of his work on what he called functional programming than on Fortran:
- “Well, I guess the question of it still seems that programming is a pretty low-level enterprise, and that somebody ought to be thinking about how to make it higher; really higher level than it is.”
- “Actually that functional programming was an effort to try to go up a level, so that you didn’t have to keep saying how to do everything, but rather say what you wanted done.”

A wise man’s conclusion
Interviewer: “Is the world a better place because of all the software that’s been written in your lifetime, or not?”
Backus: “Well, in human terms, probably not. Because it just takes us further and further away from human affairs. But as far as economic, and welfare, it’s done a lot of good. So it’s a mixed bag.

But I don’t envy you, I’m afraid. I think that we’re getting more and more technological and less and less human oriented.”

His advice to young people in High School: “Well, don’t go into software. It’s just such a complicated mess that you just frazzle your brains trying to do anything worthwhile.”
And I am not sure it’s a joke… Half a joke?

6 Likes

In 1955, IBM formed the SHARE user group to provide a forum for its customers to exchange experience and ideas. John Backus made there regular presentations during the development of the first FORTRAN compiler. In April 1957, Westinghouse engineers reported the compilation of the first FORTRAN program outside IBM. As the language spread, a SHARE subgroup was dedicated to it: the FORTRAN Standard Committee.

Reference: Abstracting Away the Machine: The History of the FORTRAN Programming Language (2019) by Mark Jones Lorenzo.

SHARE can therefore be considered the oldest ancestor of the Fortran Discourse. It is probably also the first open source community.

3 Likes