Matt Godbolt: Hey, Ben.
Ben Rady: Hey, Matt.
Matt Godbolt: Let's try and make this sound really natural, because we can pretend that we haven't just been recording for 20 minutes and only to discover that the audio wasn't working.
Ben Rady: Uh-huh.
Matt Godbolt: And so we're starting again.
Ben Rady: Right. Yeah.
Matt Godbolt: um So this is going to sound really incredible. So: How are you doing, my friend?
Ben Rady: It's been a while since we've talked.
Matt Godbolt: It's been, yeah, like so many minutes.
Ben Rady: I haven't seen you in so long.
Matt Godbolt: Oh, boy. Everyone gets a very much a warts-and-all view of our our podcast, for you know, we've, you and I have always said this is low effort for us because otherwise we'd stop doing it.
Matt Godbolt: It's just, we don't want to like spend too much time on it, but we care enough to do it like somewhat properly.
Ben Rady: I think we got a good system.
Matt Godbolt: I think so.
Ben Rady: That's, that's the key. Yeah.
Matt Godbolt: It's working pretty well anyway.
Matt Godbolt: So a few minutes ago, we were just talking and I was saying to you how, how much, uh, when I ask you, how are you doing? It's more of a genuine question because these days I don't hang out with you half as much because....
Ben Rady: Yeah. I legitimately have not seen you in a while other than 10 minutes ago when we recorded this the first time.
Matt Godbolt: Well, we recorded the introduction that didn't work. Yeah. Oh God.
Ben Rady: Yeah. Uh-huh.
Matt Godbolt: but um And the TLDR, where the R of TLDR is record, too long, didn't record, um is I have moved on from the company that we both worked together at.
Matt Godbolt: And I am currently on a short break between jobs, and enjoying the good life. and working on Compiler Explorer. And it's of no fault of my previous employer.
Matt Godbolt: I still still think they're fantastic. And I know that you're happy there. And there's a lot of cool things going on there. But it was an opportunity for me to do something new and different. And I took it. And here we are. But we're still hanging out.
Ben Rady: Mm-hmm.
Matt Godbolt: And we're still recording a podcast. And we still have important and interesting things to discuss. And if anything, this means that we're less likely to accidentally leak company.... as I don't know anymore.
Ben Rady: Right, right, right. Yeah, actually. Yeah, a few people actually who who knew that you had moved to a new firm had asked me, like, are you guys going to keep doing the podcast? And I was like, absolutely. Like, this is my chance to talk to Matt every week because now I don't have the built-in one of you know riding the train home or whatever it might be.
Matt Godbolt: Yeah.
Matt Godbolt: Or, yeah, getting coffee or something.
Ben Rady: Yeah, yeah, yeah.
Matt Godbolt: Oh, well, we should we obviously can do still.
Ben Rady: Yeah.
Matt Godbolt: But yeah, I've moved on. I am i'm excited to do something new and different. And if you care about such things, you can follow me on bluesky or hackyderm or one of those things. And you can see what I'm up to there, but I'm not going to go into it here because this is not what this podcast is about.
Ben Rady: Mhm.
Matt Godbolt: This podcast is about you and me chatting about code and our our experiences coding and the things we like about coding and, er, today....
Ben Rady: Mhm.
Matt Godbolt: Again, it's so difficult to get excited about something we've just talked about and try and pretend it's new and fresh.
Ben Rady: Yeah, yeah, yeah.
Matt Godbolt: I was teaching a computer to program for me or asking a computer to program for me because I'm too lazy to program: I'm too old now.
Ben Rady: Right.
Matt Godbolt: I've forgotten everything.
Ben Rady: Uh-huh.
Matt Godbolt: I just ask it to do it.
Ben Rady: Yeah.
Matt Godbolt: It does it now. So so today's topic is is AI.
Ben Rady: Yeah. Uh-huh.
Matt Godbolt: What do we think about AI and programming and do we use it and whatnot? So, you know, I'll start.
Ben Rady: Yeah. So you said, chat GPT, please explore the compiles.
Matt Godbolt: That's right. That's pretty much a you'd be surprised to how much, uh, I haven't actually used it on Compiler Explorer very much.
Ben Rady: Yeah.
Matt Godbolt: Occasionally I do. So we, a few minutes ago, we were discussing that, uh, pairing with an AI is like sort of pairing with ah either a junior programmer was one sort of, uh
Ben Rady: Yeah, that was an observation that an ex-colleague of mine made once, which I thought was good.
Matt Godbolt: Or but you then said something which was more amusing and possibly true.
Ben Rady: Yeah, I think it's more like that's that's like not completely wrong, but I think a maybe better ah way to think about it it is a very senior programmer who is currently taking LSD.
Matt Godbolt: Right.
Ben Rady: um
Ben Rady: because you get a lot of like very interesting and cool things mixed with like, that doesn't work, that has never worked. And actually, now that I think about it, it could not possibly work.
Matt Godbolt: yes
Ben Rady: That happens too.
Matt Godbolt: Yeah, that does.
Ben Rady: Yeah, yeah.
Matt Godbolt: The "junior" thing, I think, rings home for me a little bit more. I mean, I have obviously seen it make up APIs that don't exist before now, but usually, usually a gentle nudge in the conversation window to say like, hey, I tried that and it didn't work.
Ben Rady: Mm-hmm.
Matt Godbolt: It's very apologetic.
Ben Rady: Mm hmm.
Matt Godbolt: And it goes, oh, sorry about that. Yeah, that's not the right thing at all. And you're like, okay, yeah, well, why did you tell me that?
Ben Rady: Mm hmm.
Matt Godbolt: But it seems like yeah a junior programmer who is incredibly voraciously learned everything that there can possibly be about all possible topics. So it's like one of those very keen people that has had no experience implementing anything.
Ben Rady: Mmhm
Matt Godbolt: So it's kind of like the the knowledge is amazing, but putting it into practice is difficult, the executive part of that.
Ben Rady: Yeah. Yeah.
Matt Godbolt: And that's how I found it. But yeah, we we were saying that like, you know, Um, if, if you've got like a knowledge deficit, like I have, so the things that I've used it for on Compiler Explorer is, so I've got CoPilot integrated into one of my IDs and I'll say, Oh, I don't know how to phrase this in TypeScript because frankly, I don't know TypeScript very well. And it's very good at saying, "Oh yeah, this is how you..."
Matt Godbolt: "explain this type to the system", and then and then you try it and it doesn't work and you say well that didn't work because of this and it goes oh oh yeah silly me and that's been very and it eventually gets there that has been very useful for me. What have your experiences been with using ai how do you use it if you use it?
Ben Rady: huh
Ben Rady: So Yeah, I mean, I have not done as much of, like I think there's three basic styles that I'm aware of, of let's call it AI assisted coding.
Matt Godbolt: Okay.
Ben Rady: The most basic form is um chat. So you just open a separate chat window from whatever tool that you know IDE or editor you're using and you just ask a question and it gives you answers, right?
Ben Rady: And there's a lot of, you know, maybe copying and pasting code depending on exactly how you do that, right?
Matt Godbolt: Well, so like I'm just going to pause you there because one thing I'd think I only became recently aware of is how much extra context, if you're opening up in say your IDE, how much extra context your IDE's like plug-in or whatever is sharing with the AI.
Ben Rady: Mm hmm. Right.
Ben Rady: Oh, yeah. Yeah.
Matt Godbolt: So like, I have been very surprised that it can look at my clipboard and kind of realize that I've selected, you know, even my X clipboard, i.e. the stuff I have selected in another application.
Ben Rady: Mm hmm.
Matt Godbolt: And it's like, oh yeah, yeah, yeah. You probably want to paste that stuff in. I'm like, oh, that's, that's creepy. So. that's I didn't realize that, but it's obviously valuable to the system. you know Here are the last three files I've been looking at.
Matt Godbolt: Here's the thing my mouse pointer is hovering over, a little bit of extra context, and then it it gives it a little bit more mind-reading ability than I perhaps was expecting when I'm just sort of chatting with it.
Ben Rady: Right, right, right.
Matt Godbolt: Separate two, if you open up ah a chat GPT window somewhere else in a web browser and then start asking it code questions.
Ben Rady: Yeah, yeah. And I think that the model there you're describing is sort of the second one that I would say, which is you know you have the tool integrated into your IDE and you're chatting with it.
Matt Godbolt: Okay.
Ben Rady: And you're saying, like can you please do this or can you change that? And then the third model that I've seen is like sort of AI enhanced code completion.
Matt Godbolt: Yes.
Ben Rady: Where it is like, as you're typing, it's like filling out, you know, graying out code that it kind of wants to type and say like, here's the thing that you could do here, right? um And I think those are three rather distinct modes, right?
Matt Godbolt: That's true. yeah I would add to that, there's a fourth one that I've seen recently, which I suppose is like 2+, right?
Matt Godbolt: With with the two, that is an IDE based editor, um you're generally driving the show and you know it says, hey, you know, you you highlight things that I would do is highlight a function and say, can you simplify this please?
Matt Godbolt: Or can you make it more, you know, TypeScripty?
Ben Rady: Mhm.
Matt Godbolt: And then it will give me, hey, what about this? And then I go, yes. And I can click a button and then replace the code I've highlighted with whatever the the AI has come up with.
Ben Rady: Mhm.
Matt Godbolt: But then there are more like, this is a new word I learned the other day, agentic, but it is to say agent-like, where the the" AI has agency of its own" plugins. And I was observing somebody, um a friend of mine, like driving the IDE by using a plugin that actually can itself drive the IDE. So he'd asked it to say, can you add new files?
Matt Godbolt: Can you refactor this? And it would do all of the things in one go and it would run the test and they would fail and it would feed back the failure of the test and it would actually iterate itself until it had got to a stage where it said, "Hey, I did the things you asked me."
Matt Godbolt: "Are you happy?" And then you click yes, or you'd go, no, roll it back and we'll try again. And that was, you know, that seems to be very much more like to, uh, the second case, but with its own agency.
Ben Rady: okay No, I think I would call that like a fourth mode where it's like, you're not really the programmer anymore, right?
Matt Godbolt: Um, but I wonder if it's distinct at all, you know, the second one you're asking,
Matt Godbolt: You are the executive programmer and...
Ben Rady: Well, bringing this back to a pairing analogy, right?
Matt Godbolt: Right.
Ben Rady: Like you always have the driver and the navigator, right?
Matt Godbolt: Uh-huh.
Ben Rady: And in sort of traditional you know XP style pairing, the whole idea of that was that the driver doesn't make any technology decisions.
Ben Rady: The purpose of the navigator was to say like to communicate their ideas to the driver and the driver would type what they think they heard. And that was supposed to be a feedback loop to make sure that you really had expressed an idea that was like cohesive, right?
Matt Godbolt: Got it. Yeah, yeah, yeah.
Ben Rady: And so like to me, that model sounds like I just have, I'm pair programming, but I'm the navigator, right? And the AI is the driver.
Matt Godbolt: Yes. That does seem more like it, yeah. Yeah, yeah.
Ben Rady: yeah
Matt Godbolt: I mean, in in this particular instance, this is a friend, actually a mutual friend of ours who I'm currently sharing an office with. We rented a temporary office space so that I don't drive my poor, long-suffering wife insane by me being around all the time at the moment.
Ben Rady: Mmhmm.
Matt Godbolt: But ah he's a lapsed programmer. He used to be a programmer, but isn't anymore. He's more of a managing type person. And he has been working on some code by driving the IDE. And it's amazing to see how much he's been able to do without literally writing a line of code. Now he can code, but he hasn't done it for a while. And it's, yeah, you know, he's got this sort of web application with ah like a game and these pieces moving around. And he's like, yeah, I should like for the mouse middle mouse wheel to zoom in and out of the map.
Ben Rady: Mmhm
Matt Godbolt: Uh, and then the middle mouse button to pan and it goes, got, I gotcha. And it just makes all these changes. He looks at it and he goes, yeah, it seems to work and commits it. And then just goes, and I'm like, wow. I mean, it is fairly unambiguous when you say that, but it's like, it's the AI has understand, ah understood the flow of his current program well enough to be able to then say, I can see how you would add.
Matt Godbolt: panning and zooming into this application, which is one of those things that is a pain in the bum to get right if you try and do it yourself.
Ben Rady: Uh-huh, uh-huh. Uh-huh, uh-huh.
Matt Godbolt: And that's kind of, that's cool.
Ben Rady: Yeah. Yeah, there's 2D matrix transformations in there and a bunch of other things that you really don't want to have to think about too hard.
Matt Godbolt: um
Matt Godbolt: That's right. I mean, yeah, sure.
Ben Rady: Yeah.
Matt Godbolt: i You'd get there at the end, but it it was it was fascinating to see.
Ben Rady: Yeah, yeah, yeah.
Matt Godbolt: And watching it work is like creepy. It's like, you know, the the IDE is driving itself. All these things are popping up and down, things are moving around, files are being edited, and then, you know, it's explaining what it's doing in its little window.
Ben Rady: Mm hmm.
Matt Godbolt: I mean, the that's that's cool, but, you know, there is obviously... potential for a darker side and without going into like some of the, you know, obviously that there are IP concerns, but there's also the, "are computers taking away our jobs?" sides to this too.
Matt Godbolt: And so far, I'm like, not in a meaningful way, because ah That was toil that, that, uh, that my friend needed to do and could possibly have done or worked it out himself, but he could just ask it to do, it but he's still making executive decisions about like, yeah, I don't like the way it did this or this class is more complicated and iterated with it.
Matt Godbolt: So there's still some programming knowledge that's required and needed, but I can, I, yeah, I can see the beginnings of something that maybe say there is a category of.
Ben Rady: Yeah.
Matt Godbolt: programming work that is made accessible to more people in a way that doesn't require a specialist knowledge.
Ben Rady: Uh-huh.
Matt Godbolt: That's probably the most positive way I can spin it.
Ben Rady: Uh-huh. Mhm.
Matt Godbolt: And I wonder, what what do you think about this? what do did Do you think like what you, we both have kids that are looking at a college age. Would you recommend going into computers to them?
Ben Rady: Yeah, well, full disclosure, my oldest ah is going into a computer science program ah at a a prestigious school nearby and they have asked me this question.
Matt Godbolt: Right.
Ben Rady: I have told them that, well, I've told them a bunch of things, which I'm probably about to recount on this podcast, but, um, I told them that like the, the, if I were to summarize this in one sort of paragraph, it's like, what kind of effect do you think that AI will have on human society over the next, let's say 50 years? Do you think it will make computers more important to us or less important to us?
Ben Rady: And I think the answer is pretty obvious when you phrase it like that.
Matt Godbolt: Yeah.
Ben Rady: I think what's happening right now, and what may happen for a little bit, is there is a little bit of ah what I would maybe call an economic dislocation in that there's probably not an infinite amount of demand for software engineers, right?
Ben Rady: There is certainly an amount of demand that up until now has gone unfulfilled because the cost is just too high, right? Like this gets back to a little bit of like, you know, an economics 101 class about minimum wage, right? Like you raise minimum wage, you raise the standard of living, but you also create inflation and you also drive businesses out of business. So like, you know, a practical example for us living in Chicago is that Chicago raised its minimum wage
Ben Rady: to $15 an hour. I don't know if that has fully taken effect yet. I think they've been rolling it out in stages. It might have actually fully taken effect. And there are when you go down to Ogilvie Station, which is the train station that you know we would ride into every day, you see a lot of storefronts. And those storefronts are empty. And they have been empty since COVID, right? And I wonder to myself when I walk past those storefronts, if Chicago had not raised the minimum wage, how many of these stores would now be open?
Matt Godbolt: Interesting.
Ben Rady: And I would be very surprised if the answer is it would be exactly the same, right? There has to be one or two stores that were kind of right on the cusp of being profitable.
Matt Godbolt: And it was, it was the sort of final straw is that they, yeah, it I could,
Matt Godbolt: thing I think that meant that you know that that store was not economically viable and shouldn't have been.
Ben Rady: No, that's just economics, right? Like, right.
Matt Godbolt: you know more but But yeah, from a pure dispassionate economic point of view, I i agree.
Ben Rady: Right.
Matt Godbolt: I think that makes sense. and so Are you are you sort of making the argument that what we're doing now is we've reduced the "minimum wage" of programmers.
Ben Rady: Yeah, yeah.
Matt Godbolt: Because now if I'm an estate agent, sorry realtor, I translate for you, and I need to change my website, I don't have to call up the website company anymore because I can load up my website and tell an AI, can you just change some things about this for me, please?
Matt Godbolt: Or can you make it so this happens?
Ben Rady: but's that's not exactly That's not exactly what I'm saying.
Matt Godbolt: Are you thinking that?
Ben Rady: I'm saying like the real estate agent would never have even had a website.
Matt Godbolt: Okay.
Ben Rady: And now they can. Because it wouldn't have made economic sense for them to have a web development company because it was too expensive.
Matt Godbolt: I see.
Ben Rady: right So they just wouldn't.
Matt Godbolt: Yep.
Ben Rady: And now,
Matt Godbolt: Well, I mean, like, ah so I've took that, for example, just purely because one of my friends ah back at ah home is this and like, he paid like 200 quid once to get his website once and he's got like a zip file.
Ben Rady: yeah.
Matt Godbolt: And that's his website. And it's been his website for like 20 years now.
Ben Rady: Yeah, yeah.
Matt Godbolt: And now it's like, well, I've never changed it from that.
Ben Rady: Right.
Matt Godbolt: And because I can't afford to keep paying someone to change it.
Ben Rady: Right.
Matt Godbolt: But Now, maybe I can get the computer to make changes for me and I can, can you update this house or whatever?
Ben Rady: Sure.
Matt Godbolt: And I don't need to really know what's going on.
Ben Rady: Yes.
Matt Godbolt: So, and in that way, this is what I suppose what we're saying is AI is a tool and tools are in the right hands useful and maybe, you know, like a wrench, a spanner again, I'm doing it.
Ben Rady: Yeah.
Ben Rady: Right.
Matt Godbolt: I don't know I'm code switching between English and and and American here, "freedom speech".
Matt Godbolt: Oh boy. so much wrong with that at the moment right now anyway it but you know like there's there's a number of things that you can't uh i can't uh i was just literally replacing this battery of my sump pump downstairs and i'm like i can't get the the the wing nuts off of the terminals but
Ben Rady: Mm hmm. Mm hmm.
Matt Godbolt: Am I going to call someone in? No, I've got a tool to do this for me. I can use a wrench. Now suddenly I've got enough leverage for it and that's fine. And so you're getting leverage to people and and maybe AI is programmer leverage.
Ben Rady: Mmmhmm
Matt Godbolt: That's certainly how I personally use it, but maybe it's leverage for non-programmers. I was about to say muggles then, but that's probably not....
Ben Rady: Normies, how about that one?
Matt Godbolt: Oh yeah. I don't know about that either.
Ben Rady: Yeah, no, so I mean, it is and it's like putting, as I was getting to before, I don't think there's an infinite amount of demand for programmers.
Ben Rady: there is a lot of demand for programmers. And it is also possible that having AI will actually increase the total net demand for programming, because as my previous statement kind of alluded to, computers are going to get more important to humanity over the next 50 years, not less important.
Ben Rady: right And so the question is, at what rate will that increase?
Matt Godbolt: Yeah.
Ben Rady: And it might increase very quickly because of this. right But certainly in the short term, what this is doing is reducing the unfulfilled demand for programmers by dramatically increasing the sort of total supply of program-ish, right?
Ben Rady: like You can either be an expert programmer who is even now more productive, and I certainly think you and I can speak to that of like the way that we've used those tools to get things done way faster than we would have before, and and you know we should talk about some specific examples of that.
Matt Godbolt: Right. Absolutely.
Ben Rady: But also everyone else who is attempting to write code, whether they be a realtor who's just trying to update their website or somebody who used to be in programming and hasn't done it for 20 years or somebody who is just learning or somebody who is just treating it like their day job and just like, I just need to get more stuff done.
Matt Godbolt: Yeah.
Ben Rady: All of those people, all of those people are now going to be more productive because of these toolsm right? And so that has the effect of sort of filling in gaps in the demand that were there before.
Matt Godbolt: Rright
Ben Rady: And you know unfortunately for us, perhaps, reducing the total amount of compensation that we can expect to get because our skills are so limited and therefore not in so much demand.
Ben Rady: I would argue that from a purely economic perspective, that is nothing but good. From a sort of selfish perspective, it's like maybe not the best, but I'm willing to take the trade because it makes me as an individual more productive.
Matt Godbolt: Yeah.
Matt Godbolt: Right.
Ben Rady: And for somebody who kind of getting back to you know this this hypothetical person who might be going into a computer science degree and considering this as a vocation, I would say: if you're in it because you want to make a lot of money, you can probably do better.
Ben Rady: But if you're in it because you love programming, that's not going away.
Matt Godbolt: is Right. Right. And certainly I think that advice fell on; to your to your eldest and they were very, ah that is why they're into it, right?
Matt Godbolt: Is it, they love it.
Ben Rady: Yeah, right.
Matt Godbolt: So that makes sense in in that sense.
Ben Rady: Yeah, yeah.
Matt Godbolt: Yeah, that's definitely, I think that's, that's good advice anyway, is if you can do something you love, because I mean, certainly at university, something you love because you can stick to it and maybe it demonstrates
Ben Rady: I mean, right.
Matt Godbolt: the ability to learn but that's a whole other conversation about like why and we're way in the weeds with with that now but um yeah it's interesting that you might say there are more... I suppose again that we we're coming at this because you know we are considerably closer to retirement than we are from starting our careers which is sad to say out loud and so we're...
Ben Rady: Right. Uh-huh. Yeah. I'm maybe like a third of the way.
Matt Godbolt: You are younger than me fair in fairness yeah
Ben Rady: Well, no, I'm just going to program till I drop.
Matt Godbolt: Well, I think that's, ah that's another thing, right? You know, you and I, are as everyone who's listening to this podcast knows, we love this. We would do this anyway.
Ben Rady: Right.
Matt Godbolt: I am doing this anyway. I am between jobs and I'm doing it because I love it, not because I'm, you know, being specifically paid to do it.
Ben Rady: Right. Yeah.
Ben Rady: Yeah.
Matt Godbolt: um And so it's it's very, ah and like, literally, while we're talking Discord notifications popped up, where friends of mine are working on like Amiga demos and still, you know, for a computer that has been ah obsolete for 30 years, you know, that's, but because people love this, it's we're very lucky that at the moment, we still get paid reasonably well to ah to do what we we enjoy.
Ben Rady: yeah
Matt Godbolt: um that that like The economics of that may shift as AI changes things, but you know who makes the AI? well I suppose there becomes a point, there's maybe an inflection point where ah the point at which AI becomes determining of its own future, designs itself, updates itself.
Matt Godbolt: under maybe some human direction. But at that point, I guess that's the singularity type feel or whatever. i Maybe that's a different thing. But like I can see a world in which it it takes off and then we're all in in trouble.
Ben Rady: Yeah.
Matt Godbolt: Or we're all we can all retire and live in the world of you know Star Trek, which would be nice.
Ben Rady: Yeah, i don't I don't have too much hope for the yeah i mean the the sort of need-free society.
Matt Godbolt: There's a certain amount of political background that indicates that that's the opposite of that might be happening. but that's
Ben Rady: I'm not holding my breath on that one.
Matt Godbolt: No, sure.
Ben Rady: But I do think it is like the ah recent developments with DeepSeek I think are a very interesting and important step in this whole conversation. I think we would be remiss to not talk about that.
Matt Godbolt: Absolutely.
Ben Rady: Because it really seems like because one of my biggest concerns with sort of the long term of this has been essentially like AI vendor lock-in, right?
Ben Rady: Like if these are gonna be tools that we rely on to do things, I don't wanna be beholden.
Matt Godbolt: Yeah.
Ben Rady: I mean, this is like the bad old days of Microsoft and like the, you know, 90s where it's like, yeah, you know, you need to pay the Windows tax whenever you buy a new computer. And like, you know, everything was just sort of locked up by them.
Ben Rady: And that's just like terrible for so many reasons. And I think that a lot of what, at least in my career, um I sort of gravitated to um was open source, not only because you had access to the source code, but also because of the sort of free is in speech aspects of it that allowed you to to do what you needed to do and never get boxed into a situation. And like, you know, the scenario I was painting to a a friend of mine the other day about this was, so imagine that you are one of these people
Ben Rady: who's not really a programmer, but you sort of figure out how to do things using AI. And you build a little tool or something that is useful to you. And then you ah you know you change it a little bit, and it works really well. And you're like, you know maybe I could sell this. right And so you continue to use AI to build like a a website or something. Or you know you you get on some payment portal, and you set us something up, and you start selling this thing.
Ben Rady: that does pretty well, right? And you sort of like your side gig and you do this for a while and then it starts to become like your main source of income. And you're like, you know what, I could just quit my day job and I could just do this, right? And you keep making some improvements to it.
Ben Rady: And you sort of do this sort of pair programming style thing with the AI where it's like you say, and make changes to do this and changes to do that and changes to this.
Matt Godbolt: Yeah.
Ben Rady: Right. And then you, you know, have done this for a couple of years now and you fully quit your job and you, this is how you pay your rent. And then one day you go to make some change to your thing. Cause you know, there's like some update somewhere or something's broken or there's new stuff.
Ben Rady: Oh, I gotta go fix this. And you ask the AI to do it and then it doesn't.
Matt Godbolt: And you have no nothing to come back on.
Ben Rady: And then, and then you ask again and it doesn't. And then you ask again and it doesn't.
Matt Godbolt: Yeah.
Ben Rady: And you're like, what's going on here?
Matt Godbolt: Yeah.
Ben Rady: I don't know what to do.
Matt Godbolt: Yeah.
Ben Rady: And then your thing stops working and then people stop paying for it. And then you don't pay your rent.
Matt Godbolt: Right. I mean, to, to an extent, I mean, what you're talking about, obviously vendor lock-in is, is true in many other parts of the world too. I mean, you think about, you know, no, there is something more insidious.
Ben Rady: Right. But this isn't just it isn't just the vendor lock-in aspect. It's the lack of understanding, right? Like you built a thing that you don't understand and you have no way, no recourse at all to fix it.
Matt Godbolt: Yeah. That is, that's a really interesting, because what I was good at most of the thing that was coming to mind was, you know, folks who make a living from being YouTube people on Patreon or whatever.
Matt Godbolt: It's like, yeah, but you know, YouTube could say, no, you can't do this anymore. Or it could stop working or whatever.
Ben Rady: Right.
Matt Godbolt: Or Patreon could say like, yeah, we're shutting down or whatever. and you got like But they, um they still understand what they've got. Maybe they don't own their uploads, but maybe they do still have it somewhat. You know, you could imagine them setting up shop.
Matt Godbolt: The foundations are still there, right? If you are a social media influencer and you do interesting stuff, then that stuff is still interesting to somebody somewhere, and presumably, and some new site will come up and you can be like, okay, I've got my things.
Ben Rady: Right.
Matt Godbolt: I'll move over to this new site. Whereas with this, the. Yeah, there are no foundations. The foundation is a black box. I suppose it's not totally, because you could say, all right, if it's worth it, you could hire some software engineers and say, right.
Ben Rady: Hopefully somebody knows still how to program by then, right? Like that's the thing is that I think this is why there will always be a demand for people who understand computers and programming.
Matt Godbolt: No, you're right. And I mean, a thing that that already is is a little bit insidious, and I think I have more of a more of a problem with this than most people would do, but it's the reproducibility aspect of it.
Ben Rady: Right.
Matt Godbolt: you know ah If today, you know already there's randomness inside the way that they work, and I kind of get that, but like you could imagine them not making it... I mean, you you didn't even suggest that it was going away.
Matt Godbolt: Actually, you just said it didn't, right? So this is perhaps the same thing. I'm just having the same realization that, yeah, you go to say, can you make a thing change in this way? And it does it in a way that doesn't make any sense anymore.
Matt Godbolt: And you you can't change it or you can't... you know it Yeah. It doesn't have to just go away. Yeah. This is your point. It's like, it can just change.
Ben Rady: Yeah.
Matt Godbolt: You've got no recourse. Whereas in the open source model, like I still have the code on my computer.
Ben Rady: Yeah.
Matt Godbolt: I don't necessarily understand it, but I have it here. it I have a copy of it. Whereas, and I suppose to an extent, you know.
Ben Rady: Right.
Matt Godbolt: things like ah AWS is another vendor, which I'm very much locked into.
Ben Rady: Oh, yeah.
Matt Godbolt: And, you know, tomorrow they could tell me that they're ah deprecating something that I absolutely rely on and I'm stuffed.
Ben Rady: Yeah, yeah, yeah.
Matt Godbolt: ah So this already exists in different ways, but I'm stuffed in the same way. Yeah, yeah yeah i'm I'm going round in circles in my head here, but I do think there is a material difference between, you know I know what I'm doing and I'm relying on things that do those that for me.
Matt Godbolt: um ah In aws you know it's a load balancer and whatever and a storage system or whatever and it would be a pain in the bum to change it but i can versus i've built an empire on something i don't understand.
Ben Rady: Mm hmm.
Ben Rady: Right, right. Or I've built a critical tool on top of something I don't understand and like, you know.
Matt Godbolt: Yeah although i wonder how much that's common in business full stop right you know like how many CEOs... yeah.
Ben Rady: No, no, and that's sure, sure, sure. And it's like I'm not saying this is fatal. I'm not saying like and this is why I won't work. It's like it's just introducing a risk. And I think it is a pretty significant risk.
Ben Rady: that you don't have when you have people who actually understand the code that is being written and how it works.
Matt Godbolt: Right. Although like they can, for example, leave the company. That seems like a thing that might be top of mind for some of us.
Ben Rady: Right.
Ben Rady: Right, right.
Matt Godbolt: And so there's an interesting aspect to it there as well, but it seems more... It's more, more in your control. You can, as a, as ah an employer, as a somebody who's managing, you take into account, we've talked about, uh, crypto risk, I think, as we've called it, which is bus risk to everybody else on this, on this, this podcast before you manage it.
Ben Rady: Mm-hmm.
Ben Rady: Yeah.
Matt Godbolt: And whereas you can't manage it when it's a magical, mystical genie in a bottle that someone else will rent to you on a day by day basis.
Ben Rady: Yes, exactly, exactly.
Matt Godbolt: And yeah.
Ben Rady: Right. And and I think DeepSeek, again, bringing it back to that, makes that easier in that like you can go and you can get a model and just be like, all right, I'm just not going to change this.
Matt Godbolt: Oh, yes.
Ben Rady: right This does what I needed to do. And there is kind of like two layers of this, by the way. There's the system that you build that is built by an AI, but fundamentally what it produces is just code that you run.
Ben Rady: And then there is a system that relies on an AI for its operation.
Matt Godbolt: Yep.
Ben Rady: right And that has a much greater risk of just one day not working and you don't understand why.
Ben Rady: right um So there's there are two different modes there. But I think it's kind of the same thing of like you're exposing yourself to this vendor lock-in, this thing that, like you know back in the 90s, we were very acutely aware of that existed.
Ben Rady: And it's like ah it's like a slightly different dimension on it, and of course, and there's two different things there.
Matt Godbolt: Yeah.
Ben Rady: But it's a risk that like there's a reason that open source got so popular. right And one of the reasons is is it mitigated this risk significantly.
Matt Godbolt: yeah i mean obviously we yeah yeah no i've never really thought of it that way yeah uh although the sort of the thing about deep seek is...
Ben Rady: And so I so i think things like deep seek like also have that effect.
Matt Godbolt: it and maybe this is again slightly different than open source. So you know i can use Microsoft SQL Server and I have all the problems of lock-in that we've we've just talked about.
Ben Rady: and Right.
Matt Godbolt: I could use SQLite or some other ah you know MySQL or whatever it's called these days, and I can have the source code. It won't change from underneath me and everything, but I still don't really understand it unless I'm super into databases as a user of databases.
Ben Rady: Mm-hmm.
Matt Godbolt: Um, I couldn't, you know, if, for example, they suddenly changed the licensing rules or I actually, I can't imagine what sequence of events could make an open sourcing go away. But, um, if they stop maintaining it and I can't maintain it or I can't afford to maintain or I don't understand it, I have a similar problem.
Matt Godbolt: um And then this the the ah the DeepSeek has another lish issue which is like they can give you an open source model but can you train it yourself and so far they're like no no no that's magical stuff that happens behind the scenes and requires more money than you have access to even though it's considerably less than perhaps some of the other models and that seems to be.
Ben Rady: Right.
Matt Godbolt: interesting to me that you're it's like it's ah it's a slightly subtly different "open" than other "opens" and and unless I'm missing something to my understanding how that works.
Ben Rady: No, I mean, it I think you're absolutely right. like If you want to train your own model, it's it's going to be like millions of dollars. right Isn't that how that works? So it's like that's a pretty significant barrier. um But like the I think the analogy in that particular case, like let's say that you built a system.
Ben Rady: It's not that you built a system with DeepSeek.
Ben Rady: You wrote the code and it uses DeepSeek to do something.
Matt Godbolt: Yep. And it uses DeepSeek things.
Ben Rady: right
Matt Godbolt: So it's, yeah, like did.
Ben Rady: Like, that's not all that different from like, hey, I've got this database that I don't understand, or I've got this AWS service and I don't understand, because you understand how to change that code.
Matt Godbolt: It's very similar. Yes.
Ben Rady: And if that component, whatever it may be, stops working, you have a reasonable expectations, all right, this is going to be a pain in the butt, but like I can reach, I can fix this and I can redo this and I can do that.
Matt Godbolt: Yeah.
Ben Rady: And like, you know, you can find ways to at least patch around it, if not just get it working again. Whereas if your entire ability to change the software at all,
Matt Godbolt: yes
Ben Rady: is reliant on a tool that you fundamentally don't understand how it works and you don't even really understand what it produces, then you can easily get into a state where you just can't make changes at all.
Ben Rady: And like the one thing that I have seen in my career is software that can't change dies. It has to be able to change because the world changes around you and if you don't change with it,
Matt Godbolt: Not wrong.
Ben Rady: the software stops being used. right So that's sort of like the greater risk for me is like a world where we have not only the things that we do in our day jobs, but we maybe have like critical pieces of infrastructure.
Matt Godbolt: Yeah.
Ben Rady: you know the sort of What happens when the load-bearing internet person is just DeepSeek?
Matt Godbolt: Yeah.
Ben Rady: Right and like yeah, there's this critical piece of infrastructure that everyone else depends on and nobody understands how it works anymore because turns out the maintainer died in his AI took over, right?
Matt Godbolt: Hahahah. yeah it's Yeah, it's very, and that is, I see the difference in kind between those things, you know, and the open source model is different to, yeah, that I built something with a tool that I don't understand that I can't understand what it built either.
Ben Rady: Yeah.
Matt Godbolt: That's really, yeah.
Ben Rady: yeah
Matt Godbolt: Um, without getting um a bit of a change, then we talked about some of the ways, and it's a bit of "errr" gramophone needle scratch kind of moment here, but I feel like, you know, as we're coming up on time and I'm thinking it, it's at least worth talking a little bit about some of the productivity boost that, you know, we we alluded to earlier, you mentioned that we, you know, and so like I don't want to be like all sort of semi doom and gloom about this kind of stuff, because I think, you know, there are a lot of positive things.
Ben Rady: Oh, yeah. Oh,
Matt Godbolt: We started out reasonably positive...
Ben Rady: oh yeah.
Matt Godbolt: Um, and so some of the success stories, I think I've already said for me, we're like, you know, getting it to do. Uh, I don't understand TypeScript. Can you please do this thing or, you know, can you refactor this code or can you make suggestions even like, and those are very like pair programmy thing.
Matt Godbolt: And sometimes it's really, really good at that.
Ben Rady: Mm hmm.
Matt Godbolt: Uh, I've had, so there's the thing that I've been doing recently, and which would be a surprise to nobody who's listened to this for any length of time is I'm actually working on, uh, yet another emulator and I'm working on the Z80 emulator for, for a conference talk.
Matt Godbolt: And I'm experimenting with different ways of writing a ah CPU emulator to see how they come out. And I'm also experimenting with different types of C++ functionality. But anyway, the Z80 obviously is an incredibly well-known, well-understood CPU. And there's obviously a lot of information about it on the internet. But I've been remarkably impressed with how my particular take of it currently, at least the current incarnation, is more like a traditional decode. So I'm switching on the opcode.
Matt Godbolt: And then I'm returning a structure that describes what that opcode does. And one of the things in that structure is like the actual string that is the opcode. And then there's a bunch of other flags, like how many more bytes am I expecting after this byte? What ah is the source? What is the destination? And these are all "enums". So you know each thing is like case 0x22: return "LD HL, BC", "size of opcode: 1",
Matt Godbolt: Register::HL, Register::BC, then some other nonsense that's just that and right okay so it's fairly straightforward for some definition of straightforward um but I was absolutely shocked that I would write the next case statement and the AI would correctly fill in the completion for that. That is, I'm just literally in a big switch statement, the top of it is it's like huge switch opcode, and I do case 0x33:, and it says return, and then it's filled it in. So it's like worked out that this is a Z80, and then therefore, 0x33 is this opcode, and it can actually
Matt Godbolt: determine what my program means or needs from the op code that that that was just blew me away. That was like, again, and now I want to do is just also complete the whole lot of them because there are hundreds of those stupid things.
Ben Rady: Yeah.
Matt Godbolt: But obviously, testing it and checking it is the the thing it's, but
Ben Rady: Yeah.
Matt Godbolt: That is amazing to me. And and a similar story is ah in my 6502 emulator, I had a test which had a `static const` array of bytes that was a routine in just assembly, not assembly code, in machine code, right?
Matt Godbolt: And I just asked it, I asked the the chat thing, can you comment this for me?
Ben Rady: and
Matt Godbolt: And it worked out that it was in fact encoded 6502 and it broke it onto multiple lines and for each like 0x33 and it had the comment of like, this is LDA #27. I'm like,
Ben Rady: Mm hmm.
Matt Godbolt: Again, bonkers level sort of beginnings of reasoning about what I'm doing, not just like predicting. I don't know. It felt good. It felt really clever.
Ben Rady: Mm hmm.
Matt Godbolt: So that's amazing when that happens. But so what what have you got any, any cool stories?
Ben Rady: Yeah.
Ben Rady: I mean, I think you kind of hit on it there, which is, you know, my perspective on these things is the older something is, the better AI is going to be at dealing with it, right? So like really well-worn public APIs and tools, it is so good at, right?
Matt Godbolt: I was going to say. Funny little Python tools that interact with the YouTube API is something I've, I asked it through and he just wrote the whole thing from scratch and I never had to understand it, which, you know.
Ben Rady: Yeah, right, right.
Ben Rady: All of those APIs that have been around for a reasonable period of time and are very well-worn, it is so good at that. And it has gotten to the point where it's like, you know rarely will I do things like look up the documentation first.
Ben Rady: Usually, I'm looking up the documentation only to double-check what it is that the LLM in question has done, um or to just make sure that I understand it.
Matt Godbolt: Yeah.
Ben Rady: right um
Matt Godbolt: Yeah.
Ben Rady: But like anything that is that is older like that, is it's so good at. And it's it's funny because I think like i think ah I've thought a few times, this is I'm going to dip slightly back into the doom and gloom for just one second because it's not really doom and gloom.
Matt Godbolt: Okay, I'll allow it.
Ben Rady: I think this is actually kind of a good thing. But one of my concerns with these tools has been, like are we just going to turn into like human QA? Are we going to like, OK, the AI is going to you know dump out all the terrible code and then our jobs are gonna be to fix it, right? And I actually think a probably more realistic version of that is it's gonna be our jobs to learn the new stuff and leave the old stuff to the computers. Because the computers will know, will have the sort of encyclopedic knowledge of like all of the APIs that have been out there for years and years and years and the best way to to use them. um And what our job is gonna be is the like, you know,
Ben Rady: Hey, I built my tool in this in this LLM and I based my whole business around it and it stopped working and I don't understand why. It's like, oh yeah, because they released a new version of the API that you use and the LLM hasn't picked it up yet. And so my job as a programmer is to be like, hey, somebody built a new thing. I need to learn how to use the new thing because the AIs haven't figured it out yet.
Matt Godbolt: Yeah.
Ben Rady: um and I think there's going to be a lot of that where it's like, yes. In some ways, it it makes me a little sad because sort of like the old gray-beard thing of like, yeah I know every corner of this API and I know exactly how it works and I know where all the bodies are buried.
Ben Rady: like Maybe it's not as useful as it used to be anymore. But what it does mean is that maybe what that means is we're going to be working on new stuff. and and know I like working on new stuff. It's fun, it's interesting, it's cool.
Matt Godbolt: Yeah.
Ben Rady: um But yeah, I bring it back to the the original topic here is of like, yeah, all of those sort of like public well worn APIs. ah Tools that have been around for a while.
Ben Rady: It is so good at knowing those things. It writes a lot of the same code that I would write. Obviously like I have very particular things around testability that I do and I have tried to kind of.
Matt Godbolt: Hmm, we should talk about that sometime.
Ben Rady: Yeah, ahhu maybe once or twice. And I have tried to, like you know you can do the things, especially with like some of these tools where you tell it to remember things. And I've tried to like teach it, like oh, this is the kind of stuff that I like.
Matt Godbolt: Yeah.
Ben Rady: This is the kind of stuff that I don't like. This works for this. And this works for this. And I think it's maybe getting better at it. I'm not really sure. um So I wind up refactoring that code a lot, or not even refactoring it, because the code that it spits out isn't really tested or testable.
Ben Rady: But I like wind up you know turning it into something that I can then write tests around and then sort of doing the reverse driving of those tests where I like break the code and make sure that the tests fail.
Matt Godbolt: Right, that is actually one that a nice, yeah, I mean, so yeah but a landmark moment in my understanding of AI was was realizing that I could be much more discursive about saying what I liked and what I didn't like as kind of part of and of a founding document, which ah ah was was was a huge like, oh gosh, yeah, that makes sense, you know, tell it, don't do this, I don't like it.
Ben Rady: Yeah, right, exactly, yeah.
Matt Godbolt: That's a useful thing, right? Otherwise, it's just trying to write generic ah code from the from the internet.
Ben Rady: Mm hmm, yeah.
Matt Godbolt: Um, and then the other thing would be, yeah, like writing tests is very good. I got, I, so I, this was back and when I was working with, uh, with you, although at the same company, um, I had a very warty, complicated.
Matt Godbolt: piece of code that was very thread-y. I think we probably talked about these things. And I asked the AI to try and poke holes in it, and it did. And I had to argue with it to prove to it that, like, there wasn't a window of opportunity when it, was ah you know, a threading bug would happen.
Matt Godbolt: And that was valuable too, because I, you know, it it was like having a very smart person to argue with. And I didn't have to expose myself as being not sure about it to anybody else.
Ben Rady: Hahahah; yeah.
Matt Godbolt: Although i now I am just talking about it probably. But also, auto-completing, I would point at my test and say, what are missing? Can you tell me what kinds of things are missing?
Ben Rady: Yeah.
Matt Godbolt: You go, oh, have you thought about these? These are the edge cases here. And then very often, it would auto-complete in the test. You could just write the test, the description, "should return 0 for negative values".
Matt Godbolt: And it's like, boom, there you go. You just hit Tab, and the whole thing auto-completes.
Ben Rady: Yeah.
Matt Godbolt: That's a valuable thing, I think, or at least a useful thing.
Ben Rady: Yeah, yeah.
Matt Godbolt: It takes some of the toil out of what we're doing without necessarily taking away some of the expressibility and the freedom to do something cool.
Ben Rady: Yeah.
Matt Godbolt: That's it.
Ben Rady: It's making this all more productive, and which is net a good thing and may create some sort of weird ripples in the short term. But I think in general, it's good.
Ben Rady: The whole thing kind of reminds me. I don't know if you were of this this era. I think you probably were. Did you ever have a boss that was like skeptical of Googling things?
Matt Godbolt: I don't...
Ben Rady: Did you ever have that?
Matt Godbolt: No, no, I didn't.
Ben Rady: My fate very first job out of school, I had a boss who was a lot older than me, and he was like, you know you gotta read the documentation.
Matt Godbolt: Wow.
Ben Rady: You got to get the docs on your computer, and you got to read through them, and you got to figure out what the software can do from that. I'm like, or I could just Google it. And he's like, no, you got to read the docs.
Ben Rady: And this sort of seems like the same sort of thing to me, where it's sort of like, you know like i could I could see someone making the argument. It's like, oh, yeah, you know if you just have the AI write all the code for you, you don't understand it. It's like, well, I mean, that's not strictly true. you can You can understand code that other things have written. That's a thing programmers can do.
Matt Godbolt: Mm hmm.
Matt Godbolt: Some might say it's the most important thing programmers can do actually
Ben Rady: Right, right. so like you know if you want to if you want it's The way you choose to work is to have a tool generate some code, and then you read that code, and you understand what it does, and you fix it if it has any problems, and you write tests for it if the tests are incomplete or whatever. like That's a perfectly valid way to work. It's not you know Google the thing, look at Stack Overflow, copy and paste into your code, and then repeat.
Matt Godbolt: Because that's what the AI is really doing behind the scenes.
Ben Rady: um
Matt Godbolt: Anyway, yeah we haven't talked about the ethics of where it got all of its information from.
Ben Rady: Right, yeah, yeah, yeah, yeah.
Matt Godbolt: But like you know that, yeah which is probably way outside the scope or certainly time. But yeah, that's, effectively, it's just you've automated that part of it.
Ben Rady: Yeah.
Ben Rady: Right, right, right.
Matt Godbolt: Let me Google that for you.
Ben Rady: Or going back to this old boss that I have, it's not like looking up the example in the documentation or the sample code that came with the library and then pasting that into your code and then editing it as appropriate.
Matt Godbolt: Right.
Ben Rady: But it is not totally dissimilar from that process, right?
Matt Godbolt: No, that's a very interesting take. Yeah. No, I'd never had a boss that was skeptical of Google. Thankfully, I think most of the stuff I had...
Ben Rady: He came around eventually, but it was the first first like six months I was there. He was like, oh, you got to read the docs. You got to read the docs.
Matt Godbolt: I understand it: Maybe that's just cause we're getting old and I sort of like sympathize with that kind of slightly, uh, that point of view.
Ben Rady: Yeah. Yeah, yeah, yeah.
Ben Rady: Right.
Matt Godbolt: Well, we've been talking for a good old while on this a lot more than I was expecting. And it went in a completely different direction the second time from where we started the first time. So....
Ben Rady: Right.
Matt Godbolt: Uh, maybe we should, we should put a pin in it for now and we should maybe come back with, uh, if anyone has thoughts on this episode, cause I imagine this is one that people might have strong opinions one way or the other.
Matt Godbolt: You know, I certainly in conversation with friends, uh, they've been like, "Oh my God, you use AI: ugh" h kind of fear, which I was like surprised that people could have such a visceral reaction to something which I perceive as just a tool.
Ben Rady: Mm hmm.
Matt Godbolt: But I also understand that maybe there's a the concept of like, uh, it was. It's, it's stolen all the Stack Overflow things for me.
Ben Rady: Right.
Matt Godbolt: I don't know another things, sweet but so I'd be interested in if anybody has opinions on this. Um, and maybe we could cover them if, uh, if there are on the future episode, but, um, I think we're going to have to leave it there for today.
Matt Godbolt: So, lovely to catch up with you, my friend.
Ben Rady: Yeah. Uh-huh. I'll see you next week.
Matt Godbolt: Yeah, I see you.
Ben Rady: yeah
Matt Godbolt: Yeah, I guess so.
Ben Rady: that
Matt Godbolt: Sometime to say, oh, actually, no. ah for and Inside baseball for those now, we're recording this in February and next week will be Valentine's day. So maybe we won't want to be recording on the Valentine's day.
Ben Rady: Probably things will have gone very poorly if that happens.
Matt Godbolt: I don't know, maybe. Well, yeah, we'll see. So it might be two weeks or something, or we'll do it in a week, but we'll get this episode out probably in, oh, I'm going to say this is cursing it...
Matt Godbolt: I was going to say probably in March. We never reveal when the times of these things are recorded are. But never mind. This time, special what special dispensation. Anyway, it's been fun.
Ben Rady: Until next time.
Matt Godbolt: Till next time.