WEBVTT

1
00:00:20.800 --> 00:00:21.140
<v Matt Godbolt>Hey, Ben.

2
00:00:21.140 --> 00:00:22.380
<v Ben Rady>Hey, Matt.

3
00:00:22.380 --> 00:00:29.570
<v 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.

4
00:00:29.570 --> 00:00:29.600
<v Ben Rady>Uh-huh.

5
00:00:29.600 --> 00:00:31.070
<v Matt Godbolt>And so we're starting again.

6
00:00:31.070 --> 00:00:32.220
<v Ben Rady>Right. Yeah.

7
00:00:32.220 --> 00:00:35.860
<v Matt Godbolt>um So this is going to sound really incredible. So: How are you doing, my friend?

8
00:00:35.860 --> 00:00:37.560
<v Ben Rady>It's been a while since we've talked.

9
00:00:37.560 --> 00:00:41.080
<v Matt Godbolt>It's been, yeah, like so many minutes.

10
00:00:41.080 --> 00:00:43.180
<v Ben Rady>I haven't seen you in so long.

11
00:00:43.180 --> 00:00:54.260
<v 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.

12
00:00:54.260 --> 00:01:00.160
<v 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.

13
00:01:00.160 --> 00:01:01.620
<v Ben Rady>I think we got a good system.

14
00:01:01.620 --> 00:01:02.320
<v Matt Godbolt>I think so.

15
00:01:02.320 --> 00:01:03.040
<v Ben Rady>That's, that's the key. Yeah.

16
00:01:03.040 --> 00:01:04.920
<v Matt Godbolt>It's working pretty well anyway.

17
00:01:04.920 --> 00:01:15.180
<v 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....

18
00:01:15.180 --> 00:01:19.560
<v Ben Rady>Yeah. I legitimately have not seen you in a while other than 10 minutes ago when we recorded this the first time.

19
00:01:19.560 --> 00:01:22.660
<v Matt Godbolt>Well, we recorded the introduction that didn't work. Yeah. Oh God.

20
00:01:22.660 --> 00:01:23.620
<v Ben Rady>Yeah. Uh-huh.

21
00:01:23.620 --> 00:01:37.520
<v 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.

22
00:01:37.520 --> 00:01:47.760
<v 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.

23
00:01:47.760 --> 00:01:59.370
<v 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.

24
00:01:59.370 --> 00:01:59.940
<v Ben Rady>Mm-hmm.

25
00:01:59.940 --> 00:02:12.200
<v 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.

26
00:02:12.200 --> 00:02:28.940
<v 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.

27
00:02:28.940 --> 00:02:28.940
<v Matt Godbolt>Yeah.

28
00:02:28.940 --> 00:02:30.430
<v Matt Godbolt>Or, yeah, getting coffee or something.

29
00:02:30.430 --> 00:02:31.040
<v Ben Rady>Yeah, yeah, yeah.

30
00:02:31.040 --> 00:02:33.380
<v Matt Godbolt>Oh, well, we should we obviously can do still.

31
00:02:33.380 --> 00:02:33.400
<v Ben Rady>Yeah.

32
00:02:33.400 --> 00:02:47.670
<v 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.

33
00:02:47.670 --> 00:02:47.680
<v Ben Rady>Mhm.

34
00:02:47.680 --> 00:02:57.160
<v 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....

35
00:02:57.160 --> 00:02:57.160
<v Ben Rady>Mhm.

36
00:02:57.160 --> 00:03:04.180
<v 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.

37
00:03:04.180 --> 00:03:05.720
<v Ben Rady>Yeah, yeah, yeah.

38
00:03:05.720 --> 00:03:14.540
<v 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.

39
00:03:14.540 --> 00:03:14.860
<v Ben Rady>Right.

40
00:03:14.860 --> 00:03:15.650
<v Matt Godbolt>I've forgotten everything.

41
00:03:15.650 --> 00:03:15.820
<v Ben Rady>Uh-huh.

42
00:03:15.820 --> 00:03:16.630
<v Matt Godbolt>I just ask it to do it.

43
00:03:16.630 --> 00:03:16.640
<v Ben Rady>Yeah.

44
00:03:16.640 --> 00:03:20.290
<v Matt Godbolt>It does it now. So so today's topic is is AI.

45
00:03:20.290 --> 00:03:20.740
<v Ben Rady>Yeah. Uh-huh.

46
00:03:20.740 --> 00:03:27.360
<v Matt Godbolt>What do we think about AI and programming and do we use it and whatnot? So, you know, I'll start.

47
00:03:27.360 --> 00:03:29.320
<v Ben Rady>Yeah. So you said, chat GPT, please explore the compiles.

48
00:03:29.320 --> 00:03:36.580
<v 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.

49
00:03:36.580 --> 00:03:36.960
<v Ben Rady>Yeah.

50
00:03:36.960 --> 00:03:48.000
<v 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

51
00:03:48.000 --> 00:03:52.340
<v Ben Rady>Yeah, that was an observation that an ex-colleague of mine made once, which I thought was good.

52
00:03:52.340 --> 00:03:55.440
<v Matt Godbolt>Or but you then said something which was more amusing and possibly true.

