Matt Godbolt: Hey, Ben.
Ben Rady: Hey, Matt.
Matt Godbolt: How are you doing?
Ben Rady: I'm all right. Yeah.
Matt Godbolt: Someone tweeted me the other day or whatever. Social media interacted with me the other day and said, Matt, we listen to the podcast and we want to know, how are you?
Matt Godbolt: And it took me a long time to realize what they meant. And now, having just said this to you, so I'd like for the record, I'm doing great.
Ben Rady: Uh-huh.
Matt Godbolt: Thank you very much.
Matt Godbolt: Even though you never asked me, you meanie.
Ben Rady: All right.
Ben Rady: I don't care. That's not why I come to this podcast.
Matt Godbolt: Excuse me. Oh, gosh. Well, I say I'm doing fine, but obviously I...
Ben Rady: Yeah, and then you're dying. See, you're lying to our audience right now. You're saying like, I'm fine, but really you're dead.
Matt Godbolt: I'm sorry. No, I've got a cold. I've got a bit of a cold going on here. As we were discussing in the pre-chat, I've been spending a week at a conference with 700 other people and worrying about talks and going through the emotional rollercoaster of presenting them.
Matt Godbolt: And then the recovery where you go and relax at the very end. I had the last talk, right? So I had to worry about it the whole way through. And then I relaxed, got on a plane, came home to my family and promptly came down with a cold. So, you know, that's just how it is, right?
Ben Rady: Yeah, well.
Matt Godbolt: But it was a great time. I'd recommend it. Go to conferences, people. It's fun. It's fun to meet people and see them in the flesh as other beings, unlike this.
Ben Rady: Three dimensions or perhaps four dimensions, depending on how many dimensions you want to measure.
Matt Godbolt: That's true. I guess it took long enough. We can measure the fourth dimension in that.
Ben Rady: What was the fourth dimension of your talk?
Matt Godbolt: The fourth dimension. Whoa.
Ben Rady: How long was it?
Matt Godbolt: Oh, well, I had a few. I kept saying yes to people, which... See, this is the problem, Ben. As you know, I have had a lot of extra time on my hands as I haven't had anything to distract me during the day, which means that the back of my mind, I think there's no excuse not to say yes to everything that anyone brings up.
Ben Rady: Yeah.
Matt Godbolt: But there is a reason to say no occasionally, as I've now discovered, because otherwise you burn yourself out. But nevertheless, I had a great time. I had three talks And I was on two panels.
Matt Godbolt: So pretty much.
Ben Rady: Oh, wow.
Matt Godbolt: And then they wanted me to appear on a third panel. And I like, no, that would mean literally every day of this five day conference, I'm doing at least one thing. And I just want to have one day where I haven't got anything to worry about primarily and selfishly.
Ben Rady: Mm-hmm.
Matt Godbolt: So the night before that, I can go to the bar and have a couple of drinks without worrying about being hung over the next day.
Ben Rady: Mm-hmm.
Matt Godbolt: which I did do, which was fun.
Ben Rady: Mm-hmm.
Matt Godbolt: that I met up with a colleague of ours in said bar and had a great catch-up and chat. But that's not what this is about. This was a great conference.
Matt Godbolt: So we're doing a podcast, I realize. I remember that because we're just chatting now. Like you and me would be chatting.
Ben Rady: Right. Well, this is every podcast as we just talked.
Matt Godbolt: I know, I know. But I was just going to launch into giving you a whole spiel about what it was all about.
Ben Rady: Well, I mean, that's as good of a podcast topic as any.
Matt Godbolt: I guess.
Ben Rady: You want to give a little recap of the talks, maybe for folks who haven't seen them yet, you can convince them to go be interested.
Matt Godbolt: Well, that's a good question. Well, first of all, I have just fiddled with these audio settings because I'm noticing my levels are really low here. So apologies to editor Matt that that could be, I mean, I look very small on here, but this is a new computer.
Ben Rady: Well, it's just the cold. It'll be fine.
Matt Godbolt: I switched to my desktop computer and, of course, every setting is different. Anyway, yeah, the talk. Well, I did three. One of them was a repeat of one I've already done before, although I took the time to bring it up to date with all the latest bits and pieces.
Ben Rady: Yeah.
Matt Godbolt: And it was open content. So they have these sort of open content slots where essentially if there's a space and you pitch a talk and no one else pitches a talk, you can just talk about whatever you like.
Matt Godbolt: It doesn't have to fit in with the call.
Ben Rady: Okay.
Matt Godbolt: They don't record it.
Ben Rady: Yeah.
Matt Godbolt: They just sort of give you a room and say "have fun", and they put it on the schedule.
Ben Rady: Mm-hmm.
Matt Godbolt: I did my JavaScript talk about emulating the BBC Micro, you know, my favorite computer.
Ben Rady: Mm-hmm. The Beeb.
Matt Godbolt: Absolutely. And I brought that sort of up to date slightly with all the things I've done subsequently. And more importantly, I went back over the slides and like, revamp them a little bit. Although I'd forgotten that to this is one of my oldest presentations. I first presented it like eight years ago or a version of it.
Matt Godbolt: And my ideas about color palettes have changed considerably as I've aged. And so it was all done retro style. So it's all black with like white computer fonts and it just, you can't read it on a projector.
Ben Rady: Mm-hmm.
Matt Godbolt: It's not visible. And the last time I had presented it was actually on one of those big LCD screens and it was okay on that.
Ben Rady: Mm-hmm.
Matt Godbolt: But on a sort of rear projector or front projector, the contrast is just too dire, right? There's just these very stark white on a black background that it's just too, too small.
Ben Rady: Yeah.
Matt Godbolt: So that's always something to bear in mind as a presenter is like, can it be read by the people in the room?
Ben Rady: Mm-hmm.
Matt Godbolt: But that went great.
Matt Godbolt: That was fun. It was easy. I'd done it before. And then I did a second one on Compiler Explorer and the features that you probably don't know about, which was fun for me because I got to actually play around with my own website and kind of go, oh gosh, yeah, we've got all these features, oh my god, I forgot we could do that. And half of these things are things I don't really know that well because I just merged them in and then go, that sounds great, whatever. But I haven't had a need to use the site all that much myself recently, obviously, as
Ben Rady: Mm-hmm.
Ben Rady: huh
Matt Godbolt: The sort of irony of Compiler Explorer is if I don't have a day job, I have all the time to work on it, but I don't have a need to use it.
Ben Rady: Right.
Matt Godbolt: So I don't really dog food it, right?
Ben Rady: Right. Wow. Yeah, that is a dilemma.
Matt Godbolt: It is.
Matt Godbolt: It is. Hello? Can I speak to Emma, please?
Ben Rady: Interesting.
Matt Godbolt: Yeah. Whoa!
Ben Rady: No, she's dead.
Ben Rady: Die, lemma.
Matt Godbolt: Oh, die. It's dial. I see.
Matt Godbolt: I'm dialing Emma.
Ben Rady: Yeah.
Ben Rady: Oh, dial Emma.
Matt Godbolt: Yes.
Ben Rady: That's a much better pun.
Matt Godbolt: As in to, you know, that's none of them are good.
Ben Rady: Mm-hmm.
Matt Godbolt: Like we're really, this is.
Matt Godbolt: But anyway, I got to spend an hour sort of just going through the UI and whatever. And people say, oh, can I see your slides? We sorry we couldn't make it. i'm like, there were three slides and they were basically prompts for me to then spend 15 minutes like poking around on the website and doing live demos, which is always a bit nerve wracking.
Ben Rady: Yeah, right.
Matt Godbolt: especially when the conference Wi-Fi is a little flaky because there's 800 humans packed into a small area all trying to like feed off the same infrastructure.
Ben Rady: Yeah, yeah.
Matt Godbolt: So it went okay.
Ben Rady: Wow.
Matt Godbolt: It reminded me, though, how massive Compiler Explorer has become and how lazy... I have been. So for example, one of the, like the configuration for the front end is like a JSON document that says, you know, here's a list of all the compilers, here's for all the compilers, here's all the libraries that that work on those.
Ben Rady: False.
Matt Godbolt: There's a sort of combinatorial thing going in and there.
Ben Rady: Yeah.
Matt Godbolt: And it's just one JSON document that is about, you know, 80 meg now compressed, which is a problem, right?
Ben Rady: Wow. Yeah. That's sizable.
Matt Godbolt: When you're on crap Wi-Fi. And so we've got some like ideas to you know either just-in-time load that, because you know if you you don't need to know every library for every compiler. It's only when you select the compiler in the dropdown, do you need to grab that?
Matt Godbolt: But obviously that makes it a lot more complicated in the front end.
Ben Rady: Right.
Matt Godbolt: Anyway, that came to bite me, because I'm certainly going, and the page should have loaded by now. And knowing full well what's happening behind the scenes is that like on the 56k modem,
Ben Rady: And right, right.
Matt Godbolt: the screeching is gradually bringing down this giant document. But anyway, it was fun to present.
Ben Rady: Yeah.
Matt Godbolt: It worked out pretty well. I had some panels on ai That was, that was an interesting one, actually the whole.
Ben Rady: Oh, yeah. yeah What were the panels?
Matt Godbolt: So the flavor of the conference, obviously it's a C++ conference, well, sorry, this was CppCon. Did I even say that? I don't even know that I did.
Ben Rady: I don't know if you did.
Matt Godbolt: So it was, it is CppCon.
Ben Rady: Well, we're saying it now, so it's been said.
Matt Godbolt: It was CppCon.
Ben Rady: Yeah.
Matt Godbolt: It was in Aurora, Colorado. And yeah, although the theme was not AI, there were a lot of AI talks, as there have been at other conferences.
Ben Rady: Mm-hmm. Mm-hmm.
Matt Godbolt: And I'd been asked to participate in a couple of panels discussing the use of AI. One in terms of just general, how do we effectively use AI for C++? And another one on how we might use AI-assisted debugging, which was more of a discussion with a vendor that had a plugin for their...
Matt Godbolt: They have a debugger, they're Undo who have this reverse time-traveling debugger, which essentially sort of emulates the CPU in some clever way. And that's not really what it does.
Ben Rady: Mm-hmm.
Matt Godbolt: It's a big disservice to what they're trying to do. But it lets you sort of backwards step. And so what you can do is you can kind of crash your program and then ask the AI, can you GDB and reverse back and look through the trace of instructions and try and work out where it went wrong.
Ben Rady: Mm-hmm.
Matt Godbolt: And that's kind of a cool technology. Anyway, so those panels were about that. And most of the pre-planning, I'll be honest with you, was how do we appropriately discuss AI in a sort of inclusive way that means that folks who might not like the idea of AI can contribute?
Matt Godbolt: And it was important, but nobody ventured a non-
Ben Rady: Yeah.
Matt Godbolt: That's not strictly true, but everyone was either neutral or positive towards the idea. There were a few people who asked questions that were clearly like, I'm not sure about this and that's fine, obviously.
Ben Rady: Yeah.
Matt Godbolt: But yeah, most people there were interested in how we might use it well, because it's here anyway. It's kind of the vibe that I got.
Ben Rady: Right. Right.
Matt Godbolt: Although again, there's a selection bias in the people who turn up to a panel on this type of thing. Probably pro, although I would have thought if you didn't like it and you wanted to publicly point out some flaws you might also turn up to such a thing. So yeah, it was interesting.
Ben Rady: Yeah. It's hard. It's hard to have that kind of discussion though. It's sort of like, here's a thing that might, people might hate. Why don't you, you know, come to the two minutes hate and you know, vent about big brother.
Matt Godbolt: yeah
Ben Rady: That's as good as I'm going to make that pun or reference, not really a pun, but like I, I could see a world in which anyone who would have like thoughtful, constructive things to say might almost be like,
Ben Rady: do I really want to go do this right now? Do I really want to get in an argument with a room full of people who almost certainly 90% of them are going to disagree with me? i don't know that I want to do that right now.
Matt Godbolt: That's fair.
Ben Rady: Right. You know?
Matt Godbolt: That's fair. But, you know, we thought about it and we planned for it so that we were able to hopefully give folks a place to say their two pennants and then talk about it, but it didn't it didn't happen.
Ben Rady: Yeah. Yeah.
Ben Rady: Yeah.
Matt Godbolt: And generally speaking, most of the conversations I had with people were how to use it rather than should we use it, which was an interesting thing.
Ben Rady: Right. Yeah.
Matt Godbolt: I wasn't expecting it. And then latterly, I had the last talk. And I was very pleased with myself, although Reddit didn't like my title when eventually it was posted.
Matt Godbolt: So most of these videos aren't out yet except for the keynotes.
Ben Rady: What?
Matt Godbolt: So the keynotes got published pretty much as they finished.
Ben Rady: Mm-hmm.
Matt Godbolt: So that one is up. My last one is up - [Editor Matt says: https://www.youtube.com/watch?v=zoYT7R94S3c]. And yeah, the biggest thread on the Reddit post where somebody had posted it, I didn't even know it was up. You know, I only discovered it when someone added me on the Reddit thread. I'm like, what? Oh, oh, I see. Oh gosh. And they were essentially saying that the name was stupid because it didn't tell you what the talk was. And I'm like, I don't write the talk name for the YouTube video. I write it for the people who are at the conference and the people at the conference, they don't have to come to my talk because it's the keynote. It's the closing keynote,
Ben Rady: The title almost doesn't matter.
Matt Godbolt: Yeah, it's like you're going to be stuck in a room with me and I've got 90 minutes to talk to you and you can't do much about it other than to walk out.
Ben Rady: yeah
Matt Godbolt: Which I'm glad to say most people did not walk out on my talk. Some people left and I like to think it's because they had planes to catch, but I could be wrong. Not everyone's going to agree with everything I say and I try not to
Ben Rady: Yeah.
Ben Rady: I doubt that they walk. I doubt that there was any huff involved in their walking out.
Matt Godbolt: I hope not. I like to think not as well. But the controversial name was C++: Some Assembly Required.
Ben Rady: Yeah.
Ben Rady: Oh, that's a good name.
Matt Godbolt: See, I thought so. I was so pleased with my little self.
Ben Rady: Reddit is dumb. That's a great name. Some assembly required is, that's
Matt Godbolt: Obviously, I mean, Reddit is on point. To be fair to the people on Reddit, the comment was, it doesn't tell me what the talk is. And I'm like, well...
Ben Rady: sure, but it's an objectively awesome name. So, I mean, what do you want?
Matt Godbolt: You're very kind to me and we think very similarly. So I have to take that with a pinch of salt, although I am thankful you said that. But no, Reddit is correct, but that's the point of it. My idea was, and it was accused of being clickbaity, but it's not clickbaity because I didn't even think about it going on YouTube.
Matt Godbolt: Anyway, but yeah, the idea was, and you know folks can go find it.
Ben Rady: Yeah, whatever.
Matt Godbolt: on the interwebs now on the YouTubes. It is me 100% thinking, well, everyone's going to come to the talk anyway, so no one's going to read the abstract, which was correct.
Matt Godbolt: Nobody read the abstract. And of course, if there's Godbolt up on stage talking about assembly, it means one thing, right? And some assembly required, he's going to stand up there.
Ben Rady: Right.
Matt Godbolt: He's going to preach to us about how everyone should learn assembly. And I do. Yeah. And I spend 25 minutes with a little bit of back history as to why I think the assembly is important to me, including some very dodgy photographs of me as a kid and some other very self-deprecating pictures, which you just kind of have to see.
Ben Rady: Wow.
Matt Godbolt: And I eventually show, I talk about assembly and all of its forms. I actually show a new feature in Compiler Explorer that I added in and I live deployed on stage, although...
Ben Rady: wow
Matt Godbolt: Yeah, I know that's confidence in my deploy ability there. I've learned that from a friend of mine.
Matt Godbolt: And then I kind of go to the next slide. I'm like, well, this is awkward. We seem to have finished a little bit early and I've got like 45 minutes of time left.
Matt Godbolt: And then I go back to the definition of assembly, which I showed earlier and just show that there's loads of definitions of assembly, one of which is assembly language. And we talk about assembly language. And then I basically go through the other five definitions of assembly and show how they are also incredibly relevant to C++. So there is the assembly of you know like a group, a regulatory body is an assembly.
Ben Rady: Mm-hmm.
Ben Rady: Hmm.
Matt Godbolt: So, for example, like in Britain, that there's the Welsh assembly.
Ben Rady: Okay. Yeah, that's cool.
Matt Godbolt: There are various assemblies around. And obviously, that means you know the C++ committee that defines the language.
Ben Rady: Mm-hmm.
Matt Godbolt: So we talk about how that fits in, how it's structured, how it fits. We talk about assembly, meaning the process of putting things together or an assembly, which is, you know, like a set of parts that have been put together.
Matt Godbolt: So there's all these different aspects of it and all of which are really relevant to C++. So let me explore and just basically do a big community hug of like, this is great. We've got a load of cool bits and pieces going on in our language. And then at the end, a call to action to say, hey,
Ben Rady: Mm-hmm.
Matt Godbolt: Let's keep this up. You're sat there in the audience. You're sat there on YouTube. You can join in. Go to a local meetup. Because also an assembly is like a congregation of people in one place for a purpose.
Matt Godbolt: And I'm like, point at the audience.
Ben Rady: Right.
Matt Godbolt: Like, you're here. Right. This is, we are in an assembly right now.
Ben Rady: Right.
Matt Godbolt: So anyway, that's what I thought it was cool. I thought it was a good double meaning. And it was 100% for the people in the room. And then hopefully people looking at the YouTube video afterwards will...
Matt Godbolt: enjoy it. But that was not the intention as such. You know, obviously, you hope people will like it.
Ben Rady: I think, I mean, that sounds like an awesome talk.
Matt Godbolt: But you forget how much work it is, right? It's so tiring, and I'm so glad I didn't have a real job while preparing for it.
Matt Godbolt: I mean, especially these, I mean, I don't, when was the last time, if you don't mind me asking, I know you have given presentations, you've given them at work and all that kind of stuff, but they're much more informal when we give them at work.
Ben Rady: Yeah.
Matt Godbolt: You know, I don't tend to practice them when I do a work, but what's your process?
Ben Rady: Yeah. So the trap that I had kind of fallen into, I have to say is that, you know, when I was consulting, like part of your job is giving talks, right?
Matt Godbolt: I suppose so.
Ben Rady: Like that's sort of the deal, right?
Matt Godbolt: You're kind of always presenting, you're always on a show.
Ben Rady: Like you have tons of opportunity to practice, right. Where, you know, pretty much go-to, and I mean, this is like circa 2008, so I'm sure things are completely different now.
Ben Rady: But the go-to tactic for most of the business development and salespeople that I worked with was stealing an idea from Jerry Weinberg and to be like, give your best ideas away for free.
Matt Godbolt: Thank you.
Ben Rady: That's how you get a job as a consultant, right? Like you have some company that you're working with that has some problem. Go tell them how to fix their problem for free over lunch. Just do that.
Ben Rady: And they will inevitably hire you because they're like, that sounds great. We don't actually know how to do that.
Ben Rady: So, you know, you have lots of opportunities to present on various ideas. And then, you know, you can do these at conferences, you can do them as what are essentially sales pitches.
Ben Rady: And you just get good at it because as you know, like a lot of a talk is just giving it over and over again and refining the material. It's a little bit like standup comedy, right? Like you just got to like, you know, do it and refine it.
Matt Godbolt: Yeah, yes, exactly.
Ben Rady: Right. Yeah.
Matt Godbolt: 100%.
Ben Rady: Yeah. So I've fallen out of that a little bit. And, you know, as you know, I've been trying, I had tried to kind of do some of these things at the various companies that we worked at, in some ways because I had a lot of good material, in some ways because I wanted to keep the skill up.
Ben Rady: But I will say that in the last, you know, 15 years since I've been consulting, that has atrophied a little bit.
Matt Godbolt: Right.
Ben Rady: And I don't really, and COVID didn't help either. And so I don't know. I feel like I probably have some sort of talks in reserve in the bank, essentially, that I could go out and give in a public forum.
Ben Rady: But I don't really have a good sense of what the best forums would be, right? Like local conference, national conference, which ones?
Ben Rady: I spoke again, years and years and years ago at a conference called No Fluff, Just Stuff. And I remember that
Matt Godbolt: I've not heard of that one.
Ben Rady: Yeah. I remember that pretty fondly. There were some, the organizers of that conference, really great. A lot of great speakers there. You know, I spoke at like the agile conferences back when agile was not a stupid idea.
Ben Rady: You know, you can just go back in our podcast history and get all my opinions on that.
Matt Godbolt: ah Wow, that's a sentence.
Matt Godbolt: Fair, fair point.
Ben Rady: Go ask James Grenning, one of the signatories of the Agile Manifesto, what he thinks of it.
Matt Godbolt: One of our
Matt Godbolt: and podcast guest as well.
Ben Rady: You can,
Ben Rady: Yeah, that's right. Just go listen to that episode and that will tell you everything you need to know. But, you know, it's like there were some of those conferences that I went to and liked, but it's like I don't feel like I have a good sense right now of for this talk, which I could probably just give at the drop of a hat right now, right? Like just fire up the slides and talk for 60 minutes and it'd be great.
Ben Rady: Where is the audience for this talk? What conference should I go to to give it? I don't really have a good sense for that.
Matt Godbolt: Right. Right. That's interesting because actually somebody did make the suggestion, Hey, have you ever considered doing like a live recording of Two's Complement? Maybe you could come to CppCon next year and do one there.
Matt Godbolt: I'm like, well, this isn't a C++ podcast. It never has been.
Ben Rady: Yeah.
Matt Godbolt: And it's not the kind of place that you would hang out at. And, you know,
Ben Rady: I mean, and maybe.
Matt Godbolt: I know, but a week off or whatever it would be to do to immerse yourself, that seems a bit much.
Ben Rady: Yeah, that's true. week would be a lot. Yeah.
Matt Godbolt: You know, something like the GOTO Conferences or something that's a bit more across industry would make more sense, I think.
Ben Rady: Yeah.
Matt Godbolt: so
Ben Rady: Yeah, GOTO is in Chicago too, right?
Matt Godbolt: They have them everywhere, but there is one in Chicago, yeah which makes it significantly easier to go to.
Ben Rady: Yeah.
Matt Godbolt: Yeah.
Ben Rady: Pun intended.
Matt Godbolt: Pun retrospectively intended.
Ben Rady: Well, if an organizer at the GOTO conference wants to invite me to the next one in Chicago, I will gladly attend, but,
Matt Godbolt: And give one of your talks. What talk would you give? You've sort of alluded to, and you have some, you know.
Ben Rady: You know, there's obviously a whole bunch of talks on testing and I could give any one of those. I feel like that might be a little too on brand for me.
Matt Godbolt: Right.
Ben Rady: Um,
Matt Godbolt: Your whole deployment-based thing sounds like there's a, you know, like branch-based deployment thing sounds like there should be.
Ben Rady: You know, I don't actually have a talk for that. And that would be a great example of something where, you know, and I'm sure you've never done this where you sign up to do the talk and then you're like and what am I going to talk about again?
Matt Godbolt: Absolutely never done that. Nor did that this time specifically either.
Ben Rady: Never done that once before. um
Matt Godbolt: No.
Matt Godbolt: Wasn't on holiday in Costa Rica freaking the hell out going, what the heck am I going to talk about for two weeks going, yeah, yeah.
Ben Rady: Yeah, but that.
Ben Rady: Yeah. No, that would be a good one. Actually, that would be a good talk.
Matt Godbolt: Well, let's fill in the form right now. We'll speak to, I think, one of your current colleagues, I think, has a very good contact with
Ben Rady: GOTO Chicago.
Matt Godbolt: at the GOTO conferences.
Ben Rady: When is the next one in Chicago?
Matt Godbolt: I don't know. Was it this year? I don't know. Where was it last year? I know it was basically down the road from the office.
Ben Rady: Yeah, there's one in 2024. So last year. Yes.
Matt Godbolt: All right. Maybe there's another one this year.
Ben Rady: At the Sears Tower. I don't care what this website says.
Matt Godbolt: Exactly. The Willis Tower.
Ben Rady: No, that's not what it's called.
Matt Godbolt: See? No, it is called...
Ben Rady: Nope.
Matt Godbolt: Now we're into extreme Chicago lore here for our our listener.
Ben Rady: That's not the name.
Ben Rady: That's, it's the Sears Tower and
Matt Godbolt: Although I've been also told that we have more than one listener now by many people. So we should probably stop, three or four, I think.
Ben Rady: three, four.
Matt Godbolt: That seems ah reasonable approximation.
Ben Rady: Yeah. Yeah, that would be good. I would definitely enjoy that. That would be fun. And maybe now that I have a,
Ben Rady: half of an empty nest or is it half full? I can't tell. I could maybe find a little bit more time to travel and go to some conferences that are not in Chicago, but.
Matt Godbolt: Well, that would be cool either way. But no, I think there's definitely a market for your brand of delivery and content.
Ben Rady: Mm-hmm.
Matt Godbolt: So that would be interesting to see.
Ben Rady: Mm-hmm.
Matt Godbolt: But yeah, so the short answer is you haven't really given a formal presentation, like formal, for a vertical since I've known you.
Ben Rady: I haven't given a presentation at a conference since 2013. Yeah.
Matt Godbolt: Which is a very long time ago.
Ben Rady: Yeah, I think 2013 is the most recent one.
Matt Godbolt: Gosh. Yeah.
Ben Rady: Yeah.
Matt Godbolt: And yeah, from my own experience, like giving a presentation internally is like, all of these things, you're kind of giving a presentation to people who are on your side.
Matt Godbolt: But most people are coming along.
Ben Rady: Oh yeah. It's way easier. Way easier.
Matt Godbolt: And it's also true I've discovered at conferences, and maybe that's just because of who I am and it's luck, but I think generally speaking, when I go to see somebody, I want to see them succeed.
Matt Godbolt: I don't go to a conference talk that sounds like, I bet this person doesn't know what the hell they're talking about, and then I stand there with my arms folded in the front row, grimacing every time they make a mistake and then put that, you know, that's not how it is.
Ben Rady: Right.
Matt Godbolt: It's mostly I want you to both entertain and teach me something that I didn't know or make me think about something in a different way. And so I'm on the side of the presenter.
Ben Rady: Yeah. Yeah.
Matt Godbolt: And
Ben Rady: Although I will say that one of the skills that you do have to have speaking at conferences is to be able to deal effectively with people who are essentially trolls and you don't get that. It depends on the size of the room, right? Like if you have like a thousand people in a room, you're not going to get that.
Ben Rady: If you have three people in a room, you're all like doing a lightning talk or something like that. You're probably also not going to get that. It's sort of like that group that's in the middle where you get the one person that, you know, wants to do stuff that's not really helpful for anybody.
Ben Rady: And they're asking you questions and there is a little bit of an art. There's a little bit of an art to just sort of delicately being like, well, why don't we talk about this after everyone has left here or something?
Matt Godbolt: Yeah, that's the crowd control aspect is a little bit of it, but so
Ben Rady: Yeah. Yeah. And you don't really get that in an office setting, right? Like, or if you do, that's, yeah.
Matt Godbolt: You could actually talk to someone. Yeah, there are people there who are.
Ben Rady: Yeah.
Matt Godbolt: Yeah, that's interesting. Going back to your point, actually, I did think, you know, like definitely when I practice and I do
Ben Rady: It's very different.
Matt Godbolt: practice, I'm sure you do as well, but I don't feel like the internal company ones.
Ben Rady: Mm hmm.
Matt Godbolt: I think that's what I was going to come around to is the fact that like, you know, for a 90 minute keynote, every time I practice, it's two hours at least because it takes longer to practice.
Ben Rady: Yeah.
Matt Godbolt: because I'm taking notes and I'm talking to my darn self in my basement.
Matt Godbolt: Right. Or I'm sat up here staring out into space and pretending that I'm talking to someone or I'm walking the dog, honestly, with my headphones in so I don't look completely crazy.
Ben Rady: Mm hmm.
Matt Godbolt: So people think I'm talking to somebody.
Ben Rady: Yeah.
Matt Godbolt: And the whole process, you realize, gosh, this takes a long time, right?
Ben Rady: Yeah.
Matt Godbolt: And, you know, it's the same thing that my kids have with their music practices. It's like it's really easy to be good at the beginning because you start at the beginning every time and then maybe you run out of time or you realize there's a mistake.
Ben Rady: Mm hmm.
Matt Godbolt: And so you start again. You start again from the beginning. And so the beginning is good.
Ben Rady: Yeah.
Matt Godbolt: And that's a great start, right? There's nothing better than standing up on stage and going, like, I have the first 30 seconds of this absolutely nailed.
Ben Rady: Yeah.
Matt Godbolt: And now once you've done that, the nerves start to go.
Ben Rady: Yeah.
Matt Godbolt: Everything starts to fall into place.
Ben Rady: Yeah.
Matt Godbolt: Everything's good again. But it does mean that you start getting towards the end. You're like, oh, this is slightly, I can't remember. And, you know, it's 90 minutes in, potentially. If you're still talking about these things. But yeah, I'm just saying it's a big investment of time to get something up to the sort of level of polish that one would like it to be.
Matt Godbolt: And then you you mentioned about stand-up and like you know you say it out loud and like I say out loud.
Matt Godbolt: I try and imagine what people are thinking or sometimes I even record them and play them back, which is awful. And you get a sense of like what works, what doesn't work. And when you start saying stuff, do you like tangle yourself up in it and in words and kind of go down a rabbit hole and go, okay, note to self, don't start going down that thing because that's a whole other talk and you don't have time for that.
Ben Rady: Yeah, right.
Ben Rady: That material is not going to play in Peoria. Yeah.
Matt Godbolt: No. What?
Ben Rady: I forget where this is from, but it's just sort of like... I totally forget where this is from. I'm sure the internet knows, but it's like this just like comment about standup comedy routines. It's like, is it going to play in Peoria?
Ben Rady: Meaning it's sort of like, okay, you can, you can tell that joke in a comedy club in New York and people will laugh.
Matt Godbolt: But in the Midlands...
Ben Rady: But if you go on tour, is anyone going to actually think it's funny?
Matt Godbolt: Got it. Yeah. No, I kind of got the gist of what it was from the context.
Ben Rady: Right? Yeah.
Matt Godbolt: But yeah, sort of, yeah, as you say out loud, you kind of get a feel for it.
Matt Godbolt: You kind of build this sort of thing. You rearrange slides, whatever. But one difference with the thing you suggested about comedy clubs is that I don't know that if you're in a comedy club and you're standing up on stage doing improv, that the audience wants you to succeed necessarily.
Ben Rady: Yeah.
Matt Godbolt: right I do when I'm in a comedy club, but you know I've seen people have to put up with the drunk people who are just trying to like make a point that you you don't look the way that they wanted you to look or you're not saying the things that you would like to say or whatever.
Ben Rady: Yeah.
Ben Rady: Yeah. I mean, the incidence of trolls in comedy clubs, I would expect to be a little bit higher, but I think the fundamental dynamics are the same. You go to a comedy club mostly to laugh. And laughing is a little infectious and it's sort of like, you know, the more funny something is, the more funny it gets kind of stuff.
Ben Rady: And then there's also the people in the audience who are the hecklers.
Matt Godbolt: Right.
Ben Rady: And as we were just talking about, like that can also happen at conferences. I would totally grant that it's less, but it's not zero, right?
Matt Godbolt: It is not zero.
Matt Godbolt: Yeah.
Ben Rady: It's kind of like a percentage in both cases, right?
Matt Godbolt: I think, yeah, that's a very, that's a good point. I definitely have had, I think, yeah, we can both think of examples where people have said things like, and wait a second.
Ben Rady: Yeah.
Matt Godbolt: I don't know. This is not exactly a good faith question.
Ben Rady: Yeah. Just the complete non sequitur that is just trying to show off how smart they are or just trying to derail you or be like, have you read this thing about this thing? And it's like, no, I haven't.
Matt Godbolt: Oh yeah, this.
Ben Rady: Yeah.
Matt Godbolt: Kate Gregory, one of my favorite speakers, has this fantastic sort of preamble to her questions where she goes, remember, a question is where you ask something of me and I reply.
Matt Godbolt: That is basically just reminding people what a question is. She's even better, nicely put than nicely put.
Ben Rady: Oh my God, I'm going to have to go find a recording of her saying that and just internalize that.
Matt Godbolt: Yeah, she has this thing at the end and it's like, yeah. I mean, I again, I think as a
Ben Rady: I'm just going to quote her. I'm going to remind everyone of Kate Gregory's definition of a question, which is, you ask me something and then I say a response.
Matt Godbolt: Yeah, right. And just say like, hey, that's how that works. Right. and it's not
Ben Rady: That's what this is.
Matt Godbolt: This is not more of a question than a comment.
Ben Rady: Yeah.
Matt Godbolt: Right. More than a comment than a question. Sorry, whatever.
Matt Godbolt: Well, then, definitionally, not a question.
Ben Rady: Yeah.
Ben Rady: Yes.
Matt Godbolt: Go away.
Ben Rady: Yes.
Matt Godbolt: Yeah. We can talk about this afterwards.
Ben Rady: Yeah. The whole like four paragraphs of speech. And then have you thought about that?
Matt Godbolt: No.
Ben Rady: It's like before you said it, no, I hadn't thought about that.
Matt Godbolt: No. No.
Ben Rady: I'm not sure that I should, but you know, okay, sure. Fine.
Matt Godbolt: So, yeah, that was my week last week.
Ben Rady: Yeah.
Matt Godbolt: I've got a lot of interesting ideas to look into. Now, this week, you know that's the thing about conferences. They inspire you, and you're like, oh, this is cool.
Ben Rady: Yeah.
Matt Godbolt: I didn't think of that, right?
Matt Godbolt: So I watched some really cool and interesting talks on how Intel are writing libraries to do embedded software using the absolute latest features of C++.
Ben Rady: Yeah.
Matt Godbolt: And then they're showing that it can cut down the size of the firmware and make it very declarative instead of error prone. And that was cool because, you know, the received wisdom about embedded software is no, just write it in C and then it's better.
Matt Godbolt: And you're like, not so. That was fascinating.
Ben Rady: Mm-hmm.
Matt Godbolt: C++ is getting reflection, like proper reflection, compile time reflection.
Ben Rady: Ooh. Nice.
Matt Godbolt: And everyone was showing off tricks and tips about how to use it and even doing some things with reflection that kind of allow you to take a sort of object oriented-ish view of an object and turn it into more like a data driven thing where you've got instead of like one...
Ben Rady: Yeah.
Matt Godbolt: So for example, a particle, right? The classic example is I'd love in my OO world to have a particle which has an X, a Y, a velocity in X, a velocity in Y, a color, and a lifetime.
Matt Godbolt: And then, you know, I can draw a particle.
Ben Rady: Yeah.
Matt Godbolt: I can ask it to draw itself. All that good stuff, right? And the upside is it's easy to write. The downside is the performance. It could be better.
Ben Rady: Right.
Matt Godbolt: Right.
Matt Godbolt: You're wondering where I was going with that. Now you've kind of, oh, you did.
Ben Rady: Right.
Ben Rady: No, no, I knew exactly where you were going with that.
Matt Godbolt: I wasn't sure.
Ben Rady: That was my first job out of school actually is both creating and then fixing that problem.
Matt Godbolt: Yeah.
Ben Rady: But go ahead.
Matt Godbolt: Oh, that's fantastic. Oh, yeah, yeah, yeah.
Ben Rady: Yeah. Maybe that's another episode we could talk about one day.
Matt Godbolt: I think maybe so. I don't know.
Matt Godbolt: But that's good.
Ben Rady: Yeah.
Matt Godbolt: But yeah, that is where you start and it makes a lot of sense. But then CPUs don't like, or compilers certainly aren't necessarily very good at turning that into perfect code.
Ben Rady: Mm-hmm.
Matt Godbolt: It's much better if you can have all of the X's next to each other than all of the Y's next to each other, all the VX's next to one, all the VY's next to each other.
Ben Rady: Right.
Matt Godbolt: Then like the CPU can pick up giant slabs of X's and then giant slabs of VX's and add them all together at once and then store them back.
Matt Godbolt: And you're like, wow, this is amazing. But it makes you think about it in a very different way. And that's awkward because, you know, OO purism says, no, no, it's nice to have a function.
Ben Rady: Right. Mm-hmm.
Ben Rady: Right.
Matt Godbolt: The function says, you know, X plus equals VX, Y plus equals VY,
Matt Godbolt: color, whatever.
Matt Godbolt: And the, you know, I think Mike Acton gave a presentation probably 15 years ago at CppCon, I think the most watched CppCon video, where he basically explained the idea of data oriented design, which you know, most people who've done any kind of large scale, fluid dynamics or particle stuff has done before, certainly anyone in the games industry, like every particle system I've ever written has just been that way.
Matt Godbolt: But it was like, no, this is just how you should design your data this way.
Ben Rady: Yeah.
Matt Godbolt: And it was more less much more than I've just said. It's about reframing things around the way that data flows as opposed to the sort of conceptions that you put on into your code to make your code look nice.
Matt Godbolt: It's like, no, we'd code processes data.
Ben Rady: Right.
Matt Godbolt: So the data is is primary, not the code that does it. And you're like, oh, well, and I can have disagreements with that. You and I could have disagreements, but there are definitely times where it makes sense. Anyway, with this reflection magic, people have been able to show that you could kind of write it looking and acting for all intents and purposes like that.
Ben Rady: Interesting.
Matt Godbolt: The structure way, but then have it like auto-devolve into sets of arrays, parallel arrays or whatever, and have the relevant transformations happen.
Ben Rady: Yeah.
Matt Godbolt: And I was like, this sounds both very cool, but also mildly terrifying because you're starting to make the language rewrite itself as part of the compilation, which I already have certain issues with.
Ben Rady: Yeah.
Matt Godbolt: It's powerful. And I think once we get good ways of visualizing it and debugging it and stepping into code that maybe doesn't even exist because the reflection made it come into being by it going, oh, you know I found a field called x and now I'm going to add a function to this class called whatever.
Ben Rady: Right, right.
Matt Godbolt: I don't know. That's where it gets tricky. But that was definitely the vibe of the conference was that this is coming. It's pretty interesting to see where C++ is going with it. And yeah, I'd forgotten where I was going with this, the thread of it now.
Matt Godbolt: But anyway, I had a great time and I'm excited to give this a go.
Ben Rady: Hmm.
Matt Godbolt: I want to try it out with some of my emulators that have some things that I've been hacking around on that could potentially use reflection instead now.
Ben Rady: I would have to imagine, and you would know this better than me, that reflection in C++ would have a pretty significant impact on tooling, both developer tools and also kind of like deployment configuration type tooling where you know one of the classic problems is you introduce a bug into production that actually just lives in a config file and somehow people
Matt Godbolt: Yep.
Ben Rady: I feel like they're more okay with it when really the net effect is the same as, oh it's just a config problem. It's like yeah, but it's still a problem, right? Like you had the same result.
Matt Godbolt: Yeah. Right.
Ben Rady: It's just that it was in a YAML file instead of a CPP file, but it's like the same thing.
Matt Godbolt: Right, you still end up having to write, well, how do we fix this? Well, you write tests for it, just like you write anything else. And you make sure that you test your YAML.
Ben Rady: Yeah.
Matt Godbolt: Yeah. Yeah.
Ben Rady: Yeah.
Matt Godbolt: I don't know, in essence. So it is effectively, it's an extension of the way templating works in the compiler at some level. Right. So it is a hundred percent static. So there's no kind of weird poking back in type stuff that you might get from,
Matt Godbolt: Like the Java style of runtime reflection where you can do dependency injection in this kind of like exogenous way, or maybe even come in with a YAML file and like instantiate large swathes of the code sort of dynamically.
Ben Rady: Mm-hmm.
Matt Godbolt: So I think, I think we're, yeah, I think we're probably agreeing here.
Ben Rady: Mm-hmm.
Matt Godbolt: Like the debuggability for me is the bit that I'm most worried about because, again, there are aspects of this code that don't exist, potentially don't exist.
Ben Rady: Right.
Matt Godbolt: Now, in the first aspect of it, that's very limited. So there's something called template-for where I can like loop over statically and sort of stamp out copies of a piece of code.
Ben Rady: Mm-hmm.
Matt Godbolt: And I could sort of then loop over the members of this thing, right? So I can kind of reflect over the T, the type T that I've got and say, for all public methods, execute this body of code.
Ben Rady: Mm-hmm.
Matt Godbolt: And so you could like make it, you know, printf the name of that thing. And so that means that yes,
Matt Godbolt: That means that, yes, you don't see that code, like the literal code that you don't see stamped out, 10 copies, but you can at least read the loop. And so I guess it's looping over all the things.
Ben Rady: Yeah.
Matt Godbolt: So it looks a little bit like it's a loop. It's not really a loop because it's a loop at compile time that generates this stuff. But you can imagine as the sophistication of that grows, you might end up with pieces of code that are much more complicated, that, you know, do more, have more,
Ben Rady: Yeah.
Matt Godbolt: Far-reaching side of it. That's where it gets interesting for a start.
Matt Godbolt: And that's where you can start doing some really clever and cool things. But you really would like to be able to like kind of print out the code at that point and say, can you just show me what the code is at that point? And there are debug techniques where you could do that.
Ben Rady: Yeah, yeah.
Matt Godbolt: And at the moment, in order to actually use those more sophisticated techniques, the way that you achieve them is, in fact, to get the C++ code to print out C++. And then you recompile the C++. So it kind of becomes visible by the very fact that you have to do this intermediate step.
Matt Godbolt: That's not necessarily a bad thing.
Ben Rady: Yeah.
Matt Godbolt: But it's obviously a bit more awkward, right?
Ben Rady: Yeah.
Matt Godbolt: It's not like you know more general purpose metaprogramming where you can write a program that kind of assembles itself and then it evals itself in JavaScript to make a new program and you just carry on with it.
Ben Rady: Right.
Matt Godbolt: It's like, no, you can't do that yet.
Ben Rady: Right.
Matt Godbolt: But yeah, maybe that's a feature. I don't know.
Matt Godbolt: Anyway, I'm really lost in the weeds here, but it's a fascinating change in the way that C++ is going to be used, I think. And certainly just from you know the boring boilerplate of like, I need to serialize my class that has 10 fields.
Ben Rady: Yeah.
Matt Godbolt: You're like, well.
Ben Rady: Right.
Matt Godbolt: Or I want to write a debugger that just says, print out that object over here in a debug way.
Ben Rady: Yeah.
Matt Godbolt: And it's like, well, for all things, just print out the name of the thing and then print out the thing that it is. So you know, x equals x.
Ben Rady: Yeah. A lot fewer terrible regular expressions being applied to CPP files. A lot fewer people rolling their own parsers.
Matt Godbolt: In makefiles to try.
Ben Rady: Yeah, right.
Matt Godbolt: Exactly.
Ben Rady: Exactly. Yeah.
Matt Godbolt: Exactly. Yeah. And yeah.
Ben Rady: Mm-hmm.
Matt Godbolt: So there were some other people who presented tools that they're writing that do some of this stuff as well. And obviously there was a lot of cool stuff. And so I was pretty like, oh, C++ is alive and well and doing, you know, thriving if anything. So that was a pleasant aspect. And it's always nice to,
Matt Godbolt: hang out with a whole bunch of folks.
Matt Godbolt: There were a lot of like new grads or even folks who haven't graduated yet who were attending.
Ben Rady: Mm-hmm.
Ben Rady: Oh, wow, yeah.
Matt Godbolt: And I was so excited to meet them and hear how excited they are about it because I'm like, you know, this is great. There is fresh blood still coming in and they're interested in the kind of things that I was interested in when I was younger, you know, hardware and how things really work.
Ben Rady: Mm-hmm.
Matt Godbolt: And in fact, one of the questions I got at the closing keynote was, you know, how do we get more people interested in this?
Matt Godbolt: How are we not going to lose people? I'm like, I don't think we have to do anything. People who are interested in this will find their way. And like, there are literally two people standing in line for questions who I could point at who were like,
Ben Rady: Yeah.
Matt Godbolt: relatively young, 20 odd, not even graduated yet, who were going to ask questions about like how to do X or it just made me feel like, yeah, that people have found their way already.
Matt Godbolt: We don't need to go out of our way. Well, we make sure that the ground is fertile for them to come stepping into, but we don't have to go and abscond them off the streets and like point them at it and say, hey, come do this.
Ben Rady: Right.
Matt Godbolt: They find it. And as long as the community is welcoming, they will find their people.
Ben Rady: Yeah. Yeah. To to ah maybe tie this back to to conferences for a second. You just got to do the Pac-Man thing, right?
Matt Godbolt: Yes.
Ben Rady: Where you you have a group, you have a circle of people that are all standing around and you open a space in the circle so that anyone can come in. And as soon as they do then you just repeat that process and you just got to do that.
Matt Godbolt: It is such an important thing to do. And I think, yeah, we should probably end on that piece of life advice.
Ben Rady: And it makes a huge difference.
Ben Rady: Yeah.
Matt Godbolt: Because I do this now, even if I'm at a function with with my kids' like school or whatever, you end up in that little funny clique of like the four people that you know, yourself included.
Ben Rady: That's right.
Matt Godbolt: And then before you know it, you've made this sort of impenetrable wall.
Ben Rady: Yep.
Matt Godbolt: And you know that there is another person in that room who's like looking at the four of you going like... can I, and no, I shouldn't interrupt them. But if you're stood there like a Pac-Man with a big empty gap, they maybe will sidle up and then you'll be like, oh, hi, who are you?
Ben Rady: Right.
Matt Godbolt: And then you, as you say, you open the mouth a bit wider.
Ben Rady: Mm-hmm.
Matt Godbolt: And eventually, obviously you have to kind of bud off into multiple things and went to some sort of biology metaphor now of like, what is it called?
Ben Rady: Yeah.
Matt Godbolt: Mitosis or meiosis?
Ben Rady: Oh, I forget.
Matt Godbolt: Mitosis. One of the two. Anyway.
Ben Rady: But yeah, be kind to the obsessive compulsive people in your group who will be compelled to fill that space because they can't do it any other way.
Matt Godbolt: Ah.
Ben Rady: Welcome them in and then be like, I'm sorry, but I have to make another gap.
Matt Godbolt: That's yeah.
Ben Rady: And they were just like, Oh, okay, fine.
Matt Godbolt: That sounds cool. Yeah, all right friend, well we've been chatting away for a lot longer than I thought we would because you have very kindly listened to me jabber about this and you're a sweetheart. Thank you Ben, you're cool.
Ben Rady: Yeah.
Ben Rady: No, it's all good stuff, man. Also, that conference talk title is just the best and I don't care what anyone says. Yeah, that's the best.
Matt Godbolt: All right. Well, I will speak to you next time.
Ben Rady: Until next time.
Matt Godbolt: Yeah.
Matt Godbolt: Take care, friend.
Ben Rady: Yeah.