Conference Talks: Some Assembly Required - podcast episode cover

Conference Talks: Some Assembly Required

Oct 12, 202543 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Matt returns from CppCon with a cold, three talks, and a keynote title Reddit hates. Ben immediately declares Reddit dumb. The hosts discuss C++ reflection, the unforgivable renaming of the Sears Tower, and why conference attendees should stand like Pac-Man.

Transcript

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? 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. Even though you never asked me, you meanie.

Ben Rady

All right. 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.

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. 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. 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. It doesn't have to fit in with the call. They don't record it.

Ben Rady

Okay. 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.

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.

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

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

Mm-hmm. huh 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. It is. Hello? Can I speak to Emma, please?

Ben Rady

Interesting.

Matt Godbolt

Yeah. Whoa!

Ben Rady

No, she's dead. Die, lemma.

Matt Godbolt

Oh, die. It's dial. I see. I'm dialing Emma.

Ben Rady

Yeah. 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. 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? 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... 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? And it was important, but nobody ventured a non-

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. Yeah. 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, 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. 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. 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. 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. 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. 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. 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... Yeah, I know that's confidence in my deploy ability there. I've learned that from a friend of mine.

Ben Rady

wow

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.

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. 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.

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. 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... 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. 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. 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. And they will inevitably hire you because they're like, that sounds great. We don't actually know how to do that. 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.

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. 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. But I don't really have a good sense of what the best forums would be, right? Like local conference, national conference, which ones? 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. 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. 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 and podcast guest as well.

Ben Rady

You can, 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.

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. 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. so

Ben Rady

Yeah. 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. 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. 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 at the GOTO conferences.

Ben Rady

GOTO Chicago. 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, it's the Sears Tower and That's not the name.

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, 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. 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. 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.

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.

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 practice, I'm sure you do as well, but I don't feel like the internal company ones.

Ben Rady

It's very different. 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. 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. 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. And then you you mentioned about stand-up and like you know you say it out loud and like I say out loud.

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

That material is not going to play in Peoria. Yeah. Yeah, right. Yeah, right.

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? 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. 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. 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. 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. 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. 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. Well, then, definitionally, not a question.

Ben Rady

Yeah. 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? 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. 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. 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. You're wondering where I was going with that. Now you've kind of, oh, you did.

Ben Rady

Right. 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. 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. 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. Right.

Matt Godbolt

The function says, you know, X plus equals VX, Y plus equals VY, color, whatever. 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.

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. 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. 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. 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,

Ben Rady

Yeah.

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, 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. 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. 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. 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, hang out with a whole bunch of folks. There were a lot of like new grads or even folks who haven't graduated yet who were attending.

Ben Rady

Mm-hmm. 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? 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. 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. 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. And then before you know it, you've made this sort of impenetrable wall.

Ben Rady

That's right. 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? Mitosis or meiosis?

Ben Rady

Yeah. 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

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. Yeah.

Matt Godbolt

All right. Well, I will speak to you next time.

Ben Rady

Until next time.

Matt Godbolt

Yeah. Take care, friend.

Ben Rady

Yeah.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android