53
00:03:55.440 --> 00:04:05.110
<v 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.

54
00:04:05.110 --> 00:04:05.640
<v Matt Godbolt>Right.

55
00:04:05.640 --> 00:04:06.300
<v Ben Rady>um

56
00:04:06.300 --> 00:04:18.000
<v 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.

57
00:04:18.000 --> 00:04:18.280
<v Matt Godbolt>yes

58
00:04:18.280 --> 00:04:19.540
<v Ben Rady>That happens too.

59
00:04:19.540 --> 00:04:20.440
<v Matt Godbolt>Yeah, that does.

60
00:04:20.440 --> 00:04:21.400
<v Ben Rady>Yeah, yeah.

61
00:04:21.400 --> 00:04:36.610
<v 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.

62
00:04:36.610 --> 00:04:36.720
<v Ben Rady>Mm-hmm.

63
00:04:36.720 --> 00:04:37.610
<v Matt Godbolt>It's very apologetic.

64
00:04:37.610 --> 00:04:37.860
<v Ben Rady>Mm hmm.

65
00:04:37.860 --> 00:04:43.290
<v 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?

66
00:04:43.290 --> 00:04:43.840
<v Ben Rady>Mm hmm.

67
00:04:43.840 --> 00:04:57.220
<v 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.

68
00:04:57.220 --> 00:04:57.780
<v Ben Rady>Mmhm

69
00:04:57.780 --> 00:05:03.230
<v 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.

70
00:05:03.230 --> 00:05:03.280
<v Ben Rady>Yeah. Yeah.

71
00:05:03.280 --> 00:05:25.960
<v 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..."

72
00:05:25.960 --> 00:05:44.420
<v 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?

73
00:05:44.420 --> 00:05:44.700
<v Ben Rady>huh

74
00:05:44.700 --> 00:05:55.650
<v 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.

75
00:05:55.650 --> 00:05:56.380
<v Matt Godbolt>Okay.

76
00:05:56.380 --> 00:06:08.100
<v 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?

77
00:06:08.100 --> 00:06:12.400
<v Ben Rady>And there's a lot of, you know, maybe copying and pasting code depending on exactly how you do that, right?

78
00:06:12.400 --> 00:06:27.070
<v 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.

79
00:06:27.070 --> 00:06:27.480
<v Ben Rady>Mm hmm. Right.

80
00:06:27.480 --> 00:06:27.880
<v Ben Rady>Oh, yeah. Yeah.

81
00:06:27.880 --> 00:06:36.240
<v 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.

82
00:06:36.240 --> 00:06:36.240
<v Ben Rady>Mm hmm.

83
00:06:36.240 --> 00:06:48.580
<v 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.

84
00:06:48.580 --> 00:06:57.590
<v 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.

85
00:06:57.590 --> 00:06:57.900
<v Ben Rady>Right, right, right.

86
00:06:57.900 --> 00:07:05.000
<v 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.

87
00:07:05.000 --> 00:07:15.390
<v 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.

88
00:07:15.390 --> 00:07:15.500
<v Matt Godbolt>Okay.

89
00:07:15.500 --> 00:07:24.750
<v 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.

90
00:07:24.750 --> 00:07:25.300
<v Matt Godbolt>Yes.

91
00:07:25.300 --> 00:07:39.860
<v 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?

92
00:07:39.860 --> 00:07:46.680
<v 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?

93
00:07:46.680 --> 00:07:58.280
<v 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?

94
00:07:58.280 --> 00:08:00.650
<v Matt Godbolt>Or can you make it more, you know, TypeScripty?

95
00:08:00.650 --> 00:08:01.100
<v Ben Rady>Mhm.

96
00:08:01.100 --> 00:08:08.900
<v 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.

97
00:08:08.900 --> 00:08:09.160
<v Ben Rady>Mhm.

98
00:08:09.160 --> 00:08:31.280
<v 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?

99
00:08:31.280 --> 00:08:43.440
<v 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."

100
00:08:43.440 --> 00:08:58.880
<v 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.

101
00:08:58.880 --> 00:09:03.280
<v 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?

102
00:09:03.280 --> 00:09:03.360
<v Matt Godbolt>Um, but I wonder if it's distinct at all, you know, the second one you're asking,

103
00:09:03.360 --> 00:09:06.220
<v Matt Godbolt>You are the executive programmer and...

104
00:09:06.220 --> 00:09:09.360
<v Ben Rady>Well, bringing this back to a pairing analogy, right?

105
00:09:09.360 --> 00:09:09.440
<v Matt Godbolt>Right.

106
00:09:09.440 --> 00:09:12.180
<v Ben Rady>Like you always have the driver and the navigator, right?

107
00:09:12.180 --> 00:09:12.320
<v Matt Godbolt>Uh-huh.

108
00:09:12.320 --> 00:09:23.560
<v 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.

109
00:09:23.560 --> 00:09:38.980
<v 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?

110
00:09:38.980 --> 00:09:40.940
<v Matt Godbolt>Got it. Yeah, yeah, yeah.

111
00:09:40.940 --> 00:09:50.340
<v 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.

