Index  Comments

The full title is ``Out of Their Minds: The Lives and Discoveries of 15 Great Computer Scientists''. The ISBN is 0-387-97992-1. Some more information is here.

The basic premise is many would love a chance to discuss the great scientific discoveries with their discoverers, but simply can't. However, this is possible for the new field of ``computer science''. I've wanted to read and review this book for a while, though was unable to purchase a printing. I'd to rent a copy from my local library, which itself had to have a copy sent from the state's library. This book is a leisurely read, and could easily be read in a few days with a small amount of effort.

I compared this book to one I've previously reviewed, ``Coders at Work'', even before reading any of it, so the differences are more interesting: This book isn't structured as direct interviews, but it still contains many quotes, and information a direct interview likely wouldn't, which give it a nice and different tone; it isn't written solely for programmers, and reads as if it were written for the general public, but the general loss of intelligence since its publication date means it has roughly the same audience, anyway; and half of that other book is interviews with despicable idiots, whereas I greatly enjoyed each chapter and subject of this book that cover the more interesting and obscure.

It's so satisfying to see the stories and details which I've seen elsewhere coalesce into a coherent whole through a repeated exposure. I recognized several such stories while I was reading this book.

The linguists, language designers, are the first grouping. The book begins with John Backus and his creation of FORTRAN, Backus-Naur form, and then his disgust with FORTRAN leading to FP; that section which details FORTRAN loop compilation is reasonably interesting. I didn't learn much new with John McCarthy from his chapter, sans details about his parents. The chapter concerning Alan Kay mentions the same story of the US Air Force devising a means for understanding tapes by having each tape also hold the programs which manipulate that data, and how he effectively turned that idea into a career; the chapter holds an amusing tale of three Smalltalk programmers competing against any number of C++ language programmers, with the added detail that the goal will be changed midway, and they of course won that; unfortunately, his worry that computers would be made to be ``mass opiate'' has come true.

The algorithmists are the second grouping and also the largest. Edsger Dijkstra and his omnipresent thoughts on correctness and prose begin the section. This led to whiplash upon the first quote with which Michael Rabin began his chapter: ``We should give up the attempt to derive results and answers with complete certainty''; this chapter didn't much appeal to me due to this attitude, despite those thrilling graphics of finite state machines. Following him is Donald Knuth and, similarly with John McCarthy, there's not much but small details that would surprise anyone who has learned of him. The next chapter is for Robert Tarjan and his work on average-case algorithms and the like; similarly to Michael Rabin, his attitude has permeated all modern computing, which makes all of the flaws with it so very apparent; a focus on average-case instead of worst-case algorithms damns every system anyone needs to behave predictably. Leslie Lamport is some of the same, but the Byzantine Generals problem along with program verification and the ILLIAC IV make for an interesting enough chapter. That last chapter here covers a pair, Stephen Cook and Leonid Levin, and their work on both NP-completeness or Kolmogorov complexity; it's fascinating to see different pathways lead to the same realizations; I'm of the belief that NP will be proven equal to P, and it was pleasant seeing how Leonid Levin agrees.

The grouping of architects follows in third. He who has read ``The Mythical Man-Month'' already has knowledge of Frederick Brooks and his work, but that chapter does later cover virtual reality; as he anticipated then, it has become ``an extension of television''. If only the chapter on Burton Smith went into more detail on data-flow architecture and the like, I would've enjoyed it even more. More detail on such parallel architectures comes from the chapter of W. Hillis and his work on Connection Machines; I was particularly pleased with that effective rebuttal of ``Amdahl's Law'', most commonly used in ways similar to Zeno's paradox proving motion to be impossible; Hillis knew the brain worked as we know motion to be possible, and rightfully ignored the naysayers; I was surprised to learn how one early application of the Connection Machines was neural network simulation, and later biological evolution modelling; I'd often considered the Connection Machines to be more symbolic in nature, but this has upended those beliefs, and I suppose the current neural network nonsense is truly closer to those original goals behind the men and those machines than I'd first figured; this chapter's ending has a certain sadness about it, as Hillis had abandoned some of his ideas about massive parallelism.

Lastly are the sculptors of machine intelligence, but two men. I was unaware Edward Feigenbaum were responsible for expert systems, but still learned plenty about them despite my knowledge; amusingly, he compares himself to the rabbi of Prague, the golem builder, in one quote, but this quote is best:

Here's one example: ARPA asked some of its contractors to get very busy after Iraq invaded Kuwait to convert one of the ARPA-sponsored computer programs for manufacturing scheduling into a logistics scheduling program to help logistics officers plan the movement of men and materiel from the U.S. and Europe to Saudi Arabia. And they did it successfully.
The director of the whole agency said that this one application had paid back the entire investment that ARPA had made in artificial intelligence since the beginning.

I've told so many people of that quote, without knowing its origin; it was so fun to come across it.

Lastly is Douglas Lenat, with much of the focus coming to rest on his project known as Cyc, a try at giving a computer common sense from common knowledge; those goals haven't happened, but it's nice to see the thinking at that time. A suggestion ironic now is using Cyc to help people avoid irrelevant advertisements. The goal is beautiful in its simplicity. The chapter describes how the machine may find an attractive and shirtless young man from a database of annotated images; the important aspect there is annotation. That discussion of ``microtheories'' reveals another nice solution they found.

The epilogue compares these men. The postscript looks to ``the next 25 years'' with lists of events and accomplishments predicted for them, and it has been twenty-seven by now, so I'll evaluate those:

Algorithms are recipes for computer innovations, so they will remain the field's daily bread.

The question of NP-completeness is still open. I don't particularly agree or disagree.

Like faces in photographs, new programming languages will always catch people's attention. But like beautiful images, the innovative and influential ones will remain rare.

This held true. Most ``new programming languages'' are mere makeup over the old; object-orientation still reigns, against all sense. Glue languages did become popular; it's a shame not one is decent.

Artificial intelligence will continue to spin off useful applications and problems, because AI researchers take the biggest risks.

If only this had happened. No, what passes for AI is artificial idiocy, constantly making laughable decisions. That dream of Cyc has not come to pass, perhaps because others don't want to pay for it.

The worst dreams of these great men have become reality, and it's almost laughable, how it happened.