Algorithms + Data Structures = Programs - Episode 89: The Carbon Programming Language (Part 2)
Episode Date: August 5, 2022In this episode, Bryce and Conor talk about the new programming language Carbon.Link to Episode 89 on WebsiteTwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachShow NotesDate Recorded: 2022-...07-25Date Released: 2022-08-05ADSP Episode 88: The Carbon Programming LanguageCarbon Language: An experimental successor to C++ - Chandler Carruth - CppNorth 2022Carbon GithubCarbon on Hacker NewsCarbon Reddit ThreadC++ std::pairCppNorth 2022 Keynote: The Tragedy of C++, Parts One & Two - Sean ParentSean Parent: “Now What? A vignette in three parts” - C++Now 2012Kate Gregory on TwitterVal Programming LanguageThe Twin Algorithms by Conor HoekstraC++Now on Sea ConferenceCppNorth 2022: Programming with kids (and what’s in it for us!) - Fatemeh JafargholiScratchCppNorth 2022: Value Oriented Programming Par 1: Funcions - Tony Van EerdCppNorth ConferenceIntro 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)
Scrabble boy! Scrabble boy! Give me a word that starts with an L.
Call me Scrabble boy.
Welcome to ADSP the podcast episode 89 recorded on July 25th, 2022. My name is Connor and today
with my co-host Bryce Bryce, we continue part two
of our two-part conversation on Carbon, the Programming Language. If you haven't caught
part one, I would definitely go and listen to that first. Oh, right, right. You were talking
about all the complexity of writing a simple C++ function these days where you have to add in
concepts where no except, you have to write everything. And I think that pair example is a perfect demonstration of that. And, you know,
perhaps with time, any language would end up like that. But I, it was a very compelling argument
that we have added too much complexity to the language over the years by adding new features.
I, as a committee member, I see lots of people online say that half of the Internet says that the C++ committee is adding too many things.
Half of the Internet says that the committee is not adding things fast enough. And this is the first time that I really thought, yeah,
maybe we are adding too many things or maybe it's not that we're adding too
many things. Maybe it's that we're not doing a good job of them,
of adding them.
Well, his, he made a comment at one point, you know, that he just,
he just wants sometime in the next couple standards like
preferably the most the one that's getting released the soonest he just wants a way
to write a line of code and know that it'll get executed on a gpu he says today in c++
like you cannot know that or at least not like easily but but in c++, if you use parallel algorithms and you use NVIDIA's Nvc++ compiler, you're good.
But yes, I did find that particularly compelling.
And what Sean meant by that is he wants a way where you can explicitly say, run this in the GPU,
whereas the parallel algorithms don't tell you that. The parallel algorithms tell you that, you know, you can request parallelism, but not on a particular
execution context. But, you know, I do think that that is coming in the form of senders and
receivers.
Like an explicit standard way of saying GPU execution context, that might not, we might not have that until after the core senders and receivers.
But we are, we do have a plan for that.
We do have a plan for that.
But I completely understand Sean's frustration. This is a feature that will land in the the standard um you know a decade after it was
needed like first needed and that's juxtaposed with his graph that he showed um both in the
2020-12 talk 2012 talk and this keynote talk that he just gave of the you know composition of compute um and it breaks down
you know how much like where does the compute live and without breaking it down you know um
by every single thing he points out if you're just running a single core
uh application like you're accessing like you know just literally like less than a percentage
of the compute and like he said he didn't actually give an updated one
because he said computers are too complicated
with the way that they're doling out compute.
But basically like back in 2012, I can't remember what the exact number was.
No, no, no.
His point was that if you showed the updated graph,
there would be no point in it because the visual would,
you would only be able to see
the gpu oh was that his point yes all right that was his point i mean there there he did also make
a point that with with things like um ml accelerators and with things like you know the
the um you know ai flops um with that that are claimed by various uh companies including our
own it is sort of hard to figure out how exactly to measure um compute these days do you just
measure you know how many fp64 flops it can do do you just ignore the specialized hardware you know
so i think that was part of his point.
But I think his core point was
if you showed that graph today,
the performance would be like 99% the accelerator.
Right.
In terms of raw flops.
But, you know, most applications, you know,
are just not going to access the raw flops capabilities. Most applications are going to be, you know, are just, are not going to access the wall-flops capabilities. Most
applications are going to be, you know, some way memory-bound, either memory-bandwidth-bound and
memory-latency-bound. In some cases, compute-latency-bound. I like to describe it as
most applications are just a fancy form of memcopy. Most applications are just moving data around
and maybe twiddling a few bits somewhere.
And so from that perspective,
what percentage of flops you can access
maybe isn't the right metric.
But certainly for something like Photoshop,
which is a compute-heavy application,
that is what you would care about
yeah so i don't think the keynote uh for sean's will be it might be available by the time this
episode actually this one is i mean i hear that i think i'm pretty sure we know the conference
program chair right so we should be able to to make sure that the video is posted when this episode is up.
I mean, I don't have control over our technical people that are making the videos.
I'm not saying you have control.
I'm just saying you can send an email.
Anyways, Carbon.
Keynote.
Yeah, so the Chandler keynote is online.
Sean's keynote actually might be out because by the time part two of this comes out, which is the one we're talking in right now, it's very meta.
It'll be roughly two weeks.
So they might.
And even if they aren't, we'll update the show notes as soon as they do go online.
And by us, I mean me.
And we'll link the YouTube channel so that you can just subscribe and get notified as soon as the talks come online.
Anything else you want to say about Carbon?
We will bring Chandler or a representative.
You know who we should get?
We should get Kate to come on next.
Kate Gregory, for those that aren't operating in the C++ community because she was both attending, speaking,
helping organize CBP North
and is also on, what do they call it?
She's one of the three BDFLs of Carbon.
So she was on state.
Nope, not BDFLs.
She's one of the three members of the core team.
I mean, can't we call...
They are not benevolent dictators for life.
The core team will be rotated and there's not one of them and they don't have absolute control over the
project they can just decide between options that are presented to them they are in no way shape or
form benevolent dictators for life so they're benevolent they're benevolent painters i think
is the word that chand used. So benevolent painters.
Painters are for the people that pick names for things.
That's not the core team.
There's one painter.
That's my understanding.
So it's benevolent.
What do you replace the D with?
And what do you replace the FL with?
You don't need to.
I want to.
You don't need to.
It's a bad model.
It's an acronym.
It's not a model.
I don't know. I don't know. And what't need to. It's a bad model. It's an acronym. It's not a model. I don't know.
I don't know.
And what did you say?
They were core members?
Core team.
So they're benevolent core team members for an ephemeral amount of time.
Yes.
So what is that?
That's B-C-T-M-E-T.
That doesn't really roll off the tongue does it benevolent um deciders for now
except it can't be d because d is taken by dictator
yeah i'm trying i'm trying to create an acronym that will work for bdFL. Benevolent decider is for...
It should be... It's like a word that starts with L that's like a femoral.
It can't be the same acronym because that's not going to make any sense.
That's what we're doing.
We're not acronyming BDFL.
What's a word that starts with L?
We're creating a new acronym.
Scrabble boy.
Scrabble boy.
Give me a word that starts with L.
Call me Scrabble boy.
Yeah, it means ephemeral.
It's B something FN.
Benevolent something for now.
Leader?
Or it should just be T.
B-T-F-N.
Benevolent team for now.
Yeah, benevolent team for now.
With like a mini C
that we don't put in the acronym.
Sure.
Or you can just call it core team.
No.
B.
You know.
This is going to catch on.
We're creating a new acronym
that's going to become just as popular.
I disavow this acronym.
No.
Yes.
Yeah.
Is there anything else we want to say?
What are the, so, you know, I'll probably title these Rust, no, Carbon versus C++ versus Rust, because that's clickbaity.
Or is that bad?
Should we name it something else, these episodes should we name them uh that was a pretty good title just call it carbon
just go just carbon we should bring yeah we should bring kate on you know we don't have to do our
strategizing live no we don't but we're we do what we want um and and we should also bring uh sean on to talk about uh his keynote and also
um the vowel language which didn't get announced well we should bring dave on to talk about the
language because dave is the person that's the the creator okay we'll bring we'll bring everyone
on we'll bring kate on we'll bring sean on. We'll bring Dave on. Although Sean and Dave have already been on the podcast.
We need to diversify our people that we're bringing on here.
True story.
Bryce is on his phone right now.
How can you tell?
Because you're staring down at your hands.
And I assume you're not just... There's a dog here, dude. Which requires you to be at your hands. And I assume you're not just...
There's a dog here, dude.
Which requires you to be on your phone?
I'm not on my phone.
I'm petting the dog.
You literally just admitted to being on your phone.
You said, how can you tell?
Because I wanted to know why you thought I was on my phone.
Oh.
Looney, come here and be my alibi loony don't knock because then she barks hang on one second i have to figure out where my dog is
all right it's just me and you listener
probably probably why did you wake the dog up
what a guy
I'll tell you my co-host
she was asleep
and you woke her up
yes I did wake her up
but I need to know where she was
she figured out how to open the apartment door
today like twice in a row so but I need to know where she was. She figured out how to open the apartment door today,
like twice in a row.
So until I figure out how that happened,
I need to keep an eye on her.
We will put in the show notes,
picture of the dog,
very cute picture of the dog.
All right.
In our last few minutes here,
do you want to,
before we do our full blown CPP North review with Kate,
pending that she agrees to come on the podcast,
anything you'd like to recap from CPP North
outside of the Carbon keynote and Sean's keynote?
How did your talks go?
How was the food?
Apparently, I've just heard from everyone that like the
food was unreal and apparently that's what people care most about at conferences shouldn't you
shouldn't you know that because you as program chair would of course be at all the conference
functions and events you know like lightning talks and the dinners because you know like
maybe there was a lightning talk about
people running you know that's something that's really close to your heart you would you wouldn't
want to you really poorly executed that because like i would i thought i was like yeah okay i can
give my thoughts as well but i'm asking you but it only started to make sense what the point you
were trying to make when you got to the tail end of your explanation there was a lightning talk about running at c++ conferences but connor missed it do you listen
to do you know why he missed it because he was running at a c++ conference he went and did did
an 8k yes there was a 8k race and it that's not like a distance of race that i've heard of before like
i it's a number that i know it's actually typically the um men's cross-country distance
um why am i qualifying men because they have different distances and cross-country for
women and men which many people have been like, why? Every other event in track and field, it's not like it's the men's 100-meter dash and it's the women's 70-meter dash.
But in cross-country, for some reason, they decided to make them different.
Less important than the run was the fact that it was 34 degrees and felt like 40 and for our american listeners so yeah those are not 40 is i think roughly like
100 degrees fahrenheit um which which is very hot so okay google translate 40 degrees
fake temperature into american temperature no it doesn't understand me celsius to fill in light
it's 104 degrees which is very different than 100 degrees that's like i said roughly 100
i think the listener is impressed with my translation abilities anyways the point is it was ridiculously hot and um
yeah probably shouldn't be running races when it's that hot anyways i i agree i would prefer
you to not die that would be great but yes i did miss uh some of the some of the lightning talks um but anyways back to your cpp north review
go you got five minutes oh um i thought it was a great conference um
what else am i supposed to say um i really enjoyed your talk the 30 minutes for which I showed up because I thought it
started an hour later than it did.
So I went to the gym.
What a guy.
Let's see.
I did think the food was pretty, pretty awesome.
I appreciated that the food was clearly selected by somebody who loved canada there was like on the first day there were all
these like canadian snacks um and like canadian junk food and i just i appreciated the thought
they went into the little details i also really liked that all the organizers had like
full body tracksuits and don't worry,
listener,
there will be a picture of Connor in that sweatsuit.
Um,
uh,
on the,
in the show.
I mean,
I actually never wore the full sweatsuit.
Um,
but he's going to put the full sweatsuit on,
take a picture.
Absolutely.
Won't.
Um,
I think everybody wore the full sweatsuit except for me.
I just,
I can't wear pants in the middle of the summer that are like, I am a team player,
but, uh, I thought it was a strong program.
Um, yeah, there was a lot of talks that I quite enjoyed.
Um, hang on, let me, I have notes somewhere.
I have notes somewhere.
You went to the UK and, uh, you went to C on C, and we haven't even talked about that.
Which I also thought was a very well-executed conference.
I thought both CPP NC and CPP North were very well-executed.
I was very impressed with just all the details of the conference,
the AV setup, the catering,
just everything really well run.
And I liked the talks.
Yeah, everything about those conferences I was very happy with.
All righty.
Yeah.
What were your favorite talks at uh cpb north um because i i i know i saw talks that i enjoyed i'm just having trouble
remembering probably i mean it's not going to be interesting to the listener to say that sean's talk
um was probably my favorite.
It also probably was the most thought provocative because of one thing that he mentioned where
he said that C++ and VAL are both efficient by definition languages versus the other category of languages which are efficient by optimization.
And I had never heard that taxonomy of programming languages.
And I didn't get a chance to talk to Sean after his keynote
because I think he just crashed afterwards because it was a long conference.
And he even mentioned at the beginning of the talk
that he wasn't feeling super well
and went and did a rapid test, was negative.
So yeah, he didn't get a chance to talk to him right after.
But I think that's just, yeah, it's very interesting
what exactly does it mean to be efficient by definition.
We'll save that for a different podcast.
But I just think the idea is that you know well no we'll save it for this podcast a different episode oh did i say a different say that because connor has other podcasts
oh yeah we will we will talk about it on this episode maybe we'll talk about it when
when sean comes on um because yeah i do have questions about about that delineation or that taxonomy um
after sean's i really liked fatima's talk um fatima used to be my old manager at my first
company and she gave a talk called um i never got a chance to corner her and get all of the
young goner stories unfortunately um yeah i'm sure we
just have to come back to cpp north next year i heard she was considering submitting another talk
but her talk was about programming with kids and um she has a couple kids and has been sort of
testing out different programming environments like scratch with her kid and um had a bunch of basically links and recommendations for
a ton of resources that i had never even heard about um not that i have kids but um if at any
point i do it would be cool to experiment with those things i mean tony's talks are always good
he gave yeah i enjoyed His was very creative.
Yeah, had a bunch of Beatle references and lots of good laughs in his talk.
Looking forward to seeing part two of that one,
which I think he said offline
was going to be value-oriented programming part two types.
Wow.
Wow.
Way to spoiler Tony's talks, man.
I just gave the title. I didn't spoil anything.
That time I was definitely on my phone, and I'm going to admit to that because my phone was visible on the webcam.
But the dog is here. The dog is here. You see dog right there. There's a dog.
All right. Well, with that, I think it's time to wrap this up.
What I was going to say is that you missed my talk,
and I'm actually giving it live streaming on YouTube in T-minus 27 minutes.
Probably.
That's why you got to go.
Probably.
Well, I'll be in the gym.
So I guess I'll listen.
Just like send me a reminder.
Yeah, for those that are listening on
this podcast uh it's not 27 minutes from when this podcast correct it will have been like two
weeks ago but it'll definitely be in the show but wouldn't it be amazing if connor pulled that off
if if wouldn't it be amazing if 27 minutes from when you're hearing this
connor was live streaming?
Assuming that you listen to it.
I was going to say, you see what the obvious flaw with that is, is that most people do not.
Yeah.
But everybody, everybody, all of our listeners listen as soon as a new episode is published, of course.
I can guarantee you that that's definitely not the case.
But thanks for listening.
We hope you enjoyed and have a great day.