112
00:09:50.340 --> 00:09:53.440
<v Matt Godbolt>Yes. That does seem more like it, yeah. Yeah, yeah.

113
00:09:53.440 --> 00:09:53.520
<v Ben Rady>yeah

114
00:09:53.520 --> 00:10:06.170
<v 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.

115
00:10:06.170 --> 00:10:06.560
<v Ben Rady>Mmhmm.

116
00:10:06.560 --> 00:10:34.840
<v 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.

117
00:10:34.840 --> 00:10:35.280
<v Ben Rady>Mmhm

118
00:10:35.280 --> 00:10:57.920
<v 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.

119
00:10:57.920 --> 00:11:04.160
<v 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.

120
00:11:04.160 --> 00:11:04.160
<v Ben Rady>Uh-huh, uh-huh. Uh-huh, uh-huh.

121
00:11:04.160 --> 00:11:07.000
<v Matt Godbolt>And that's kind of, that's cool.

122
00:11:07.000 --> 00:11:12.230
<v 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.

123
00:11:12.230 --> 00:11:12.500
<v Matt Godbolt>um

124
00:11:12.500 --> 00:11:14.100
<v Matt Godbolt>That's right. I mean, yeah, sure.

125
00:11:14.100 --> 00:11:14.240
<v Ben Rady>Yeah.

126
00:11:14.240 --> 00:11:18.120
<v Matt Godbolt>i You'd get there at the end, but it it was it was fascinating to see.

127
00:11:18.120 --> 00:11:18.120
<v Ben Rady>Yeah, yeah, yeah.

128
00:11:18.120 --> 00:11:28.570
<v 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.

129
00:11:28.570 --> 00:11:29.000
<v Ben Rady>Mm hmm.

130
00:11:29.000 --> 00:11:44.880
<v 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.

131
00:11:44.880 --> 00:12:07.620
<v 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.

132
00:12:07.620 --> 00:12:19.790
<v 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.

133
00:12:19.790 --> 00:12:20.600
<v Ben Rady>Yeah.

134
00:12:20.600 --> 00:12:26.810
<v Matt Godbolt>programming work that is made accessible to more people in a way that doesn't require a specialist knowledge.

135
00:12:26.810 --> 00:12:27.440
<v Ben Rady>Uh-huh.

136
00:12:27.440 --> 00:12:29.570
<v Matt Godbolt>That's probably the most positive way I can spin it.

137
00:12:29.570 --> 00:12:29.840
<v Ben Rady>Uh-huh. Mhm.

138
00:12:29.840 --> 00:12:40.540
<v 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?

139
00:12:40.540 --> 00:12:55.120
<v 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.

140
00:12:55.120 --> 00:12:56.680
<v Matt Godbolt>Right.

141
00:12:56.680 --> 00:13:26.520
<v 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?

142
00:13:26.520 --> 00:13:30.680
<v Ben Rady>And I think the answer is pretty obvious when you phrase it like that.

143
00:13:30.680 --> 00:13:32.180
<v Matt Godbolt>Yeah.

144
00:13:32.180 --> 00:13:51.400
<v 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?

145
00:13:51.400 --> 00:14:22.740
<v 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

146
00:14:22.740 --> 00:14:56.370
<v 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?

147
00:14:56.370 --> 00:14:56.820
<v Matt Godbolt>Interesting.

148
00:14:56.820 --> 00:15:10.460
<v 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.

149
00:15:10.460 --> 00:15:29.240
<v Matt Godbolt>And it was, it was the sort of final straw is that they, yeah, it I could,

150
00:15:29.240 --> 00:15:35.080
<v Matt Godbolt>thing I think that meant that you know that that store was not economically viable and shouldn't have been.

151
00:15:35.080 --> 00:15:35.100
<v Ben Rady>No, that's just economics, right? Like, right.

152
00:15:35.100 --> 00:15:41.410
<v Matt Godbolt>you know more but But yeah, from a pure dispassionate economic point of view, I i agree.

153
00:15:41.410 --> 00:15:41.500
<v Ben Rady>Right.

154
00:15:41.500 --> 00:15:51.130
<v 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.

155
00:15:51.130 --> 00:15:51.780
<v Ben Rady>Yeah, yeah.

156
00:15:51.780 --> 00:16:08.040
<v 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?

157
00:16:08.040 --> 00:16:09.460
<v Matt Godbolt>Or can you make it so this happens?

158
00:16:09.460 --> 00:16:12.200
<v Ben Rady>but's that's not exactly That's not exactly what I'm saying.

159
00:16:12.200 --> 00:16:12.420
<v Matt Godbolt>Are you thinking that?

160
00:16:12.420 --> 00:16:16.590
<v Ben Rady>I'm saying like the real estate agent would never have even had a website.

161
00:16:16.590 --> 00:16:17.300
<v Matt Godbolt>Okay.

162
00:16:17.300 --> 00:16:24.320
<v 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.

163
00:16:24.320 --> 00:16:24.760
<v Matt Godbolt>I see.

164
00:16:24.760 --> 00:16:26.110
<v Ben Rady>right So they just wouldn't.

165
00:16:26.110 --> 00:16:26.580
<v Matt Godbolt>Yep.

