Still throws me that “order” here means something like “instruction” as in “that’s an order, lieutenant!” and “code” means something like “set,” as in “legal code” or “code of conduct.”
“Program” however is already used here by Knuth in more of the contemporary sense, though I gather in the time of ENIAC and EDVAC, a “program” was more narrowly the sequence of operations that implemented an order/instruction.
What I love most about all this, though, is how much of the machine you can see in the algorithm and the programming. You can almost visualize the vacuum tubes turning on and off in response to these instructions, which themselves would have been electrical pulses arranged into patterns according to the positions of a bunch of Bakelite switches. Just amazing.
Back in the 90s, I read "Bobby Fischer Teaches Chess," which he didn't write. It was published in the 60s. I can recall finding it strange how the author goes through the effort to explain what a program was within the context of his book, as though it didn't normally mean what I already understood it to mean.
The title states that this is von Neumann’s “first computer program,” but the writing includes plenty of indicators to the contrary and introduces the qualifiers “stored” and “extant.”
Maybe Knuth will issue a reward check to someone who emails him to fix the title?
No he won't. The point of the reward has always been to solicit improvements to the text, point out things he missed -- it does not include conscious/stylistic choices. Please don't waste his time, as (from personal experience) he really does read and respond to error reports :-)
”Punctuation is extremely important to me, but I insist on doing it my own way.” — Knuth
[Edit: BTW, where in the paper are you seeing "plenty of indications to the contrary"? As far as I can tell there is only one earlier program by von Neumann mentioned, an earlier and 80x slower version of this same sorting program, which has not survived.]
There is an email address to send errors and such. A secretary prints them and he marks up the hard copy (if necessary) which is returned with a reward check (when appropriate).
I think the qualifiers are there because the question of who came up with the first "stored program computer" is a matter of some notorious controversy - kind of unrelated to the first computer program. Knuth would have known about this.
"Stored program computer" refers to a computer where the program would be stored within the persistent memory of the computer itself, rather than elsewhere. It seems hard today to imagine such a thing, but think about punch cards or programs you have to enter in via adjusting switches or plugboards. The point of a stored program computer is that program running on the computer could, in theory, change the program itself (yes, "code is data" predates lisp, sorry).
According to Jean Bartik[0], Mauchly and Eckert's EDVAC was already a stored program computer, and thus implying that one of them must have written the first stored program. Jeremy Norman has the actual document where this happens[1], months before Von Neumann's publication. There's some evidence that some of the ideas in Eckert's paper were from an even earlier paper from John Atanasoff, the source of another bitter fight. In any case Bartik has a very poor opinion of Von Neumann, who apparently sat in on EDVAC meetings and wrote notes on the EDVAC without crediting Mauchly and Eckert, then allowed those to be distributed widely in his name, which in turn invalidated Eckert And Mauchly's patent application and thus also their claim to the invention in the public eye.
Another interview with Eckert[2] gets into the details of these allegations: That Von Neumann's motivations were that things should became public domain was because he specifically couldn't sell those ideas at IBM (for whom he was consulting) unless they were patent free.
Both of these are from biased parties of course so take their interpretations with a grain of salt, but that Von Neumann took ideas from EDVAC and summarized them in more formal language and did not credit the others seems pretty much settled fact based on other sources too. Von Neumann was already a well recognized and brilliant researcher in his won right, but reportedly he was also wracked with self doubt, so who knows, perhaps that could have been a motivation too. All of these were very ambitious people.
Curiously that interview also has a reference to another person claiming that a lot of papers attributed solely to Von Neumann were actually coauthored. Really gross stuff, though it's just an offhand comment without substantiation, unlike the other stuff here.
In any case all this reinforces my notion to be more suspicious of modern day "first" inventions attributed to a single person. Similarly to the telephone and lightbulb, there seems to have been a very active community of inventors (all quite important and impressive) who were dancing around related ideas and another might have gotten there eventually if one didn't. There are about 7-8 early computers, some of them within months of each other, that could all be considered early stored program computers. And the parties involved were exchanging ideas with each other too, one way or another. I'm not sure it makes sense to wring hands about which one was truly first.
Sorting has always been a bellwether for computing systems. Interestingly, Jim Gray recognized that 45 years later. He therefore initiated and evangelized the out of core Sort Benchmarks (sortbenchmark.org).
I believe some researchers have come to the conclusion that "the earliest extant program for a stored program digital computer" was not written by John von Neumann, but by his wife: Klára Dán von Neumann.
Knuth references a letter "in the possession of Dr. Herman H. Goldstein," but scholars making the case for Klara are usually referencing the archival materials at the LoC:
I'm doing some research that involves this issue, and I'd be grateful to anyone who has any insight on this. There's a book called Klara and the Bomb, which is quite fascinating (and makes the claim for Klara), but that book leans more toward art than research scholarship.
I am aware that "firsts" are often hard to identify when it comes to the history of science and technology; I'm personally more interested in what these very early programs were being used for than who wrote them, per se. But I'd still like to know if Knuth is actually correct in his assumption.
“[John von Neumann] probably never intended to have this program published and subjected to such scrutiny; although his manuscript is carefully documented, he probably wanted only to circulate it among a few interested colleagues. So when we find a few errors and a few instances of clumsy coding, we should realize that it was an early effort that was not supposed to represent a polished product.”
“Program” however is already used here by Knuth in more of the contemporary sense, though I gather in the time of ENIAC and EDVAC, a “program” was more narrowly the sequence of operations that implemented an order/instruction.
What I love most about all this, though, is how much of the machine you can see in the algorithm and the programming. You can almost visualize the vacuum tubes turning on and off in response to these instructions, which themselves would have been electrical pulses arranged into patterns according to the positions of a bunch of Bakelite switches. Just amazing.
Maybe Knuth will issue a reward check to someone who emails him to fix the title?
”Punctuation is extremely important to me, but I insist on doing it my own way.” — Knuth
[Edit: BTW, where in the paper are you seeing "plenty of indications to the contrary"? As far as I can tell there is only one earlier program by von Neumann mentioned, an earlier and 80x slower version of this same sorting program, which has not survived.]
I have received one actual email from him, when I pointed out an error in the balances at the Bank of San Serriffe (https://www-cs-faculty.stanford.edu/~knuth/boss.html).
The email looks like it was typed by him - the style is right and it is signed "Don" - but the From: address has someone else's name.
"Stored program computer" refers to a computer where the program would be stored within the persistent memory of the computer itself, rather than elsewhere. It seems hard today to imagine such a thing, but think about punch cards or programs you have to enter in via adjusting switches or plugboards. The point of a stored program computer is that program running on the computer could, in theory, change the program itself (yes, "code is data" predates lisp, sorry).
According to Jean Bartik[0], Mauchly and Eckert's EDVAC was already a stored program computer, and thus implying that one of them must have written the first stored program. Jeremy Norman has the actual document where this happens[1], months before Von Neumann's publication. There's some evidence that some of the ideas in Eckert's paper were from an even earlier paper from John Atanasoff, the source of another bitter fight. In any case Bartik has a very poor opinion of Von Neumann, who apparently sat in on EDVAC meetings and wrote notes on the EDVAC without crediting Mauchly and Eckert, then allowed those to be distributed widely in his name, which in turn invalidated Eckert And Mauchly's patent application and thus also their claim to the invention in the public eye.
Another interview with Eckert[2] gets into the details of these allegations: That Von Neumann's motivations were that things should became public domain was because he specifically couldn't sell those ideas at IBM (for whom he was consulting) unless they were patent free.
Both of these are from biased parties of course so take their interpretations with a grain of salt, but that Von Neumann took ideas from EDVAC and summarized them in more formal language and did not credit the others seems pretty much settled fact based on other sources too. Von Neumann was already a well recognized and brilliant researcher in his won right, but reportedly he was also wracked with self doubt, so who knows, perhaps that could have been a motivation too. All of these were very ambitious people.
Curiously that interview also has a reference to another person claiming that a lot of papers attributed solely to Von Neumann were actually coauthored. Really gross stuff, though it's just an offhand comment without substantiation, unlike the other stuff here.
In any case all this reinforces my notion to be more suspicious of modern day "first" inventions attributed to a single person. Similarly to the telephone and lightbulb, there seems to have been a very active community of inventors (all quite important and impressive) who were dancing around related ideas and another might have gotten there eventually if one didn't. There are about 7-8 early computers, some of them within months of each other, that could all be considered early stored program computers. And the parties involved were exchanging ideas with each other too, one way or another. I'm not sure it makes sense to wring hands about which one was truly first.
[0] https://news.ycombinator.com/item?id=40333159 [1] https://www.historyofinformation.com/detail.php?id=639 [2] https://conservancy.umn.edu/server/api/core/bitstreams/7de38...
Knuth references a letter "in the possession of Dr. Herman H. Goldstein," but scholars making the case for Klara are usually referencing the archival materials at the LoC:
http://rs5.loc.gov/service/mss/eadxmlmss/eadpdfmss/1996/ms99...
I'm doing some research that involves this issue, and I'd be grateful to anyone who has any insight on this. There's a book called Klara and the Bomb, which is quite fascinating (and makes the claim for Klara), but that book leans more toward art than research scholarship.
I am aware that "firsts" are often hard to identify when it comes to the history of science and technology; I'm personally more interested in what these very early programs were being used for than who wrote them, per se. But I'd still like to know if Knuth is actually correct in his assumption.
Von Neumann's First Computer Program (1970) - https://news.ycombinator.com/item?id=34314690 - Jan 2023 (9 comments)
Von Neumann’s First Computer Program (1970) - https://news.ycombinator.com/item?id=16975366 - May 2018 (18 comments)