Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering
RedMonk Tech Events6 HN recommenders · 2016–2026
41K views · talk · evergreen · Uploaded 2016-11-18
Bryan Cantrill's Monktoberfest 2016 talk on how software engineers pass knowledge down through oral tradition, from folk rhymes to programmer lore and stories like why C lacks a logical XOR. He argues for writing software with future generations in mind.
HN recommends it as an entertaining, well-delivered talk full of stories that shows the value of historical context and long comments in code.
1:03:55🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
DevTernity Conference
10:13The Problem with Time & Timezones - Computerphile
Computerphile
32:56Bret Victor The Future of Programming
Joey Reid
1:18:21"Uncle" Bob Martin - "The Future of Programming"
Paul Stringer's Mobile Tech
58:39Tim Ewald - Clojure: Programming with Hand Tools
ClojureTV
28:17Using Python to Code by Voice
Next Day Video
48:51Transforming Code into Beautiful, Idiomatic Python
Next Day Video
40:39Agile is Dead • Pragmatic Dave Thomas • GOTO 2015
GOTO Conferences
13 comments from Hacker News
Oh, where is the officially sanctioned definition of the meaning and intent of a header? So glad you asked: The C Programming language, 2nd edition, page 82, chapter "FUNCTIONS AND PROGRAM STRUCTURE", as follows: "There is one more thing to worry about--the definitions and declarations shared among the files. As much as possible, we want to centralize this, so that there is only one copy to get right and keep right as the program evolves. Accordingly, we will place this common material in a header file , calc.h, which will be included as necessary." [VIDEO]
I love historical pieces about technology. There's so much new and shiny all the time in tech, it's nice to reflect on where we've been. Makes me want to re-watch Bryan's talk at Monktoberfest a few years ago on oral tradition in tech: [VIDEO]
You may be interested in this 2016 talk about oral history in software engineering: [VIDEO] To oversimplify: we should write more interesting and historical comments in our codebases, write more blog posts and give more talks, and share more links to blog posts and talks other people have created.
Oral Tradition in Software Engineering[1] by Bryan Cantrill really helped me appreciate that long comments in code can be a treasured part of a software space. I started my career in a pretty low-comment Ruby codebase, but now count myself as a person partial to adding lengthy 'why not how' commentary in programs. 1. [VIDEO]
I’m surprised I haven’t seen this linked yet, but Bryan Cantrill of dtrace, Sun, lawnmower, Joyent, etc, fame gave an amazing talk for Monktoberfest 2016, titled “Oral Tradition in Software Engineering”, which features The Story of Mel [1]. Highly recommend checking it out — there are loads of little gems and stories like this throughout. All of his other presentations are great too and definitely worth a listen if you like this sort of thing [2]. A couple of my favorites are “Fork Yeah! The Rise and Development of Illumos” [3] and “Debugging Under Fire: Keep your Head when Systems have Lost their Mind” [4]. [1]: [VIDEO] [2]: [LINK] [3]: [LINK] [4]: [LINK]
This made me immediately think of "The bug count also rises" [LINK] and of course Bryan Cantrills reading of it: [VIDEO]
Thus the importance of the story and why keeping it alive in the "oral" tradition of software engineering. This is of the same golden era of writing as The Story of Mel - A Real Programmer ( [LINK] ) which was from '83. Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering - [VIDEO]
I had the rare privilege of pair-programming 40 hours a week for several years early in my career. This follows the extreme programming ethos of "everything in the limit," where pairing is "code review in the limit" and "mentorship in the limit," to say nothing of the oral tradition it imparts[0]. Even pair-programming with my fellow juniors was both more productive and more educational than a rubber duck[1]. I had the opportunity to sit down to dinner with some very junior devs at a family gathering, recently, and to hear of their isolation due to remote-work broke my heart. They simply have no idea what they're missing. 0. [VIDEO] 1. [LINK]
Aside, In Oral Tradition in Software Engineering by Bryan Cantrill, he talks a bit about the lack of logical xor in C. [VIDEO]
The question that I'm curious about is "why does POSIX require unary negation to have a higher precedence?" Was it a "this is the way that bc worked in the 70s because it was easier to write a parser for it?" or was there some more underlying reason for the "this problem gets really icky if unary negation has lower precedence than the binary operators and makes for other expressions that become less reasonable?" It's like the Logical XOR issue ( [VIDEO] ) ... and I'm of the opinion that there's a real reason why this design choice was made. (Aside: Some other historical "why things work that way" touching on dc's place in history: Ken Thompson interviewed by Brian Kernighan at VCF East 2019 [LINK] - it goes on to pipes and dc makes an appearance there again)
One of my favorite XOR stories is from Bryan Cantrill (of Oxide, Joyent, and Sun) in this presentation [0] and this video [1]. To avoid clicking a link: When he was at Sun, he was chatting with a coworker (Roger Faulkner) about the lack of logical XOR in C. Faulkner said it was because you couldn't short circuit it, and Brian thought that was wild. Then Roger emailed Dennis Ritchie to ask and he confirmed it was what Faulkner had said. That stories gets me every time! First of all, it's very funny and well delivered by Cantrill, but it's also just so incredible that they could ask the man himself. [0] [LINK] [1] [VIDEO]
Tangent - Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering [VIDEO] (only 2:43 in ... so after the relevant clip, start over and you'll catch back up quickly) > so let's just do a little experiment here ... um ... so if I say Jingle Bells Batman Smells you say ... > okay where did you learn that? If that's not a movie reference; it's not not from a TV show; you learn that the way I learned that you learned that - on the playground. You learned that from another eight-year-old another seven-year-old ...
As I write this, catb is not serving promptly... so [LINK] I also recommend Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering : [VIDEO]