Algorithms + Data Structures = Programs - Episode 262: 🇳🇱 Chaos with Sean Parent! Bikes, Buses, Waffles & More!

Episode Date: November 28, 2025

In this episode, Conor and Bryce interview Sean Parent about generic programming and there is much chaos!Link to Episode 262 on WebsiteDiscuss this episode, leave a comment, or ask a question (on GitH...ub)SocialsADSP: The Podcast: TwitterConor Hoekstra: Twitter | BlueSky | MastodonBryce Adelstein Lelbach: TwitterAbout the Guest:Sean Parent is a senior principal scientist and software architect managing Adobe's Software Technology Lab. Sean first joined Adobe in 1993 working on Photoshop and is one of the creators of Photoshop Mobile, Lightroom Mobile, and Lightroom Web. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.Show NotesDate Recorded: 2025-10-10Date Released: 2025-11-28Koala bear cryingabscond DefintionSean's C++ Under the Sea KeynotePacific++ 2018: Sean Parent "Generic Programming"From Mathematics to Generic Programming (FM2GP)ParrotParrot on GitHubIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8

Transcript
Discussion (0)
Starting point is 00:00:00 I put together specifically, I got invited to give a keynote at Pacific C++, and it happened to coincide with the 30th anniversary of generic programming. So it was 30 years after Alex Steppenoff and Dave Musser coined the term generic programming. And I thought it really deserved a proper covering of kind of the history of generic programming and where it came from and why it's a thing. And so I put together that talk. I'm pretty proud of the talk because I ran it past Alex before I gave it, and Alex's comment was that he couldn't do it better himself. Plus Under the Sea, but this episode is pure chaos. We talk about generic programming, but also bikes, buses, waffles, and more. And with that, we will transition to not Sean Parrott, but Sean Parent.
Starting point is 00:01:22 Apparently we're getting T-shirts made, according to Bryce. The idea is the T-shirt would have the parrot, but with like, You know, a cartoonized version of Sean's face on it. How do we feel about that, Sean? There's a bobblehead of me from CBPCon, so... Wait, you have a bobblehead? I have a bobblehead, yes. I don't have said bubblehead.
Starting point is 00:01:45 You have a Sean Pairn? Bubblehead. I may have one. I could maybe try to find it for your wedding, buddy. It's a pretty good wedding gift, folks. I mean, it sounds like a limited edition item, so there's probably a fixed number in the world. so we were trying to I mean we recorded a couple months ago or do we have to start leaving?
Starting point is 00:02:04 I don't know Oh I see you We're being kicked out I mean we can I guess you're leaving to the The train soon Are you going straight from here or I mean we can go
Starting point is 00:02:14 I think I'd be We can go to the hotel Oh yeah that's true We'll go to the hotel Um So wait actually Do we have to leave right now Should we pause this
Starting point is 00:02:23 And then resume at the hotel Or do we have like 10 minutes I don't know Are we being told to leave right now Is there a bus? If there's a bus, let's get more information. I think we should pause for now and get more information. All right, folks.
Starting point is 00:02:35 We were here with Sean at the venue. We talked to a bunch of folks, everyone but Sean, even though that's how we started this off. We said, we're about to talk to Sean, and then we talked to like six different people, and you got collected by a couple different people. Is there a bus coming? I have no idea, but we should get out.
Starting point is 00:02:54 Okay. There you go. We can also record outside at the bus station. We've never recorded at a bus station. Are you still recording? Yeah, you want to see something? Yeah. So Bryce this morning, he sent out on the Slack channel,
Starting point is 00:03:15 like he doesn't know whether he can find his way to the venue because he couldn't get a cab within an hour. But we're in a European city, right? We have buses running every 15 minutes, and they're on time and they're on Google Maps. They're easily discoverable. So, like, everybody just wondered, like, why can Bryce just take the bus, right? Connor, do you know?
Starting point is 00:03:34 Listen, folks, I would love to side with you, but I was also in the position of not being able to find an Uber. I looked in the public transit. It said it was going to be 30 minutes, and at that point I had wasted 15 minutes ordering and canceling three different Uber's, and had already waited five minutes into a 19-minute wait for an Uber. It's actually not the fault. We discovered today that a lot of the trains ended up being canceled. And that's why Uber's, because last year, I Ubered a couple times to and from. We never had this issue.
Starting point is 00:04:02 I did look into public transit, and I had to walk like five minutes. The whole thing was going to take 27 minutes. And look at that, the Nvidia backpack, folks. I've had mine for six years now, and it's as good as new. It's a good backpack. Bryce and I had the same problem today that we were trying to get here. And honestly, I think the solution is either the hotel or the conference to just have, like, rentable bikes for, like, 10 euros a day or something.
Starting point is 00:04:27 something, because that's when we were in Orhus, in Denmark. This is the Netherlands way, right? It's like, you just ride a bike. I mean, the problem is that all the locals don't have one bike. I've heard that it's per capita. There's more bikes than there are people. And so there is no need for a more elaborate infrastructure, which I actually love. I love that, you know, Netherlands in Europe in general, it's more eco-friendly, it's better
Starting point is 00:04:50 for your health, yada, yada, yada. So I wasn't actually upset at Uber. I just wanted to get there faster. But I looked into it and, like, there is not the widely availabilityness of, like, limes or birds. Like, they have scooters and bikes. Like, when we were in Copenhagen, a couple times we just hopped on a lime bike, which, like, you can just whip out your phone, you scan a QR code, and you're off to the races. I think in the Netherlands, they're less available because everyone just has so many bikes, personally. So if you're not from here, you kind of just are screwed a little bit.
Starting point is 00:05:21 But you're not screwed because Uber typically is not that bad. it just happened to be that the trains weren't working today and I heard actually from Andrew one of the co-organizers of the conference that someone I don't know how far away they were but they were going to train in and then the train was broken so they just cycled in and I asked how far and the answer was he was only 30 minutes late I mean Andrew's right actually there we could get the full distance but I am imagining that this person like hopped on like a serious road bike
Starting point is 00:05:50 and did like a decent workout on the way here but unfortunately there is not the availability of these bikes for foreigners. But it's our fault. We should have bought our own bikes. You have to be certified to have a Dutch bike. That's true. We also talk to someone that said they do have at the Brayda station bikes that you can get, but you need like a little ID card or like payment card. You can't just like do it with your cell phone and an app.
Starting point is 00:06:14 Anyways, we love the Netherlands. We love the bike. And I actually like Brita a little bit more than Amsterdam because you're not going to get killed here by a cyclist or a cohort of cyclist. Amsterdam is the bus is the bus Oh wait we got to go to the bus Wait why are we recording this Mark Harris
Starting point is 00:06:31 That's when when Bryce said he was the scan man And Mark Harris came to mind Because he has all the scam papers Bryce was just saying And I don't know why the mic's just been by my side Is that he Oh actually do we want to docks him We'll just say he lives in the hills of Australia
Starting point is 00:06:43 But Mark has told some crazy Because Mark was a pick Which is a pilot in command person in charge I don't know what the actual acronym Pilot in Command yeah And while both myself and Jake and a bunch of folks work for Rapids, that's where I spent the first... Yeah, well, pilot in command.
Starting point is 00:07:01 It's just the person that is like an IC, but is a mentor at the same... Actually, I don't know. I'm just... The pick is the person who is responsible for a particular thing at NVIDIA. Like, it could be a feature, it could be a product, it could be like an event, it could be a goal. And the idea of a pick is that they're supposed to... to be just one pick for any given thing so that it's clear who is in charge
Starting point is 00:07:26 of the thing. Are we at the right place? I was going to say is I only see one other person. What was, I think Mark was the pick of Rapids Memory Manager RMM, but I don't actually fully know. I'm getting multiple yeses so. Anytime you hear somebody, anytime you ask somebody at NVIDIA who the pick is
Starting point is 00:07:44 and they say that it's more than one person that means I haven't been at NVIDIA very long time. All right. It's supposed to be one pick for any given thing. All right, one pick. Anyways, there's a, I mean, we should have Mark on, one to talk about scans, but then he can tell this story himself. He, yeah, yeah, say what you just said and nothing more. The Python story. So every listener, I guarantee you, is thinking that Python refers to the programming language.
Starting point is 00:08:09 It does not. It refers to homing pythons that apparently can get up to several meters in length. Is that, that's accurate? And Mark tells this story, I'm sure he's told it to you, he's told to me, where, every once in a while because he lives in the hills of Australia, these pythons show up in his backyard, and he has to, I don't know how, but he collects the python somehow,
Starting point is 00:08:34 throws it in the back of what I assume is a truck, because that would be the right vehicle for a python. And then he'll drive it like literally hundreds, maybe not hundreds, but a hundred. So the story that he told me was like the first time he took it and he drove it like 40 kilometers and he dropped it off, and then the sucker came back. And so the next stuff,
Starting point is 00:08:52 He researched how far they can home And like the internet said like If you take it like 60 kilometers It should be good And then it kept coming back Yeah At some point the python just becomes your pet You know?
Starting point is 00:09:07 If it's coming back that long It's just your... I don't know how he knew That it was the same python But I just assume that when you lived in Australia Long enough you can tell the python's part And this folks is why I will be going to Australia for the first time this year
Starting point is 00:09:21 and I'm a little bit scared because they have like all the deadliest spiders like... And you even know about the drop bears? That's a joke. Those are a reference
Starting point is 00:09:29 to koala bears. And I will say they're actually pretty evil as well. They're very cute. But if you actually just Google or actually link in the show notes, I forgot, we have a podcast. Linking the show notes
Starting point is 00:09:39 to a video of a koala bear on the ground going they make the most awful sound when they're crying for their parents. So cute in sun circumstances. And they're actually mostly high a lot of the time. because they just live off of eucalyptus,
Starting point is 00:09:53 which is some kind of carcinogen or, I don't know. Anyways, I mean, we have Sean here. Should we rotate back to interviewing Sean? So we tried to interview Sean earlier, but he was being, is absconded the correct word? Absconded is the correct word. Absconded is the correct word. Linking the show knows to a definition of that word,
Starting point is 00:10:11 if you don't know what it means. Miriam Webster, Oxford or something. Maybe we'll give it the Scrabble Dictionary. There you go. I think people need to up their vocabulary if they don't know the word. Your phrase, abscond did a good scrabble word? You get a lot of points. It's not a great scrabble word, but abscond, I believe, is seven letters.
Starting point is 00:10:28 If my math is wrong, then it's eight. But A, B, S... No, it's seven letters. So that's a bingo. So even though the highest scoring letter in that is going to be the C or the B, you're going to get an extra 50 points if you can spell that. And also, too, it's going to be a high probability, bingo, because most of them are one-letter tiles,
Starting point is 00:10:45 and you're more likely to have those on your rack. There's no E, though. And abscond, if you had only two vowels, and B-S-C-N-D. Are you going to be able to spot that? Not me. Not me either. I'm not that good.
Starting point is 00:11:00 And also, too, the S, you would assume is going to go at the end. And unless, is there like a Bacons, a Bacons plus a D? I don't know. Anyways, we're interviewing Sean Perrin here, not talking about Scrabble. He was absconded, though, by a lot of folks. What were they asking you? So, I mean, no introduction. He doesn't need one.
Starting point is 00:11:16 He was opening keynote, and we talked to you about your keynote a couple months ago, now we're here in person. What were you being absconded? Were they asking questions about your talk or about other things? Mostly about my talk, yeah. And what I'm doing with ST Lab and we talked some about their talks, some of them were speakers, some of them were just attendees asking questions. So, yeah, it was good.
Starting point is 00:11:39 It was good. Good questions. Good questions. Great questions. Yeah. And how have you found, this is your first time C++ under the C, correct? It is. Yeah.
Starting point is 00:11:46 How would you? One other, so. That's true. And you, and we were here. I asked that question, and I knew the answer. I like, we were here. He wasn't. Therefore.
Starting point is 00:11:57 I was here. I was just sitting in the back corner, so you didn't see me. Yeah, said to Sean Parenthood never. I don't think you ever get to sit in the back corner. So how was it? Was a good conference? It was a good conference, yeah. I enjoyed it.
Starting point is 00:12:10 A good venue. A little remote. So a little too far from the hotel. But, yeah, it was fun. That is the only thing that we were saying is that, I mean, it was never a problem with the Uber. and whatnot but is this us that looks like a public bus that one looks like a non-public bus man where this is going to be the most we were we were in the building then we were at the bus stop
Starting point is 00:12:33 i was going to say we almost lost that guy too he just darted in front of that bus as if it wasn't a bus uh i mean like like again i see the guy he's giving me a uh a hand across the throat, which is I'm not sure if that means that's not the bus or he almost lost his life.
Starting point is 00:12:57 He's turning around. That's based on. Anyway, so a little bit remote. Is this, I imagine you've been to the Netherlands as a... Oh wait. Never.
Starting point is 00:13:09 Never. Really? First time to the Netherlands. First time to the Netherlands. I'm in Amsterdam? Yeah, you are not. I should, but I am not. So, I spent some time in Zurich on the way here.
Starting point is 00:13:18 Oh, yeah. You were at the... We talked about this when we last interviewed you, the Zurich C++ Meetup. How was that, giving the same talk, correct? Same talk, yeah. Amazing. You should make sure we have an understanding of... Is the bus coming in the public bus, or is it the private conference bus?
Starting point is 00:13:32 I think the other... I mean, the other... I mean, we can't have just missed the bus, folks. We're about to find out. Sorry, Sean. The most chaotic episode ever. Anyways, first time in the Netherlands, you were just in Switzerland at the Zurich C++ meetup. Yes.
Starting point is 00:13:50 Switzerland is beautiful. Have you been to Switzerland before? No, first time. First time to both Switzerland and Netherlands. I added two countries to my check-off list here on this trip. Do you have a list? Do you know how many countries you've been to? I was trying to add it up.
Starting point is 00:14:03 I think it's, well, I've spoken in 10 countries, so, yeah. Okay. So that, I guess this was 9 in 10? Nine and 10. There you go. I'm pretty sure more countries I've spoken in. But you've got a few years. I'm...
Starting point is 00:14:19 Oh, okay. Can you help us? Good, speak such. Hey. Is that a bus? Yeah? Yeah. Come here.
Starting point is 00:14:28 You have to go. Okay. So, we move? Yes. Oh, okay. Does that mean we miss the bus or... I think we're standing in the wrong place. Okay.
Starting point is 00:14:39 But the bus is still on route? I think so. I mean, he's just laughing, so... I'm not sure that's a good sign or a bad sign. There's a sign. has his own vehicle. Ooh, look at these cars. Wait, wait.
Starting point is 00:14:59 Where we're going? I'll run there. Okay. Okay. I know there is another stop. This is what? I'm going to leave so. Oh, you're going to leave.
Starting point is 00:15:09 I thought you were asking for the mic. It was a pleasure. You had a car, so you're driving home. Yes, sir. All right. We'll see you potentially in a year. Good luck with the wedding. Yeah, yeah, thank you.
Starting point is 00:15:16 Should we potentially take up going on to all? Thank you for a video. Thank you for meeting you. Yeah. Well, there's not enough room in his car, so. All right. It was good seeing, yeah. Awesome.
Starting point is 00:15:26 Hey, cheers. Yeah. And thank you for the PR. First PR on the Parr Repro. Oh, really? Yeah, yeah. First was to turn it green. Oh, that's true.
Starting point is 00:15:36 Well, no, he did not open a PR though. He just opened an issue. Okay. You didn't, you have not submitted PRs. You're trying to be like, I submitted a PR. Okay, go ahead. All right. Good seeing you again, Koon.
Starting point is 00:15:47 Good seeing you again, Kuh. chaos with sprinkles of information Oh way over this Is that our bus? All right folks We can see a bus in the distance And our good little help Oh no it's leaving
Starting point is 00:16:02 Why didn't he sprint after it I don't know Wait where did Kuhn go Was that the bus? Okay why don't we go find Kuhn? Half an hour. Oh, my God. So you fail.
Starting point is 00:16:25 Go grab Kuhn. What? Go run and grab Kuhn. You're a runner. Go running. What are we going to do, though, partially? But otherwise we're going to have to get two cabs. Why don't we go get Kuhn?
Starting point is 00:16:35 Because then he can take some of us. He's somewhere over there. Run, man, run. Jeez, man, said he's a runner. Doesn't actually run on command. No, it's fine. Connor will find him. Connor will find him.
Starting point is 00:16:48 Connor run He's like Look at this So now we know how Connor runs Yes now we know how Connor runs Oh I don't believe he put in 20 kilometers Yeah yeah I find that hard to believe too
Starting point is 00:17:10 But I guess worst case we'll just We'll just get a cab He ran 20 kilometers like that Which is why he's walked earlier it was saying he had a day of relaxation. I have faith in Connor. I mean, his bag is here, so I think he will. I would guess he will come back.
Starting point is 00:17:36 I've already had like five of the ASML waffles today. Okay, understood. There are many types of waffles. Do you want to tell the difference between waffles and stroff waffles? I mean. A listener's interested? I don't... They better be.
Starting point is 00:17:52 Tell us the difference. So this straw waffle, it has honey in the middle. It's like half a centimeter wide. And real waffles are like two centimeter wide, and they have sometimes chocolate on the top and a lot of sugar. Okay, understood, understood. To American eyes, none of those are waffles. They're little... A waffle is a thing that you put into a waffle line.
Starting point is 00:18:17 iron and uh you maybe put blueberries in you maybe put chocolate chips in and then you put some real american maple syrup none of that Canadian maple syrup you want some you want some yes the best maple syrup is from Vermont this was a Canadian thing no no wait what's your preferred maple syrup Minnesota Minnesota I would that's also I think an acceptable answer to me I did not know that there was even Minnesota uh maple syrup oh yeah I have a distant cousin who does maple syrup in Minnesota along with wild rice. Oh, that is an interesting combination. Okay.
Starting point is 00:19:00 You don't have it together, different seasons when he sells it. I would imagine, yes. Yeah, so. Connor is still not returned. I'm starting to grow concerned. Like I said, he found a ride Yeah We're stranded
Starting point is 00:19:21 Yeah Where did you get that Invidia This Nvidia puffered? Is that from the gear store? Yeah Okay, that's nice I got it at GTC
Starting point is 00:19:33 Ah, yeah Yeah San Jose Yeah In San Jose Yeah Too bad we don't have Letter checkettes right
Starting point is 00:19:42 But we have that at a company That would be a nice thing have in the gear store. Yeah, but like the CEO says no. Does Adobe have good swag? I am at, because Adobe's also a company known for the visual art, so I would imagine having good, good material. Yeah, we have pretty good swag, but we never get to go to the conferences, so.
Starting point is 00:20:03 Oh, really? To the Adobe conferences, you mean? The Adobe conferences. Because those are for the creators, for users? Yeah, those are for the creators for the users. But who gives the talks about the new features in Photoshop and things like that? Yeah, so usually. That might be some executives, but it will also be, we have a lot of creative art directors who take on that role.
Starting point is 00:20:26 And Adobe doesn't have like an Adobe developer conference? I mean, like Photoshop's known for the whole plugin. Yeah, you would think we would. Maybe we'll have to start one. Okay. I'm hearing things. Yeah, I guess he will come around. I see people running.
Starting point is 00:20:47 That was a proper run, unlike Conner's, unlike Conner's run. Is this our bus? No. So wait, wait, wait, what? Is Connor there? Okay. How many people will fit in this vehicle? All the Americans.
Starting point is 00:21:08 We take the bus. I guess you couldn't reach Daniel? I think he didn't answer Oh no wait like I'm fine I'm taking the bus Oh there we are okay You get to say that again
Starting point is 00:21:28 That's yours right Yes We're taking chaos to a whole new hell level On this episode How many people are we going with Is it just three or And then there's going to be another Uber No the bus comes in 10 minutes
Starting point is 00:21:41 So I'll take the bus I see the bus you don't want to take the front shot you're sure I do you think you're the tallest is that right I promise you Sean is the tallest but also too
Starting point is 00:21:56 there has to be a factor of age and here you can you can hold it I don't want to say seniority because that sounds but it sounds it sounds just say age
Starting point is 00:22:09 I don't want to say age this is honestly it's uh i mean coots probably thinking god damn i just went from two episodes before this is and now we're recording in my car this is going to be legendary i heard a lot of a lot of people when i was asking what they liked about the conference and what a lot of people said that they think something to the effect of wait can we can we do can we back up what's happened they just heard a bunch of noise okay we're in kuzk all right cut god wasn't running fast enough okay other people agreed he'll listen to the tape that was recorded
Starting point is 00:22:45 when you were gone. We're now in Coon's car. Coons driving us into the center of Brita. Was that covered while I was gone? I think so, yeah. Well, the fact that you were gone was covered. Some people thought that you may have abandoned us. Oh, because it took a
Starting point is 00:23:00 second to find them because the parking was pretty big and... If you'd run faster, it would have been less of a problem. But so a lot of people commented that your talk got them thinking about generic programming and what generic programming means.
Starting point is 00:23:16 And I thought maybe you could share your thoughts with the wider audience on what generic programming means because I think a lot of people just means that I use a template. Yeah, so I had two slides. One is that generic programming is not metaprogramming, and programming with generics is not generic programming. The ideas behind generic programming are that programming is mathematics,
Starting point is 00:23:43 and it's built on this note. of a concept, which is a little different than the language notion we have of a concept, although the intention was to represent the same basic idea. But concept is a collection of related requirements, and it's the equivalent in mathematics to an algebraic structure. And algorithms then are defined on concepts. Yeah, so that was the main thrust in talking about how we express those requirements, what it means for a type to model those requirements. So, yeah, if you want to learn more, I'll have Connor a link to the book.
Starting point is 00:24:32 Also, wait, let me think of the same. Also, too, folks, I don't know if it's a gem or a hidden in the rough. I don't know how many views your Pacific C++ talk is. it was clipped in my algorithm intuition in 2019 talk. And it is one of the, it's, I mean, it's, you have so many good talks, but it's up there. Top three for, well, do I know? Top three, top five. It's one of Sean's best talks.
Starting point is 00:24:55 Because that was where the first time, and you said it a bunch of times, but it's just the order that I watched your toxin, where you refer to beautiful code. And it is, there is something, I don't know what the word is, like, not liberating, but like, when you hear someone with as much experience as you talking about the beauty of code and Stepanov does it a bunch but I haven't watched any of his content at that point in time I had always thought that I was like in the minority
Starting point is 00:25:22 of like the aesthetics of what code looks like is important because I hadn't heard anyone else talk about it but then you were giving this talk called generic programming at Pacific C++ which is a conference that I believe no longer exists and it was I don't know if you consider the talk like an homage to Alex Stepanon but you referred to his algorithm and the, what was it, stable sort. Was that the, yes, stable sort was the algorithm.
Starting point is 00:25:50 And that was the moment where you were saying, you know, it's this beautiful piece of code that, you know, was considered, it was on some list of hard problems to solve. And he did it in like a few lines of code. And like you, I remember explicitly the quote. That was what I clipped in the talk, which was you saying, like, I saw this code and, like, that's, that is the code that I want to write. I want to learn how to, how do you write code like this? and like in no other talk at any other programming language conference whatever technology
Starting point is 00:26:14 have I ever heard anyone talk that like passionately and emphatically about like the aesthetic and the beauty of an algorithm or a piece of code anyway so if you are interested in what Sean was just talking about in this keynote you should definitely go check out the Pacific C++ generic programming type did you give it anywhere else or is that the only recording of it anyways I'll hand the mic back to you because I think that might be the only recording of it that talk was I put together specifically I got in invited to give a keynote at Pacific C++, and it happened to coincide with the 30th anniversary of generic programming. So it was 30 years after Alex Steppenoff and Dave Musser coined the term
Starting point is 00:26:52 generic programming. And I thought it really deserved a proper covering of kind of the history of generic programming and where it came from and why it's a thing. And so I put together that talk and I'm pretty proud of the talk because I ran it past Alex before I gave it and Alex's comment was that he couldn't do it better himself so yeah so that's that's what are the talks I'm most proud of I would say it's a very good talk link in the show notes link in the show notes what I was going to what I was going to say is you should link to for mathematics to generic programming also which is Alex and Dan Rose's book
Starting point is 00:27:37 which makes the very strong connection between generic programming and mathematics. Oh, yeah. Is generic programming hard? Or harder than programming non-generically? You know, this comes up a lot, and I actually think not. It does take some amount of time to learn and get familiar with, but the basic idea is learning. to see
Starting point is 00:28:08 what are the necessary operations and ignore all of the unnecessary ones. And, you know, so having practiced it for years, I find when I write code, I tend to write it generically as a matter of course. Just because it helps me distill it down to like, what are the essential properties?
Starting point is 00:28:33 And if I'm writing it in those terms, that I'm not distracted by properties that are not essential and I'm less likely to be confused about what I'm doing. So I think there might be a bit of a learning curve there, but in general I think doing proper generic programming is easier.
Starting point is 00:28:58 You know, there's also a reliance on whole part relationships and mutable value. semantics and internalizing those concepts means you're never confused about object ownership or about invariance being violated because you called some function in the middle of making a transformation in the middle of a class or threat safety all of those concerns drop away and it promotes local reasoning now it's um i i've always sort of mentally thought that generic programming might have a higher upfront cost,
Starting point is 00:29:42 but that writing generic code is more sustainable and more scalable, that it holds up better over time. And that's why I tend to write things generically the first time. Although I've certainly heard the criticism made, and I certainly have written code that is maybe over-generalized or over-engineered, and I feel like that's one of the challenges is to know, is to figure out how to define the scope of what this operation or entity needs to handle.
Starting point is 00:30:17 And that's part of this figuring out the constraints and the requirements of the code that you're trying to write. The constraints and the requirements and the piece that I think is far too often ignored is figuring out what are useful models. of your concepts. And then once you've identified some useful models, figuring out what are those models inherent properties
Starting point is 00:30:44 because you basically get those properties then for free. Right. And even I covered it in my talk, there's confusion about just the basic idea of regular. We tend to slice it up. And part of that is because we have a limited vocabulary within the language for how we specify these things. So there's no way to say that something,
Starting point is 00:31:05 that is copyable, it's required that the copies are equal without requiring the implementation of equal, equal. And I tend to bias on just implement the missing functions on your types, and then go ahead and require them. So I would be a little more opinionated if I were in charge of the standard and there would be a concept regular at the root and we wouldn't have concept copyable, concept movable, concept equality comparable. Those are just all regular, and those are required on most types.
Starting point is 00:31:42 And so that you would require that everybody, you would require that everybody provide all those things. Yeah, everybody implements them. Now, that would be much easier if we actually had good default implementations that you didn't have to actually write the code. So that's the direction I take it in, and that's, you know, large, the direction we've been pushing with Hylo is, you know, we just assume regularity. I am
Starting point is 00:32:11 sympathetic to the way that the standard structures it today because I have certainly been burned by places in the standard where you are required to provide a certain thing in particular. I'm thinking of like curroutine handle. Like there's a
Starting point is 00:32:32 bunch of the exception and error handling functions where you have to provide a definition and you get a compilation error if you don't because this is not a concept thing. This is like a compiler. It's a compiler thing. Yeah, yeah. It's also just like it's this magic type that compiler knows about. And
Starting point is 00:32:48 like I just wish that there was a default and the default could have been just like terminated or something but like if I'm just playing around with a curroutine I don't want to have to define the error handling, the exception handling, you know, a piece of it. And it always, it's pained me that we've made those required functions instead of being like let's have a default
Starting point is 00:33:08 and and I mean perhaps if we just had more defaults and better defaults it would be easier for us to define whole concepts instead of these sort of piecemeal I don't know what you call copy constructible but you alluded to that it's not really a concept in your talk yeah yeah it's a it's a It's a concept fragment because the concept by definition is a set of connected axioms. And you can't talk about something being copyable without defining what copy means. And to define what copy means, you have to talk about equality. Ah, yes. Right?
Starting point is 00:33:46 So, yeah. And there's so many places where these properties compose, right? If all of your parts are copyable, the whole is copyable. of your parts are movable, the whole is movable. So, you know, if all of your parts are ordered, you can at least provide a lexicographical ordering by default. So, so there are reasonable defaults for most of these, most of these cases. These things compose pretty well. so, you know, a lot of the pushback on some of these things from the Standards Committee
Starting point is 00:34:33 has been well, we don't want a default or we don't want a default that's confusing but if you kind of step back to first principles, I don't think the defaults are confusing and they compose well. Wait, wait, wait, wait, or do you want to do this outside? Wait, so the silent hero of this episode has been Kuhn, who's been,
Starting point is 00:34:52 Thank you for driving us. I assume everyone mentioned that the bus we missed. I mean, you can grab your stuff out of the back. But if you want any final things to say, here's your moment, the silent hero of episode, whatever, 260, whatever this is. It's been my pleasure. Happy to help. All right, thanks so much, Kuhn.
Starting point is 00:35:11 I think we are trapped too. Be sure to check these show notes, either in your podcast app or at ADSP thepodcast.com For links to anything we mentioned in today's episode, as well as a link to a get-up discussion where you can leave thoughts, comments and questions. Thanks for listening. We hope you enjoyed and have a great day. Low quality, high quantity. That is the tagline of our podcast. It's not the tagline. Our tagline is chaos with sprinkles of information. We'll see you next year.
Starting point is 00:35:37 All right, Coon, you're a lifesaver, or at least you saved half of us, and we'll see you again. We've got to come back now next year because you're our most. We've had a few different listeners on, But none is a story to journey as yours From recording to We've never recorded in a car before I don't think there's also There's a Belgian C++ You know
Starting point is 00:36:01 That's what actually I was thinking I think we should Not focus on conferences so much And just start We should do a circuit of Stockholm Has this Sweden C++ Hit up the Copenhagen Hit up the Belgian one
Starting point is 00:36:12 Yeah I know the organizer of the Belgian one Is it you? Okay No I guess I know the organizer It's me No
Starting point is 00:36:20 Well maybe that's the Maybe that's a, maybe we can do that after some conference next year. Something more reason to be, yeah. All right, get them to say. Thank you so much. Let's see.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.