Understanding Computation, From Simple Machines to Impossible Programs by Tom Stuart
I read the sample chapter this morning, and then bought the book. It’s pretty good stuff, although it did irk me early on when, at the beginning of Chapter 2, he shows the formal, mathematical syntax for the operational semantics he will later implement in Ruby, and then states, “Practically speaking, it’s a bunch of weird symbols that don’t say anything intelligible about the meaning of computer programs.” The “weird symbols” never reappear in the rest of the chapter.
This strikes me as a real opportunity missed. Without hurting readability or even consuming too much space on the page, the of inference rules shown here (this is location 879 in the Kindle edition) could have been shown as callout figures next to the equivalent Ruby code later in the chapter. They do, after all, have meaning, even though the syntax may be unfamiliar.
Stephen Hawking wrote, “Someone told me that each equation I included in the book would halve the sales.” I appreciate that for a “mass-market” publication a focus on readability is paramount. To give credit where credit is due, the author does succeed in making the ideas he presents quite readable. The dismissive handwaving just got under my skin a little bit.
Having said all that, I’ll reiterate that the book looks really good, and I enjoyed the rest of the second chapter, so I look forward to reading the rest of it.