They co-host a podcast that modestly has themselves as the subject matter. It is one of the best new podcasts this year, second only to CGP Grey’s (though with Road Work coming out this week, it may be a three-way tie). In this week’s episode, Siracusa had this to say about programmers (link to the audio here—it sounds better than it reads):
Plenty of people can espouse information telling some younger programmer “make sure you always call ‘srand’ before you call ‘rand’”, and they can easily tell you “don’t listen to that guy, you should not call ‘srand’ before you call ‘rand’”.
Neither one of them really understands it, because they can’t explain it. If that young programmer is saying “But why? But why? Why? How do these things work together? Explain it to me.” and they realize “Oh, I can’t explain it. All I have is this…”—it’s not a cargo cult, but it’s more like—”I have this practice that I’ve learned through supposed bitter experience that if I didn’t do this one time and something didn’t work, then I did do it, then it did work.” Very often in programming you can sort of learn that way where basically “I tried this one thing and it didn’t work, or this bug happened, then (I did) this other thing, and the bug was fixed”, and come away from that with a rule, or a heuristic, or something you think is an unwritten law without actually understanding the underlying…
Remind you of anything? In medicine, “cargo cult” is exactly
the term I would use. Programming’s saving grace is that it is a finite system created by humans, and—at least in theory—knowable. The human body is as black a box as it ever was—the only difference between now and the 1800s being a stronger flashlight.
So, programming clearly shares this with medicine: most of its practitioners don’t have a firm grasp of what they are doing, and don’t understand the underlying principles of their craft. Why, then, do we fool ourselves that adding programmers’ idiosyncracies to physicians’ by the way of electronic medical records, clinical decision support systems, and ultimately AI-run e-doctors, will somehow “fix” medicine instead of making it bad in a different way?