Algorithms + Data Structures = Programs - Episode 89: The Carbon Programming Language (Part 2)

Episode Date: August 5, 2022

In 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)
Starting point is 00:00:00 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,
Starting point is 00:00:52 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,
Starting point is 00:01:42 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
Starting point is 00:02:43 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
Starting point is 00:03:32 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,
Starting point is 00:04:00 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.
Starting point is 00:04:45 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
Starting point is 00:05:12 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,
Starting point is 00:05:44 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.
Starting point is 00:06:20 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.
Starting point is 00:06:48 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.
Starting point is 00:07:16 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
Starting point is 00:07:42 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?
Starting point is 00:07:59 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.
Starting point is 00:08:06 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
Starting point is 00:08:30 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.
Starting point is 00:08:57 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?
Starting point is 00:09:09 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.
Starting point is 00:09:20 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.
Starting point is 00:09:32 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
Starting point is 00:10:07 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.
Starting point is 00:10:44 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.
Starting point is 00:11:03 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
Starting point is 00:11:36 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,
Starting point is 00:11:56 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
Starting point is 00:12:15 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
Starting point is 00:12:45 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
Starting point is 00:13:40 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
Starting point is 00:14:56 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.
Starting point is 00:15:37 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,
Starting point is 00:16:10 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.
Starting point is 00:16:18 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.
Starting point is 00:16:40 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.
Starting point is 00:17:20 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.
Starting point is 00:18:06 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
Starting point is 00:18:40 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
Starting point is 00:19:26 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,
Starting point is 00:20:12 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.
Starting point is 00:20:42 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.
Starting point is 00:21:02 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.
Starting point is 00:21:31 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.

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