Hervey Garrett Smith’s The Marlinspike Sailor is probably my favourite book in the ship’s library, as it is one of those rare books that’s both entertaining and instructive. The dry humour that runs through the text makes it a very endearing read.
This is what it has to say about rope ladders:
Almost every yachtsman at some time in his career feels that he must have a rope ladder, primarily for swimming from his boat. This is a perfectly logical desire which can be satisfied in two ways. He can walk into the nearest marine supply store and buy a serviceable rope ladder for less than ten dollars, or if he’s so constituted he can take some salvaged material and spend seventy-five dollars worth of time making his own. It is to the man who chooses the latter method that these remarks are directed.
In addition, the drawings are excellent and are much more useful than the photographs which plague some modern knot books. It’s a beautiful book, and it makes me wonder: why is there almost nothing like it in the computer science world? The closest analogues that I can think of are some of the literate programming texts (where a lot of effort goes into the code’s presentation as well as the code itself), and the dialogue Designing an Authentication System: a Dialogue in Four Scenes. There’s no shortage of hacker folklore, as evidenced by The Jargon File. So why is it that there’s such a gap?
I think there are a few reasons. Firstly, ropework is so much more tangible than code, making it much easier to appreciate without special training. It’s easier to describe a knot than an algorithm. Secondly, the computing world necessarily places a big emphasis on the clean exposition of ideas, which means that there’s little room for side-stories and anecdotes. Finally, thinking of programming as engineering or construction, which is how it was taught at my university, seems to leave little scope for books with heart. Thinking of programming as an art or craft can encourage it.