Coders at Work (Peter Seibel)
Nov. 11th, 2025 02:46 pm This book is a collection of interviews with prominent (at least within the programming community) software developers. Most of them are important figures in the development of languages and operating systems; one is Donald Knuth. All are people who have significant bodies of actual code to their names.
There's a bit of a selection bias - there are no C++ gurus and most of the interviewees are dubious about C++, and maybe more Lispers than there might be in a random sample[1] - but in general these are significant names with a wide range of types of background (IBM, minis, micros, a lot of PDP-11 people (largely a function of age)). Almost everyone did C at some point.
I find a few things interesting.
First, they clearly belong to an extended community of which I'm a part, in attitudes and shared assumptions. Despite this, in over twenty years in the development world in the financial sector, I've relatively rarely met anyone like them. (I can think of a few possible exceptions, but it's rare.) And I don't mean in skill - these people outdo me in skill - but in attitude and approach. They talk, over and over again, about the importance of a "spark", of enthusiasm and a real focus on the enjoyment of problem-solving while coding. In all the ways that I'm like them, they aren't very much like (most of} my colleagues.[2]
They almost all use Emacs. In thirty years of being a developer. I've never met anyone else who was a committed Emacs user. Most have read Knuth to one degree or another, as well. (I read through the first three volumes, and have started making my way through the newer volumes in book 4.)
Many of them started out without formal training. In many cases, this was because they started in high school. In others, it's because programming was a hobby to them while they studied other disciplines, and then became a practical benefit when they started looking for work. (There are a few trained CS graduates and academics, products of or teachers of standard academic courses, with Knuth at one end of the spectrum and somebody like Thomson at the other.) The non-formally-trained ones still think like software engineers and not simply hackers, with concerns around process, design, and structure. Most of them started work with computers before the development of the current credentialist model creating a conveyor belt between university and the workplace; I managed to come in just at the tail end of when it was possible to become a mainstream developer with no formal certification if you could demonstrate skill.
For someone like me it's a bit like looking in a slightly distorting mirror and wondering what I might have been like if I'd gone to Waterloo[3] and done maths and CS rather than English and classics (with some math) at Trent. Certainly I'd have had a different spectrum of opportunities; most of my work has been maintaining and extending already-established systems.
Overall, though, I found it one of the better books I have read at conveying what the experience of software development is like. (There's Moran's The Big Boost, where he follows Trent the Uncatchable doing software development as part of a team, and a bit of Vinge's A Deepness In The Sky.)
Overall, though, I found it one of the better books I have read at conveying what the experience of software development is like. (There's Moran's The Big Boost, where he follows Trent the Uncatchable doing software development as part of a team, and a bit of Vinge's A Deepness In The Sky.)
[1] The author is a Lisp developer.
It's not surprising that people like Stroustrup weren't interviewed; his work has been in language design rather than extensive coding. The more notable omissions would include Linus Torvalds and Richard Stallman. (Though there's discussion of Stallman, including by somebody who also worked on the original TECO Emacs.) C++ possibilities might have included Stephen Dewhurst, Herb Sutter, or Jim Coplien.
[2] Nobody else has ever said, in the Friday scrum, that it means two days before they could get back to coding on their current issues, rather than "Happy Friday".
[3] I didn't apply to Waterloo, but I got an (informal) offer from them anyway, when I came seventh on the Descartes in Canada.
no subject
Date: 2025-11-12 12:43 am (UTC)no subject
Date: 2025-11-12 02:22 am (UTC)Knuth was so distraught about the early electronic typesetting of his somewhat math-heavy book he thought he'd take a few months and fix electronic typesetting, especially for math.
Twenty year later there is TᴇX but for the purposes of the book described it likely matters more that Knuth gave cash prizes for bugs. (People frame the cheques and put them on their wall.)
no subject
Date: 2025-11-12 02:32 am (UTC)no subject
Date: 2025-11-12 03:29 am (UTC)I may well have read that one; I have certainly read (some version of) many of the papers in the table of contents. (and it looks like both are online as pdfs of the papers at least, including a 2021 update to the error log.)
This is a useful reminder; there may well be something complex enough to benefit from literate programming coming up at work in the new year. Thank you!
no subject
Date: 2025-11-12 02:37 am (UTC)Knuth is best known as the author of The Art of Computer Programming, originally planned to be 12 volumes, but currently 3 2/3 (Volume 4 became three books, two finished, the third underway, on combinatorial algorithms). He taught computer programming and is now semi-retired, but continues writing.
It helps that he's a good writer as well as a good programmer.
He also has a pipe organ in his living room, built to his specifications.
no subject
Date: 2025-11-18 01:54 am (UTC)no subject
Date: 2025-11-18 02:26 am (UTC)Steele is a significant name, at least. (I spent a chunk of time in the 1990s with Common Lisp: The Language.)
As I noted, it's somewhat biased towards the Lisp/Scheme side of things. The Algol 60/BCPL side was mainly represented by Thompson and one or two Java people. Likewise, OOP mainly got in under the guise of Smalltalk.
(There is a more general rule I've noticed that "Nobody but actual C++ developers seems to like C++".)
no subject
Date: 2025-11-18 02:49 am (UTC)no subject
Date: 2025-11-18 02:56 am (UTC)no subject
Date: 2025-11-18 03:23 am (UTC)At one point, under VMS, the most effective text manipulation language I had available to me was Emacs Lisp. So I ended up writing a couple of fairly extensive conversion programs in it, and it was at about that time that I was looking at Common Lisp.
Lisp is a really good language for getting a grasp of functional programming, as one can assemble a list as a data structure and then convert it into a function by prefixing it with a lambda. This is normal, as compared to manipulating data using the CS register as a basis for your addressing under Intel, which is normal only if you believe firmly in both taking insane risks and asserting the essential nature of a von Neumann architecture.