Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering
RedMonk Tech Events6 HN recommenders · recommended in 6 months, 2016-2026
41K views · 9 years ago · talk · evergreen
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.
40:27Intelligence is not Enough | Bryan Cantrill | Monktoberfest 2023
RedMonk Tech Events
24K views • 2 years ago
51:22Principles of Technology Leadership | Bryan Cantrill | Monktoberfest 2017
RedMonk Tech Events
79K views • 8 years ago
43:04Corporate Open Source Anti-patterns
Bryan Cantrill
24K views • 12 years ago
46:24Andreessen's Corollary: Ethical Dilemmas in Software Engineering - Bryan Cantrill | Craft 2019
CraftHub Events
27K views • 7 years ago
51:57Lone Star Ruby Conference 2010 Real Software Engineering by Glenn Vanderburg
Confreaks
30K views • 15 years ago
37:07Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting Things
FunctionalTV
45K views • 7 years ago
1:12:122017 ACM PPoPP Keynote: It's Time for a New Old Language
Guy Steele
7K views • 9 years ago
52:35Debugging Under Fire: Keep your Head when Systems have Lost their Mind • Bryan Cantrill • GOTO 2017
GOTO Conferences
101K views • 9 years ago
43:28Leaping the chasm from proprietary to open: A survivor's guide
Bryan Cantrill
14K views • 11 years ago
3:34:04Chris Lattner: Future of Programming and AI | Lex Fridman Podcast #381
Lex Fridman
2M views • 3 years ago
1:07:58Software Art Thou: Glenn Vanderburg - Real Software Engineering
Zendesk
35K views • 8 years ago
32:56Bret Victor The Future of Programming
Joey Reid
305K views • 13 years ago
58:39Tim Ewald - Clojure: Programming with Hand Tools
ClojureTV
48K views • 12 years ago
1:07:22Invited Talk - Guy Steele
ClojureTV
39K views • 9 years ago
1:18:21"Uncle" Bob Martin - "The Future of Programming"
Paul Stringer's Mobile Tech
1.8M views • 10 years ago
2:42:41Chris Lattner: The Future of Computing and Programming Languages | Lex Fridman Podcast #131
Lex Fridman
594K views • 6 years ago
22:29Gopherfest 2015 | Go Proverbs with Rob Pike
The Go Programming Language
317K views • 10 years ago
27:26reddit.com Interviews Peter Norvig
Reddit
47K views • 16 years ago
12:31OSCON 2010: Rob Pike, "Public Static Void"
O'Reilly
119K views • 16 years ago
50:23Old Is the New New • Kevlin Henney • GOTO 2018
GOTO Conferences
125K views • 8 years ago
13 comments from Hacker News
As I write this, catb is not serving promptly... so link I also recommend Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering : ▶ this video
Tangent - Monktoberfest 2016: Bryan Cantrill - Oral Tradition in Software Engineering ▶ this 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 ...
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] ▶ this 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 ( ▶ this 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)
Aside, In Oral Tradition in Software Engineering by Bryan Cantrill, he talks a bit about the lack of logical xor in C. ▶ this 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. ▶ this video 1. link
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 - ▶ this video
This made me immediately think of "The bug count also rises" link and of course Bryan Cantrills reading of it: ▶ this 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]: ▶ this video [2]: link [3]: link [4]: link
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. ▶ this video
You may be interested in this 2016 talk about oral history in software engineering: ▶ this 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.
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: ▶ this video
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." ▶ this video