166
00:16:26.580 --> 00:16:27.000
<v Ben Rady>And now,

167
00:16:27.000 --> 00:16:37.050
<v 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.

168
00:16:37.050 --> 00:16:37.380
<v Ben Rady>yeah.

169
00:16:37.380 --> 00:16:40.710
<v Matt Godbolt>And that's his website. And it's been his website for like 20 years now.

170
00:16:40.710 --> 00:16:40.980
<v Ben Rady>Yeah, yeah.

171
00:16:40.980 --> 00:16:42.880
<v Matt Godbolt>And now it's like, well, I've never changed it from that.

172
00:16:42.880 --> 00:16:42.980
<v Ben Rady>Right.

173
00:16:42.980 --> 00:16:45.680
<v Matt Godbolt>And because I can't afford to keep paying someone to change it.

174
00:16:45.680 --> 00:16:45.940
<v Ben Rady>Right.

175
00:16:45.940 --> 00:16:52.480
<v 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?

176
00:16:52.480 --> 00:16:52.500
<v Ben Rady>Sure.

177
00:16:52.500 --> 00:16:54.170
<v Matt Godbolt>And I don't need to really know what's going on.

178
00:16:54.170 --> 00:16:54.280
<v Ben Rady>Yes.

179
00:16:54.280 --> 00:17:06.490
<v 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.

180
00:17:06.490 --> 00:17:06.490
<v Ben Rady>Yeah.

181
00:17:06.490 --> 00:17:06.500
<v Ben Rady>Yeah.

182
00:17:06.500 --> 00:17:06.500
<v Ben Rady>Right.

183
00:17:06.500 --> 00:17:15.620
<v Matt Godbolt>I don't know I'm code switching between English and and and American here, "freedom speech".

184
00:17:15.620 --> 00:17:33.220
<v 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

185
00:17:33.220 --> 00:17:34.180
<v Ben Rady>Mm hmm. Mm hmm.

186
00:17:34.180 --> 00:17:43.830
<v 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.

187
00:17:43.830 --> 00:17:43.900
<v Ben Rady>Mmmhmm

188
00:17:43.900 --> 00:17:51.680
<v 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....

189
00:17:51.680 --> 00:17:53.660
<v Ben Rady>Normies, how about that one?

190
00:17:53.660 --> 00:17:55.940
<v Matt Godbolt>Oh yeah. I don't know about that either.

191
00:17:55.940 --> 00:18:08.360
<v 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.

192
00:18:08.360 --> 00:18:27.040
<v 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.

193
00:18:27.040 --> 00:18:30.200
<v Ben Rady>right And so the question is, at what rate will that increase?

194
00:18:30.200 --> 00:18:30.280
<v Matt Godbolt>Yeah.

195
00:18:30.280 --> 00:18:54.900
<v 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?

196
00:18:54.900 --> 00:19:09.820
<v 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.

197
00:19:09.820 --> 00:19:10.300
<v Matt Godbolt>Right. Absolutely.

198
00:19:10.300 --> 00:19:28.370
<v 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.

199
00:19:28.370 --> 00:19:28.460
<v Matt Godbolt>Yeah.

200
00:19:28.460 --> 00:19:40.700
<v 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.

201
00:19:40.700 --> 00:19:41.260
<v Matt Godbolt>Rright

202
00:19:41.260 --> 00:19:52.040
<v 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.

203
00:19:52.040 --> 00:20:09.260
<v 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.

204
00:20:09.260 --> 00:20:09.640
<v Matt Godbolt>Yeah.

205
00:20:09.640 --> 00:20:09.920
<v Matt Godbolt>Right.

206
00:20:09.920 --> 00:20:25.520
<v 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.

207
00:20:25.520 --> 00:20:30.280
<v Ben Rady>But if you're in it because you love programming, that's not going away.

208
00:20:30.280 --> 00:20:38.900
<v 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?

209
00:20:38.900 --> 00:20:40.610
<v Matt Godbolt>Is it, they love it.

210
00:20:40.610 --> 00:20:40.820
<v Ben Rady>Yeah, right.

211
00:20:40.820 --> 00:20:42.530
<v Matt Godbolt>So that makes sense in in that sense.

212
00:20:42.530 --> 00:20:42.740
<v Ben Rady>Yeah, yeah.

213
00:20:42.740 --> 00:20:55.020
<v 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

214
00:20:55.020 --> 00:20:55.760
<v Ben Rady>I mean, right.

215
00:20:55.760 --> 00:21:17.820
<v 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...

216
00:21:17.820 --> 00:21:21.640
<v Ben Rady>Right. Uh-huh. Yeah. I'm maybe like a third of the way.

217
00:21:21.640 --> 00:21:24.500
<v Matt Godbolt>You are younger than me fair in fairness yeah

218
00:21:24.500 --> 00:21:27.520
<v Ben Rady>Well, no, I'm just going to program till I drop.

219
00:21:27.520 --> 00:21:35.630
<v 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.

220
00:21:35.630 --> 00:21:35.800
<v Ben Rady>Right.

221
00:21:35.800 --> 00:21:43.100
<v 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.

