Pair Programming with HAL? - podcast episode cover

Pair Programming with HAL?

Mar 16, 202547 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 and Ben explore the new world of AI-assisted coding: is it like pairing with junior developer? Matt gets the recording working the second time, Ben worries about what happens when your business depends on code you don't understand.

Transcript

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

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

Or, yeah, getting coffee or something. Yeah.

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

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

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

Ben Rady

Mm hmm.

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

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

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. And that's kind of, that's cool.

Ben Rady

Uh-huh, uh-huh. Uh-huh, uh-huh. 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 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. 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

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

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.

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

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

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

Matt Godbolt

I don't know I'm code switching between English and and and American here, "freedom speech".

Ben Rady

Right.

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

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?

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

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

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

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.

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

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

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. 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. 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. 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. 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. 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. 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. 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. And it's like ah it's like a slightly different dimension on it, and of course, and there's two different things there.

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. 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... 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 so I so i think things like deep seek like also have that effect. 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.

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.

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

Right. 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. It's not that you built a system with DeepSeek. 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. 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.

We started out reasonably positive...

Ben Rady

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

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.

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

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

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

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.

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

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.

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

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

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