I'm curious, what was the first book, about programming for digital computers.
I tried to google it, but it led me to multiple results.
I'm mostly interested in the language it was about and the writer.
Retrocomputing Stack Exchange is a question and answer site for vintage-computer hobbyists interested in restoring, preserving, and using the classic computer and gaming systems of yesteryear. It only takes a minute to sign up.Sign up to join this community
I would say one of the versions of the Menabrea paper, written in 1842 by Luigi F. Menabrea.
Ada Lovelace became involved in computing when she was asked to translate this paper from Italian to French. She did so, and unlike many translators, was knowledgeable enough about the subject matter that rather than introducing errors into the translation, she actually corrected quite a few errors. In addition, she expanded the paper, adding a great deal of explanation not only about the machine itself, but about how it would be used to solve real problems.
Babbage saw her translation in 1843, and was happy enough with it that he asked her to expand further. She added footnotes and more explanation--in fact, what she added was about twice the length of the original paper.
The original was short enough that it might be open to argument whether it qualified as a book, but at least in my opinion, her edited version clearly did qualify.
And yes, in case there should be any question, Babbage's analytical engines were digital computers, not analog. There were decimal, not binary, but still digital. Many early computers were analog in nature (e.g., slide rules of various sorts) but Babbage's was a mechanical, digital computer.
My justification for this choice is that FORTRAN is the earliest "proper" language in widespread use that I can think of.
The 1946 Mark 1 (ASCC) manual by Howard Aiken, Grace Murray Hopper, et al, has to be the first one which:
Is a technical manual, for a digital machine, which was actually manufactured (only one ever was made, but that's more than the zero actually made of whatever machine the Lovelace/Menabrea paper(s) might have been useful on, a full mechanical computer capable of executing the ideas in the papers never fully existed.)
Contains instructions for programmers, starting at page 98.
Pages before that have a lot of design information in the preface, and hardware data.
I found something from 1949; it's a 4 page article that describes programming for the EDSAC. It's like a book, but whether it counts as one for this question I leave open. In any case, I think it's worth mentioning in any case.
There's one copy I found online, but it's behind a paywall. Fortunately, I get access through my university, so I was able to copy a little from it. (Tell me if you think I missed an OCR error.)
By M. V. Wilkes, M.A., Ph.D., The Mathematical Laboratory, University of Cambridge [MS. received 18 February 1949]
A good deal has been written about the design and construction of high-speed automatic calculating machines, but little has been said about the detailed steps which are necessary to prepare a problem for a machine and to obtain a solution– a process which is usually referred to as 'programming'. Such aspects are, however, of primary interest to mathematical physicists and engineers who may be wondering what help they can expect from high-speed calculating machines in their own problems. It is intended in this article to supply some of this information; most of it will be well known to those engaged on calculating-machine development.
As far as details go: reference will be made to a machine known as the EDSAC (Electronic Delay Storage Automatic Calculator) which is at present being built in the University Mathematical Laboratory at Cambridge, although certain complications which are unimportant for the present purpose will be ignored. The same principles will be applicable to other machines of similar type.
Also note that it makes specific mention of things being digital:
The mathematical application of a digital machine can be discussed quite apart from any consideration of its construction.
Although older books have already been cited, I just reached across onto my bookshelf and found:
"Ferranti Pegasus Computer, Programming Manual", Ferranti Ltd, Issue 1, September 1955.
I have older ones, but at the moment I can't locate them!
I'm sure I have an early Cambridge EDSAC programming manual somewhere.
I remember in the mid 1980s there was a was a workbook around in UK schools for BBC Basic which mixed the programming language with basic mathematics concepts. I also remember around the same time there was a magazine for the Acorn Electron which, amongst other things, published various bits of code as plain text which you typed in yourself and could 'save' onto audio tape (in those days you really did need to save work regularly)