222
00:21:43.100 --> 00:21:43.740
<v Ben Rady>Right. Yeah.

223
00:21:43.740 --> 00:21:44.380
<v Ben Rady>Yeah.

224
00:21:44.380 --> 00:22:07.480
<v 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.

225
00:22:07.480 --> 00:22:08.720
<v Ben Rady>yeah

226
00:22:08.720 --> 00:22:27.700
<v 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.

227
00:22:27.700 --> 00:22:38.900
<v 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.

228
00:22:38.900 --> 00:22:38.960
<v Ben Rady>Yeah.

229
00:22:38.960 --> 00:22:45.430
<v Matt Godbolt>Or we're all we can all retire and live in the world of you know Star Trek, which would be nice.

230
00:22:45.430 --> 00:22:49.500
<v 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.

231
00:22:49.500 --> 00:22:59.860
<v 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

232
00:22:59.860 --> 00:23:01.460
<v Ben Rady>I'm not holding my breath on that one.

233
00:23:01.460 --> 00:23:02.800
<v Matt Godbolt>No, sure.

234
00:23:02.800 --> 00:23:14.820
<v 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.

235
00:23:14.820 --> 00:23:16.480
<v Matt Godbolt>Absolutely.

236
00:23:16.480 --> 00:23:27.980
<v 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?

237
00:23:27.980 --> 00:23:34.770
<v Ben Rady>Like if these are gonna be tools that we rely on to do things, I don't wanna be beholden.

238
00:23:34.770 --> 00:23:35.120
<v Matt Godbolt>Yeah.

239
00:23:35.120 --> 00:23:47.200
<v 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.

240
00:23:47.200 --> 00:24:19.120
<v 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

241
00:24:19.120 --> 00:24:47.220
<v 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.

242
00:24:47.220 --> 00:24:58.340
<v 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.

243
00:24:58.340 --> 00:25:04.950
<v 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.

244
00:25:04.950 --> 00:25:05.200
<v Matt Godbolt>Yeah.

245
00:25:05.200 --> 00:25:17.540
<v 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.

246
00:25:17.540 --> 00:25:22.060
<v Ben Rady>Oh, I gotta go fix this. And you ask the AI to do it and then it doesn't.

247
00:25:22.060 --> 00:25:22.600
<v Matt Godbolt>And you have no nothing to come back on.

248
00:25:22.600 --> 00:25:26.860
<v Ben Rady>And then, and then you ask again and it doesn't. And then you ask again and it doesn't.

249
00:25:26.860 --> 00:25:27.120
<v Matt Godbolt>Yeah.

250
00:25:27.120 --> 00:25:29.630
<v Ben Rady>And you're like, what's going on here?

251
00:25:29.630 --> 00:25:30.380
<v Matt Godbolt>Yeah.

252
00:25:30.380 --> 00:25:31.980
<v Ben Rady>I don't know what to do.

253
00:25:31.980 --> 00:25:32.920
<v Matt Godbolt>Yeah.

254
00:25:32.920 --> 00:25:41.220
<v Ben Rady>And then your thing stops working and then people stop paying for it. And then you don't pay your rent.

255
00:25:41.220 --> 00:25:56.460
<v 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.

256
00:25:56.460 --> 00:26:05.220
<v 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.

257
00:26:05.220 --> 00:26:15.700
<v 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.

258
00:26:15.700 --> 00:26:20.600
<v 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.

259
00:26:20.600 --> 00:26:20.680
<v Ben Rady>Right.

260
00:26:20.680 --> 00:26:34.400
<v 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.

261
00:26:34.400 --> 00:26:47.230
<v 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.

262
00:26:47.230 --> 00:26:47.360
<v Ben Rady>Right.

263
00:26:47.360 --> 00:27:04.560
<v 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.

264
00:27:04.560 --> 00:27:09.960
<v 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.

265
00:27:09.960 --> 00:27:24.220
<v 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.

266
00:27:24.220 --> 00:27:24.840
<v Ben Rady>Right.

267
00:27:24.840 --> 00:27:35.140
<v 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.

268
00:27:35.140 --> 00:27:45.680
<v 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.

269
00:27:45.680 --> 00:27:54.100
<v 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.

270
00:27:54.100 --> 00:27:54.160
<v Ben Rady>Yeah.

271
00:27:54.160 --> 00:27:58.520
<v Matt Godbolt>You've got no recourse. Whereas in the open source model, like I still have the code on my computer.

272
00:27:58.520 --> 00:27:58.680
<v Ben Rady>Yeah.

273
00:27:58.680 --> 00:28:04.960
<v 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.

274
00:28:04.960 --> 00:28:05.580
<v Ben Rady>Right.

275
00:28:05.580 --> 00:28:11.060
<v Matt Godbolt>things like ah AWS is another vendor, which I'm very much locked into.

276
00:28:11.060 --> 00:28:11.680
<v Ben Rady>Oh, yeah.

277
00:28:11.680 --> 00:28:16.720
<v 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.

278
00:28:16.720 --> 00:28:17.680
<v Ben Rady>Yeah, yeah, yeah.

279
00:28:17.680 --> 00:28:31.400
<v 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.

