Algorithms + Data Structures = Programs - Episode 262: 🇳🇱 Chaos with Sean Parent! Bikes, Buses, Waffles & More!
Episode Date: November 28, 2025In 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)
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.
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.
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?
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
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
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.
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.
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,
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?
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.
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.
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
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.
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
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.
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
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
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.
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
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
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.
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,
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,
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?
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
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
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
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,
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,
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.
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,
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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?
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.
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.
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...
Oh, okay.
Can you help us?
Good, speak such.
Hey.
Is that a bus?
Yeah?
Yeah.
Come here.
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.
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.
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.
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.
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.
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.
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.
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
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.
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?
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.
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
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.
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.
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.
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.
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
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
Ah, yeah
Yeah
San Jose
Yeah
In San Jose
Yeah
Too bad we don't have
Letter checkettes right
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.
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.
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.
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.
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
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
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
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
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
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
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.
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,
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.
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.
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
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.
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
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
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
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
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?
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.
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,
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.
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
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,
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.
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
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
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
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
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?
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
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,
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.
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.
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
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
Yeah
I know the organizer of the Belgian one
Is it you?
Okay
No
I guess I know the organizer
It's me
No
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.