280
00:28:31.400 --> 00:28:43.020
<v 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.

281
00:28:43.020 --> 00:28:43.500
<v Ben Rady>Mm hmm.

282
00:28:43.500 --> 00:28:48.380
<v Ben Rady>Right, right. Or I've built a critical tool on top of something I don't understand and like, you know.

283
00:28:48.380 --> 00:28:51.880
<v Matt Godbolt>Yeah although i wonder how much that's common in business full stop right you know like how many CEOs... yeah.

284
00:28:51.880 --> 00:29:02.440
<v 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.

285
00:29:02.440 --> 00:29:10.080
<v Ben Rady>that you don't have when you have people who actually understand the code that is being written and how it works.

286
00:29:10.080 --> 00:29:16.730
<v 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.

287
00:29:16.730 --> 00:29:17.040
<v Ben Rady>Right.

288
00:29:17.040 --> 00:29:17.580
<v Ben Rady>Right, right.

289
00:29:17.580 --> 00:29:35.430
<v 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.

290
00:29:35.430 --> 00:29:35.470
<v Ben Rady>Mm-hmm.

291
00:29:35.470 --> 00:29:35.520
<v Ben Rady>Yeah.

292
00:29:35.520 --> 00:29:44.860
<v 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.

293
00:29:44.860 --> 00:29:45.110
<v Ben Rady>Yes, exactly, exactly.

294
00:29:45.110 --> 00:29:45.280
<v Matt Godbolt>And yeah.

295
00:29:45.280 --> 00:29:55.150
<v 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.

296
00:29:55.150 --> 00:29:55.280
<v Matt Godbolt>Oh, yes.

297
00:29:55.280 --> 00:30:07.200
<v 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.

298
00:30:07.200 --> 00:30:11.250
<v Ben Rady>And then there is a system that relies on an AI for its operation.

299
00:30:11.250 --> 00:30:11.640
<v Matt Godbolt>Yep.

300
00:30:11.640 --> 00:30:17.980
<v Ben Rady>right And that has a much greater risk of just one day not working and you don't understand why.

301
00:30:17.980 --> 00:30:32.100
<v 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.

302
00:30:32.100 --> 00:30:35.940
<v 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.

303
00:30:35.940 --> 00:30:35.940
<v Matt Godbolt>Yeah.

304
00:30:35.940 --> 00:30:44.200
<v 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.

305
00:30:44.200 --> 00:30:53.400
<v 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...

306
00:30:53.400 --> 00:30:53.400
<v Ben Rady>And so I so i think things like deep seek like also have that effect.

307
00:30:53.400 --> 00:31:05.780
<v 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.

308
00:31:05.780 --> 00:31:06.320
<v Ben Rady>and Right.

309
00:31:06.320 --> 00:31:20.610
<v 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.

310
00:31:20.610 --> 00:31:21.600
<v Ben Rady>Mm-hmm.

311
00:31:21.600 --> 00:31:37.500
<v 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.

312
00:31:37.500 --> 00:31:58.140
<v 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.

313
00:31:58.140 --> 00:31:58.140
<v Ben Rady>Right.

314
00:31:58.140 --> 00:32:09.900
<v 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.

315
00:32:09.900 --> 00:32:25.060
<v 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.

316
00:32:25.060 --> 00:32:30.100
<v Ben Rady>It's not that you built a system with DeepSeek.

317
00:32:30.100 --> 00:32:32.210
<v Ben Rady>You wrote the code and it uses DeepSeek to do something.

318
00:32:32.210 --> 00:32:32.990
<v Matt Godbolt>Yep. And it uses DeepSeek things.

319
00:32:32.990 --> 00:32:33.120
<v Ben Rady>right

320
00:32:33.120 --> 00:32:33.620
<v Matt Godbolt>So it's, yeah, like did.

321
00:32:33.620 --> 00:32:42.580
<v 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.

322
00:32:42.580 --> 00:32:43.280
<v Matt Godbolt>It's very similar. Yes.

323
00:32:43.280 --> 00:32:53.780
<v 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.

324
00:32:53.780 --> 00:32:55.500
<v Matt Godbolt>Yeah.

325
00:32:55.500 --> 00:33:04.070
<v 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,

326
00:33:04.070 --> 00:33:04.500
<v Matt Godbolt>yes

327
00:33:04.500 --> 00:33:16.980
<v 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.

328
00:33:16.980 --> 00:33:28.620
<v 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,

329
00:33:28.620 --> 00:33:29.100
<v Matt Godbolt>Not wrong.

330
00:33:29.100 --> 00:33:43.660
<v 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.

331
00:33:43.660 --> 00:33:43.880
<v Matt Godbolt>Yeah.

332
00:33:43.880 --> 00:33:50.820
<v Ben Rady>you know the sort of What happens when the load-bearing internet person is just DeepSeek?

333
00:33:50.820 --> 00:33:50.980
<v Matt Godbolt>Yeah.

334
00:33:50.980 --> 00:34:01.940
<v 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?

335
00:34:01.940 --> 00:34:17.350
<v 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.

336
00:34:17.350 --> 00:34:17.460
<v Ben Rady>Yeah.

337
00:34:17.460 --> 00:34:18.220
<v Matt Godbolt>That's really, yeah.

338
00:34:18.220 --> 00:34:19.100
<v Ben Rady>yeah

339
00:34:19.100 --> 00:34:40.960
<v 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.

340
00:34:40.960 --> 00:34:40.960
<v Ben Rady>Oh, yeah. Oh,

341
00:34:40.960 --> 00:34:42.490
<v Matt Godbolt>We started out reasonably positive...

342
00:34:42.490 --> 00:34:43.480
<v Ben Rady>oh yeah.

343
00:34:43.480 --> 00:34:56.140
<v 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.

344
00:34:56.140 --> 00:34:58.200
<v Matt Godbolt>And sometimes it's really, really good at that.

345
00:34:58.200 --> 00:34:58.900
<v Ben Rady>Mm hmm.

346
00:34:58.900 --> 00:35:12.000
<v 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.

347
00:35:12.000 --> 00:35:40.020
<v 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.

348
00:35:40.020 --> 00:36:12.060
<v 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",

349
00:36:12.060 --> 00:36:44.040
<v 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

350
00:36:44.040 --> 00:36:56.550
<v 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.

351
00:36:56.550 --> 00:36:56.580
<v Ben Rady>Yeah.

352
00:36:56.580 --> 00:37:01.170
<v Matt Godbolt>But obviously, testing it and checking it is the the thing it's, but

353
00:37:01.170 --> 00:37:01.720
<v Ben Rady>Yeah.

354
00:37:01.720 --> 00:37:18.660
<v 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?

355
00:37:18.660 --> 00:37:21.870
<v Matt Godbolt>And I just asked it, I asked the the chat thing, can you comment this for me?

356
00:37:21.870 --> 00:37:21.920
<v Ben Rady>and

357
00:37:21.920 --> 00:37:30.710
<v 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,

358
00:37:30.710 --> 00:37:30.960
<v Ben Rady>Mm hmm.

359
00:37:30.960 --> 00:37:38.740
<v 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.

360
00:37:38.740 --> 00:37:39.180
<v Ben Rady>Mm hmm.

361
00:37:39.180 --> 00:37:44.870
<v Matt Godbolt>So that's amazing when that happens. But so what what have you got any, any cool stories?

362
00:37:44.870 --> 00:37:45.080
<v Ben Rady>Yeah.

363
00:37:45.080 --> 00:38:01.940
<v 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?

364
00:38:01.940 --> 00:38:08.140
<v 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.

365
00:38:08.140 --> 00:38:08.220
<v Ben Rady>Yeah, right, right.

366
00:38:08.220 --> 00:38:22.500
<v 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.

367
00:38:22.500 --> 00:38:32.720
<v 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.

368
00:38:32.720 --> 00:38:32.860
<v Matt Godbolt>Yeah.

369
00:38:32.860 --> 00:38:33.500
<v Ben Rady>right um

370
00:38:33.500 --> 00:38:34.800
<v Matt Godbolt>Yeah.

371
00:38:34.800 --> 00:38:49.500
<v 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.

372
00:38:49.500 --> 00:38:50.420
<v Matt Godbolt>Okay, I'll allow it.

373
00:38:50.420 --> 00:39:31.060
<v 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,

374
00:39:31.060 --> 00:39:51.120
<v 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.

375
00:39:51.120 --> 00:39:51.580
<v Matt Godbolt>Yeah.

376
00:39:51.580 --> 00:40:06.220
<v 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.

377
00:40:06.220 --> 00:40:16.930
<v 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.

378
00:40:16.930 --> 00:40:17.420
<v Matt Godbolt>Yeah.

379
00:40:17.420 --> 00:40:27.560
<v 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.

380
00:40:27.560 --> 00:40:38.340
<v 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.

381
00:40:38.340 --> 00:40:39.820
<v Matt Godbolt>Hmm, we should talk about that sometime.

382
00:40:39.820 --> 00:40:50.730
<v 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.

383
00:40:50.730 --> 00:40:50.820
<v Matt Godbolt>Yeah.

384
00:40:50.820 --> 00:41:03.640
<v 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.

385
00:41:03.640 --> 00:41:12.080
<v 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.

386
00:41:12.080 --> 00:41:30.440
<v 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.

387
00:41:30.440 --> 00:41:31.040
<v Ben Rady>Yeah, right, exactly, yeah.

388
00:41:31.040 --> 00:41:36.390
<v Matt Godbolt>That's a useful thing, right? Otherwise, it's just trying to write generic ah code from the from the internet.

389
00:41:36.390 --> 00:41:37.080
<v Ben Rady>Mm hmm, yeah.

390
00:41:37.080 --> 00:41:51.440
<v 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.

391
00:41:51.440 --> 00:42:06.940
<v 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.

392
00:42:06.940 --> 00:42:17.080
<v 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.

393
00:42:17.080 --> 00:42:17.120
<v Ben Rady>Hahahah; yeah.

394
00:42:17.120 --> 00:42:24.650
<v 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?

395
00:42:24.650 --> 00:42:24.900
<v Ben Rady>Yeah.

396
00:42:24.900 --> 00:42:36.160
<v 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".

397
00:42:36.160 --> 00:42:38.810
<v Matt Godbolt>And it's like, boom, there you go. You just hit Tab, and the whole thing auto-completes.

398
00:42:38.810 --> 00:42:39.000
<v Ben Rady>Yeah.

399
00:42:39.000 --> 00:42:41.620
<v Matt Godbolt>That's a valuable thing, I think, or at least a useful thing.

400
00:42:41.620 --> 00:42:42.020
<v Ben Rady>Yeah, yeah.

401
00:42:42.020 --> 00:42:48.970
<v 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.

402
00:42:48.970 --> 00:42:49.090
<v Ben Rady>Yeah.

403
00:42:49.090 --> 00:42:49.340
<v Matt Godbolt>That's it.

404
00:42:49.340 --> 00:43:02.880
<v 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.

405
00:43:02.880 --> 00:43:12.600
<v 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?

406
00:43:12.600 --> 00:43:13.500
<v Matt Godbolt>I don't...

407
00:43:13.500 --> 00:43:14.240
<v Ben Rady>Did you ever have that?

408
00:43:14.240 --> 00:43:15.660
<v Matt Godbolt>No, no, I didn't.

409
00:43:15.660 --> 00:43:25.900
<v 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.

410
00:43:25.900 --> 00:43:26.620
<v Matt Godbolt>Wow.

411
00:43:26.620 --> 00:43:38.060
<v 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.

412
00:43:38.060 --> 00:43:59.030
<v 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.

413
00:43:59.030 --> 00:44:00.240
<v Matt Godbolt>Mm hmm.

414
00:44:00.240 --> 00:44:02.900
<v Matt Godbolt>Some might say it's the most important thing programmers can do actually

415
00:44:02.900 --> 00:44:28.230
<v 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.

416
00:44:28.230 --> 00:44:31.460
<v Matt Godbolt>Because that's what the AI is really doing behind the scenes.

417
00:44:31.460 --> 00:44:31.560
<v Ben Rady>um

418
00:44:31.560 --> 00:44:35.000
<v Matt Godbolt>Anyway, yeah we haven't talked about the ethics of where it got all of its information from.

419
00:44:35.000 --> 00:44:35.220
<v Ben Rady>Right, yeah, yeah, yeah, yeah.

420
00:44:35.220 --> 00:44:42.970
<v 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.

421
00:44:42.970 --> 00:44:43.200
<v Ben Rady>Yeah.

422
00:44:43.200 --> 00:44:44.670
<v Ben Rady>Right, right, right.

423
00:44:44.670 --> 00:44:45.120
<v Matt Godbolt>Let me Google that for you.

424
00:44:45.120 --> 00:44:56.220
<v 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.

425
00:44:56.220 --> 00:44:56.620
<v Matt Godbolt>Right.

426
00:44:56.620 --> 00:44:59.760
<v Ben Rady>But it is not totally dissimilar from that process, right?

427
00:44:59.760 --> 00:45:06.080
<v 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...

428
00:45:06.080 --> 00:45:12.560
<v 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.

429
00:45:12.560 --> 00:45:19.550
<v 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.

430
00:45:19.550 --> 00:45:19.610
<v Ben Rady>Yeah. Yeah, yeah, yeah.

431
00:45:19.610 --> 00:45:19.620
<v Ben Rady>Right.

432
00:45:19.620 --> 00:45:27.540
<v 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....

433
00:45:27.540 --> 00:45:27.720
<v Ben Rady>Right.

434
00:45:27.720 --> 00:45:38.300
<v 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.

435
00:45:38.300 --> 00:45:48.960
<v 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.

436
00:45:48.960 --> 00:45:49.000
<v Ben Rady>Mm hmm.

437
00:45:49.000 --> 00:45:57.600
<v 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.

438
00:45:57.600 --> 00:45:57.720
<v Ben Rady>Right.

439
00:45:57.720 --> 00:46:09.720
<v 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.

440
00:46:09.720 --> 00:46:13.240
<v Matt Godbolt>So, lovely to catch up with you, my friend.

441
00:46:13.240 --> 00:46:14.440
<v Ben Rady>Yeah. Uh-huh. I'll see you next week.

442
00:46:14.440 --> 00:46:15.570
<v Matt Godbolt>Yeah, I see you.

443
00:46:15.570 --> 00:46:15.740
<v Ben Rady>yeah

444
00:46:15.740 --> 00:46:17.640
<v Matt Godbolt>Yeah, I guess so.

445
00:46:17.640 --> 00:46:17.920
<v Ben Rady>that

446
00:46:17.920 --> 00:46:29.100
<v 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.

447
00:46:29.100 --> 00:46:31.120
<v Ben Rady>Probably things will have gone very poorly if that happens.

448
00:46:31.120 --> 00:46:40.940
<v 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...

449
00:46:40.940 --> 00:46:51.910
<v 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.

450
00:46:51.910 --> 00:46:52.300
<v Ben Rady>Until next time.

451
00:46:52.300 --> 00:46:55.300
<v Matt Godbolt>Till next time.

