WEBVTT

1
00:00:11.560 --> 00:00:19.800
<v Matt Godbolt>Hey, Ben.

2
00:00:19.800 --> 00:00:20.680
<v Ben Rady>Hey, Matt.

3
00:00:20.680 --> 00:00:22.400
<v Matt Godbolt>How are things?

4
00:00:22.400 --> 00:00:23.180
<v Ben Rady>Great.

5
00:00:23.180 --> 00:00:29.320
<v Matt Godbolt>It's that time of the week when I say, hey, Ben, and then you say, hey, Matt, and then we talk about something.

6
00:00:29.320 --> 00:00:29.960
<v Ben Rady>Mm-hmm. Yep.

7
00:00:29.960 --> 00:00:38.700
<v Matt Godbolt>Have you any idea what that thing should be? Because, you know, I've planned carefully and I have nothing, as per.

8
00:00:38.700 --> 00:00:39.700
<v Ben Rady>Right. No, I do have a thing. I started doing a new thing this week.

9
00:00:39.700 --> 00:00:43.580
<v Matt Godbolt>Okay, let's talk about yours. All right. What are we going to talk about?

10
00:00:43.580 --> 00:00:58.560
<v Ben Rady>So, careful listener of this podcast may recall that I have talked before about having a period in my career where I tried to learn a new programming language every year.

11
00:00:58.560 --> 00:01:06.200
<v Ben Rady>This year's new programming language is English. It's all the rage. But in addition to that, the...

12
00:01:06.200 --> 00:01:10.160
<v Matt Godbolt>Oh, I've heard, or American or English?

13
00:01:10.160 --> 00:01:11.060
<v Ben Rady>The English. It's proper English, right?

14
00:01:11.060 --> 00:01:13.780
<v Matt Godbolt>English. Oh, okay.

15
00:01:13.780 --> 00:01:16.720
<v Ben Rady>I mean, you got to put some U's in some places, I guess, if you really want to call it English.

16
00:01:16.720 --> 00:01:16.720
<v Matt Godbolt>Yeah.

17
00:01:16.720 --> 00:01:21.600
<v Matt Godbolt>Well, I certainly do. And far fewer Zs than you would put in, and you would call them Zs.

18
00:01:21.600 --> 00:01:21.840
<v Ben Rady>But, you know.

19
00:01:21.840 --> 00:01:29.650
<v Ben Rady>Right. Some S's instead of Z's. I think that's, but is this like the German translation, where you just take all the spaces out?

20
00:01:29.650 --> 00:01:29.870
<v Matt Godbolt>That's right. Yeah.

21
00:01:29.870 --> 00:01:30.020
<v Ben Rady>That's, yeah.

22
00:01:30.020 --> 00:01:31.840
<v Matt Godbolt>I think that's pretty much what German is.

23
00:01:31.840 --> 00:01:38.370
<v Matt Godbolt>German is just English, but with random capital letters in the middle of the word and no spaces between words.

24
00:01:38.370 --> 00:01:38.910
<v Ben Rady>You just...

25
00:01:38.910 --> 00:01:39.170
<v Matt Godbolt>Yeah.

26
00:01:39.170 --> 00:01:39.980
<v Ben Rady>Exactly.

27
00:01:39.980 --> 00:01:42.140
<v Matt Godbolt>Have we, is there anyone we haven't offended yet? Let's just...

28
00:01:42.140 --> 00:01:46.500
<v Ben Rady>Let's keep going.

29
00:01:46.500 --> 00:01:47.700
<v Matt Godbolt>Okay. But yeah, programming in English. Programming in English.

30
00:01:47.700 --> 00:01:47.880
<v Ben Rady>Yeah. So that was...

31
00:01:47.880 --> 00:01:51.240
<v Matt Godbolt>So tell me about your new language you're programming in, which I mean... yeah.

32
00:01:51.240 --> 00:02:00.760
<v Ben Rady>Well, so I've kind of, just as I've had on my list, and I say jokingly that, you know, the hot new programming language is English.

33
00:02:00.760 --> 00:02:01.780
<v Matt Godbolt>Yeah.

34
00:02:01.780 --> 00:02:02.800
<v Matt Godbolt>Yeah.

35
00:02:02.800 --> 00:02:16.500
<v Ben Rady>I've had a number of programming languages on this list of, like, you know, if I ever get back to this practice, because I kind of fell out of it, because I was sort of like, what language could I learn that would allow me to do something that I can't do in an existing language, right?

36
00:02:16.500 --> 00:02:21.640
<v Ben Rady>Like, you know, if you've never built a web application before and you don't know JavaScript, then JavaScript is a way, yeah, it's like, I can do this.

37
00:02:21.640 --> 00:02:25.080
<v Matt Godbolt>Then you're probably right. That's interesting.

38
00:02:25.080 --> 00:02:26.420
<v Ben Rady>I couldn't do this before, right?

39
00:02:26.420 --> 00:02:34.960
<v Matt Godbolt>Okay. Or like an HDL for, like, you know, hey, I'm programming an FPGA and I can make lights blink in a new and exciting way, but I can't write this in Java.

40
00:02:34.960 --> 00:02:35.780
<v Ben Rady>Right.

41
00:02:35.780 --> 00:02:37.540
<v Matt Godbolt>And so maybe I need to learn something else.

42
00:02:37.540 --> 00:02:37.540
<v Ben Rady>Yes.

43
00:02:37.540 --> 00:02:40.730
<v Matt Godbolt>And it's a paradigm shift that goes alongside the language.

44
00:02:40.730 --> 00:02:40.800
<v Ben Rady>Yes.

45
00:02:40.800 --> 00:02:49.900
<v Matt Godbolt>It makes you think, I mean, what is it, the Sapir-Whorf hypothesis thing that says, you know, the language you first learn sort of tempers however... and my first language was, you know, machine code and assembly.

46
00:02:49.900 --> 00:02:49.900
<v Ben Rady>Mm-hmm.

47
00:02:49.900 --> 00:02:51.390
<v Matt Godbolt>So that definitely has tempered my entire...

48
00:02:51.390 --> 00:02:51.400
<v Ben Rady>Mm-hmm.

49
00:02:51.400 --> 00:02:54.870
<v Matt Godbolt>experience in my career.

50
00:02:54.870 --> 00:02:55.380
<v Ben Rady>Mm-hmm.

51
00:02:55.380 --> 00:03:13.240
<v Matt Godbolt>But there are definitely languages that force you to think in different ways, be it like a Prolog-type language, and it first bends your mind and you go, oh, I see, you can specify things this way. Or a Lispy thing where you're exposed to the fact that the representation is the language and all that good stuff.

52
00:03:13.240 --> 00:03:14.600
<v Ben Rady>Yes.

53
00:03:14.600 --> 00:03:17.060
<v Matt Godbolt>So yeah, English though, but I'm pretty familiar with English.

54
00:03:17.060 --> 00:03:29.440
<v Ben Rady>Yeah, yeah. Well, OK, so the spoiler alert: the language that I am trying to teach myself, basically starting this week, is Rust. And I have used Rust before.

55
00:03:29.440 --> 00:03:37.100
<v Ben Rady>But the sort of new idea around all of this is in the way that I teach myself this language.

56
00:03:37.100 --> 00:03:37.200
<v Matt Godbolt>Right.

57
00:03:37.200 --> 00:03:48.140
<v Ben Rady>So previously, the way that I had always done this was I came up with some project, right? And that was sort of the relationship between, like, hey, I'm going to learn a new language to be able to do this kind of thing.

58
00:03:48.140 --> 00:03:55.300
<v Ben Rady>And I'm going to learn that by doing the thing. And then I will, you know, learn the language and then I will be very confident that I can do the thing, right? And...

59
00:03:55.300 --> 00:04:02.280
<v Matt Godbolt>Like, I want to write a ray tracer, I go write it in Rust and I get my, you know, maybe you've done that 10 times before, or it's something completely new. Like, yeah, I get it. Yeah.

60
00:04:02.280 --> 00:04:19.200
<v Ben Rady>And the, you know, Sapir-Whorf hypothesis reason for doing that is also a good reason. I've told people, you know, people ask me for advice on, you know, what should I do in my career, how should I be a better programmer, and I would, I still give this advice out, I'm like, how many programming languages do you know? You should try to learn more of them.

61
00:04:19.200 --> 00:04:27.180
<v Ben Rady>Because two things. One is you will be able to do more things. And also it will expand your mind in terms of how things work.

62
00:04:27.180 --> 00:04:27.280
<v Matt Godbolt>It's...

63
00:04:27.280 --> 00:04:39.640
<v Ben Rady>You know, I love Clojure as a programming language because it's fun. I wouldn't inflict it on anyone right now, other than sort of as a learning exercise, but it's a fantastic learning exercise.

64
00:04:39.640 --> 00:04:41.800
<v Ben Rady>If you've never used a Lisp before, it's awesome.

65
00:04:41.800 --> 00:04:51.230
<v Matt Godbolt>It's funny you mentioned that, because when I first moved to this country, one of the first things I ended up doing was working with one of our mutual friends on a system that was all in Clojure.

66
00:04:51.230 --> 00:04:51.780
<v Ben Rady>Mm-hmm.

67
00:04:51.780 --> 00:04:58.960
<v Matt Godbolt>And I was completely, well, it took me a while to get over the hump of, what the heck is this? Why are we doing this?

68
00:04:58.960 --> 00:04:59.040
<v Ben Rady>Right.

69
00:04:59.040 --> 00:05:00.420
<v Matt Godbolt>It seems like we're doing it on hard mode.

70
00:05:00.420 --> 00:05:00.420
<v Ben Rady>Right. Okay.

71
00:05:00.420 --> 00:05:12.420
<v Matt Godbolt>...to, oh no, this is pretty neat, to the penny dropping and me going, like, oh, I get this now. I see functional programming languages as being useful. I see Lisp-like languages. I see. Wow.

72
00:05:12.420 --> 00:05:22.350
<v Matt Godbolt>And, you know, I have not chosen to go back to it, but I do feel like I'm enriched as a programmer by having had that experience.

73
00:05:22.350 --> 00:05:22.960
<v Ben Rady>Yeah.

74
00:05:22.960 --> 00:05:36.160
<v Ben Rady>Yes. Yes. Yes, yes. And it's an intersubjective experience, to use one of our favorite podcast words, because if you have used a Lisp before, then you can talk to someone else who has used a Lisp before and be like, this is just Let Over Lambda, and then they'll know what you mean, right?

75
00:05:36.160 --> 00:05:37.800
<v Matt Godbolt>Right.

76
00:05:37.800 --> 00:05:58.780
<v Ben Rady>So those are many reasons to learn programming languages, and I highly recommend that people do. What I am doing this week is I am attempting to learn a programming language not by building something that is, I think, you know, a representation of what would be good for that language. In fact, I am trying to learn a programming language by not writing any code at all.

77
00:05:58.780 --> 00:06:10.640
<v Ben Rady>What I am trying to do is learn a programming language by asking Claude to teach me the language and quiz me on whether or not I know it. And I am just going back and forth...

78
00:06:10.640 --> 00:06:10.640
<v Matt Godbolt>Oh.

79
00:06:10.640 --> 00:06:15.220
<v Ben Rady>like taking snippets of code, being like, what does this do?

80
00:06:15.220 --> 00:06:15.500
<v Matt Godbolt>That's...

81
00:06:15.500 --> 00:06:22.840
<v Ben Rady>Okay, explain this, explain that, explain that. Okay, now quiz me on all of the concepts that you just taught me and see if I get it right.

82
00:06:22.840 --> 00:06:23.040
<v Matt Godbolt>Wow.

83
00:06:23.040 --> 00:06:25.540
<v Ben Rady>And then I ask follow-up questions, all of that.

84
00:06:25.540 --> 00:06:47.680
<v Matt Godbolt>That's not what I thought you were going to say at all. I just figured you were going to say, yeah, I asked it to write the thing for me and I skimmed the code afterwards. And I was about to bring up all the kind of badnesses of, like, you know, the quote, I forget who, is it Karpathy?, but it's one of, I think you've retweeted it, something along the lines of, like, you know, LLMs let you outsource thinking, but not knowledge, right?

85
00:06:47.680 --> 00:06:58.120
<v Matt Godbolt>and, like, or experience, that kind of feel. And that's, like, I'm definitely feeling a bit of that in my day job right now. It's like, oh yeah, I don't necessarily know this as well as I should do. I'm very effective at what I'm doing, but if someone comes, yeah.

86
00:06:58.120 --> 00:07:02.140
<v Matt Godbolt>But no, you're so, yeah, tell me more. Tell me more about this approach. Yeah.

87
00:07:02.140 --> 00:07:22.480
<v Ben Rady>Well, yeah. And a lot of this sort of comes from, it would be bold to call this a realization, because I don't really know that it's fully true, but my suspicion is that it is going to be increasingly important for software engineers to read code in the future.

88
00:07:22.480 --> 00:07:30.830
<v Matt Godbolt>I think that's, I mean, even as you get more senior, I think that's become true, as you end up mentoring more folks and they ask your opinion of code and whatnot.

89
00:07:30.830 --> 00:07:31.420
<v Ben Rady>Yeah.

90
00:07:31.420 --> 00:07:38.000
<v Matt Godbolt>And, you know, maybe you spend more time, yeah, either explicitly reviewing PRs or just over people's shoulders helping them. So yeah, I think reading code is, yeah.

91
00:07:38.000 --> 00:07:38.000
<v Ben Rady>Right.

92
00:07:38.000 --> 00:07:38.800
<v Matt Godbolt>important.

93
00:07:38.800 --> 00:07:44.120
<v Ben Rady>It's always been important. It's always been very important. I think it's going to become even more important.

94
00:07:44.120 --> 00:07:44.480
<v Matt Godbolt>Right.

95
00:07:44.480 --> 00:07:45.560
<v Ben Rady>And I...

96
00:07:45.560 --> 00:07:53.980
<v Matt Godbolt>What, until we teach the robots to just review it? And then at what point will that flip? Then it's like, we're writing code and the robots are telling us not to do it that way.

97
00:07:53.980 --> 00:08:12.190
<v Ben Rady>I mean, so the code is always, I think, at this point, I think I could say that the code is always going to be the actual source of truth, right? Like, there's enough well-worn, and you can certainly point out some situations in which source code and what the machine is actually doing do not line up in a consistent way.

98
00:08:12.190 --> 00:08:12.290
<v Matt Godbolt>Right.

99
00:08:12.290 --> 00:08:12.500
<v Matt Godbolt>Right.

100
00:08:12.500 --> 00:08:24.990
<v Ben Rady>Like, that is certainly possible, but it is, I think, much less likely than the delta between what the code is doing and what the English that created the code in a prompt is doing, right?

101
00:08:24.990 --> 00:08:25.030
<v Matt Godbolt>Yep.

102
00:08:25.030 --> 00:08:25.260
<v Ben Rady>Like, the code is, it's...

103
00:08:25.260 --> 00:08:27.900
<v Matt Godbolt>I think that's a fair assessment. Yeah, yeah.

104
00:08:27.900 --> 00:08:35.970
<v Ben Rady>Yeah, it's like a really good source of truth if you're going to pick a source of truth for, like, what is this program actually doing, right?

105
00:08:35.970 --> 00:08:36.600
<v Matt Godbolt>Yeah.

106
00:08:36.600 --> 00:08:39.040
<v Ben Rady>And so being able to read that is really important.

107
00:08:39.040 --> 00:08:54.660
<v Matt Godbolt>It's funny, actually. So somebody tweeted at me or whatever, not tweet, but, you know, the current whatever Hachyderm thing, with the thing that, like, someone was saying, you know, like, oh yeah, LLMs will be to code as C is to assembly code.

108
00:08:54.660 --> 00:09:06.500
<v Matt Godbolt>Nobody looks at the output of a compiler. Ha ha ha ha. And of course it's like, at Compiler Explorer, you know, like, everybody here, you know this, the reason this exists is so that we can, because we don't trust it and we do do this.

109
00:09:06.500 --> 00:09:06.640
<v Ben Rady>Yeah. Yeah. Yeah. Right.

110
00:09:06.640 --> 00:09:06.710
<v Matt Godbolt>So yeah,

111
00:09:06.710 --> 00:09:06.740
<v Ben Rady>Yeah.

112
00:09:06.740 --> 00:09:11.120
<v Matt Godbolt>I think that backs up your point. I think there's always a need to look one layer below, right?

113
00:09:11.120 --> 00:09:11.200
<v Ben Rady>Yeah.

114
00:09:11.200 --> 00:09:13.440
<v Matt Godbolt>We've talked about this before, the various layers of things.

115
00:09:13.440 --> 00:09:13.440
<v Ben Rady>Right.

116
00:09:13.440 --> 00:09:25.760
<v Matt Godbolt>And, like, each abstraction or layer brings something to the party, right? And you learn to trust it in different ways. But ultimately, you need to be able to, like, look down and go, ah, no, whatever.

117
00:09:25.760 --> 00:09:26.000
<v Ben Rady>Right.

118
00:09:26.000 --> 00:09:36.200
<v Matt Godbolt>And yeah, for those folks who say, you know, we just give it English and we just get a binary out at the end of it, it's like, no, the differentiability of the intermediate forms of, say, code is useful.

119
00:09:36.200 --> 00:09:41.550
<v Matt Godbolt>I mean, we typically don't diff the binaries to get anything useful out of it, right?

120
00:09:41.550 --> 00:09:43.560
<v Ben Rady>Right.

121
00:09:43.560 --> 00:09:45.210
<v Matt Godbolt>That doesn't seem useful. But the thing that generates the binary...

122
00:09:45.210 --> 00:09:45.900
<v Ben Rady>Right, right.

123
00:09:45.900 --> 00:09:55.620
<v Matt Godbolt>like the concepts from that make sense, that I can look at as something I've asked the AI to do and say, is this a reasonable way of achieving what you did given what was working before? And I trust...

124
00:09:55.620 --> 00:09:56.080
<v Ben Rady>Mm-hmm.

125
00:09:56.080 --> 00:10:00.400
<v Matt Godbolt>So yeah, anyway, so you've been, yeah, reading code is an important skill.

126
00:10:00.400 --> 00:10:00.460
<v Ben Rady>Mm-hmm.

127
00:10:00.460 --> 00:10:03.860
<v Matt Godbolt>There we are. I've just remembered where we're going with this. Yeah.

128
00:10:03.860 --> 00:10:25.140
<v Ben Rady>Yeah, so this whole exercise is an experiment in: what if I learned a programming language by reading it? Now, I think you and I have talked before about both of our brains really working best when we sort of get down into the nitty-gritty and, like, step by step build a thing. And that's how we really, really, really understand something.

129
00:10:25.140 --> 00:10:39.460
<v Ben Rady>And so I am trying to push myself to grow the skill of being able to have, like, ideally an equivalent level of understanding of code that I am just reading.

130
00:10:39.460 --> 00:10:51.670
<v Ben Rady>And I'm trying to start that, like, you know, I may not get there, but just move in that direction. I'm trying to start that by this experiment of, like, can I say that I am fluent in Rust and...

131
00:10:51.670 --> 00:10:51.880
<v Matt Godbolt>Mm-hmm.

132
00:10:51.880 --> 00:11:02.400
<v Ben Rady>having written basically no Rust, right? Like, can I achieve that? I don't know that I can, but that's what this journey is all about.

133
00:11:02.400 --> 00:11:13.990
<v Matt Godbolt>I am very skeptical that you could do any more than you could read every book that says how to drive a car and then get in and, or land a plane, or, you know, those kinds of things, right?

134
00:11:13.990 --> 00:11:14.100
<v Ben Rady>Mm-hmm.

135
00:11:14.100 --> 00:11:23.600
<v Matt Godbolt>They feel like things that you have to do a little bit to be able to do well. But then, there may be humans that do this. I mean, there are very bright people out there who learn and think in very different ways than the way that I do.

136
00:11:23.600 --> 00:11:25.240
<v Ben Rady>Yeah.

137
00:11:25.240 --> 00:11:31.590
<v Matt Godbolt>So, you know, I remain skeptical, but I think what you're doing is really interesting.

138
00:11:31.590 --> 00:11:33.050
<v Ben Rady>Yeah.

139
00:11:33.050 --> 00:11:36.720
<v Matt Godbolt>So how's it going so far? I mean, it's been, like, how many days? You've only been doing this a couple of days.

140
00:11:36.720 --> 00:11:39.220
<v Ben Rady>I've been doing this for like three days and it's going really well.

141
00:11:39.220 --> 00:11:39.380
<v Matt Godbolt>All right.

142
00:11:39.380 --> 00:11:54.100
<v Ben Rady>And one thing is that, of course, like, Claude, and I'm sure the LLM of your choice would do this, is shockingly good at coming up with good pointed questions to test my understanding, because it knows what my understanding is, because it taught me all those things.

143
00:11:54.100 --> 00:12:05.710
<v Ben Rady>Right. So, and the other thing that has been really nice is being able to compare it to other languages, kind of getting back to our earlier point about, like, those concepts that you bring in from other programming languages.

144
00:12:05.710 --> 00:12:06.200
<v Matt Godbolt>Ah, yeah.

145
00:12:06.200 --> 00:12:19.480
<v Ben Rady>I'm like, what would this look like in Python? How does this compare to Java? What would this look like in Ruby? You know, how does this compare to JavaScript? And, like, finding all those little things where you can, because I feel like a lot of people learn this way, where they map, right?

146
00:12:19.480 --> 00:12:21.480
<v Ben Rady>They're mapping concepts from one thing that they know.

147
00:12:21.480 --> 00:12:25.570
<v Matt Godbolt>Right, right. You're sort of like, X but not the Y part, or something like that.

148
00:12:25.570 --> 00:12:26.780
<v Ben Rady>Right, yeah.

149
00:12:26.780 --> 00:12:42.400
<v Matt Godbolt>Yeah. So are you physically writing any of this? Are you purely reading it? Because I could imagine it being, you know, like the best tutor, where it's grading you and asking you and even setting you little challenges and saying, okay, now write something which command-line parses and does blah, blah, blah, blah.

150
00:12:42.400 --> 00:12:43.380
<v Ben Rady>I have not written. Mm-hmm.

151
00:12:43.380 --> 00:12:46.640
<v Matt Godbolt>But you've not written anything.

152
00:12:46.640 --> 00:12:56.880
<v Ben Rady>I have not written anything. Now, it wouldn't surprise me if Claude kind of invents a "write me a function that does this" kind of question. And I will just do that if it does that.

153
00:12:56.880 --> 00:12:57.340
<v Matt Godbolt>Uh huh. Right.

154
00:12:57.340 --> 00:13:07.000
<v Ben Rady>But I am not prompting it to do that. And thus far, everything has been basically like, explain what's wrong with this code, right?

155
00:13:07.000 --> 00:13:15.300
<v Ben Rady>Or explain why this works, right? And it's been very good. It's been very good.

156
00:13:15.300 --> 00:13:22.660
<v Matt Godbolt>How, you know, the sycophancy of these things leads me to think that maybe it would be a little bit forgiving to you.

157
00:13:22.660 --> 00:13:30.440
<v Matt Godbolt>You know, "well done, yes, you got it right, oh, just this one minor thing", and you look and, like, no, that's terribly important. You know, how...

158
00:13:30.440 --> 00:13:43.840
<v Ben Rady>It does say things like, well, you got it mostly right, but here's the thing that you missed. And it's like, oh, you got the concept right, but here, this thing is wrong. I haven't been able to, because I haven't developed enough of an understanding yet.

159
00:13:43.840 --> 00:13:48.800
<v Ben Rady>And, like, again, the last time I wrote Rust was like 10 years ago. So at this point, I've basically forgotten...

160
00:13:48.800 --> 00:13:50.220
<v Matt Godbolt>Okay. You've forgotten most of it. Yeah, you understand...

161
00:13:50.220 --> 00:13:52.040
<v Ben Rady>I mean, I remember the basic structure of the language, and it's like, yeah, there's no...

162
00:13:52.040 --> 00:13:56.750
<v Matt Godbolt>It looks a bit like C, with the types the opposite way around to normal, and then something something borrow checker.

163
00:13:56.750 --> 00:13:57.740
<v Ben Rady>Yeah. Yeah.

164
00:13:57.740 --> 00:13:58.480
<v Matt Godbolt>There you go, right, Rust.

165
00:13:58.480 --> 00:14:18.100
<v Ben Rady>Yeah. It's like, you know, there's no inheritance and, you know, you lend and borrow, and there's no garbage collector and there's no free, right? But, like, I haven't gotten deep enough into this to have found a situation where it failed to point out something that I had said that was wrong.

166
00:14:18.100 --> 00:14:21.440
<v Ben Rady>Like, in retrospect, I realized that something was wrong.

167
00:14:21.440 --> 00:14:21.840
<v Matt Godbolt>Okay.

168
00:14:21.840 --> 00:14:27.710
<v Ben Rady>Again, I'm three days into this, so it may be not surprising that I haven't hit that yet, but it's definitely something that I am concerned about.

169
00:14:27.710 --> 00:14:27.900
<v Matt Godbolt>Of course.

170
00:14:27.900 --> 00:14:32.950
<v Ben Rady>And also just on the obvious thing of, like, how do you know that the LLM is right, right?

171
00:14:32.950 --> 00:14:35.400
<v Matt Godbolt>Okay.

172
00:14:35.400 --> 00:14:38.760
<v Ben Rady>Like, you know, that's a base-level skepticism that everyone should have with any kind of exercise like this.

173
00:14:38.760 --> 00:14:38.860
<v Matt Godbolt>Yeah, that's true.

174
00:14:38.860 --> 00:14:44.620
<v Ben Rady>You're learning from, you know, whatever LLM, how do you know it's not giving you bogus information?

175
00:14:44.620 --> 00:14:44.880
<v Matt Godbolt>Yeah.

176
00:14:44.880 --> 00:14:58.600
<v Ben Rady>One of the things that I think is going to be unavoidable, probably, with this is I need some external validation of the concepts that I'm learning. And obviously the thing that I would reach for is, well, go write a frigging program and then you'll know.

177
00:14:58.600 --> 00:14:59.400
<v Matt Godbolt>Yeah, yeah, yeah.

178
00:14:59.400 --> 00:15:03.720
<v Ben Rady>But I'm trying to, like, not do that if I don't have to do that.

179
00:15:03.720 --> 00:15:12.590
<v Matt Godbolt>Well, this seems timely, but, a website that some people refer to after my last name has got an MCP now.

180
00:15:12.590 --> 00:15:12.640
<v Ben Rady>Right. I probably will. But...

181
00:15:12.640 --> 00:15:12.650
<v Ben Rady>No.

182
00:15:12.650 --> 00:15:19.180
<v Matt Godbolt>So you can just add the endpoint of your choice.

183
00:15:19.180 --> 00:15:32.550
<v Matt Godbolt>I will use compiler-explorer.com slash MCP. And then all the languages and all the execution and everything are available to it. So you could tell your LLM, I mean, obviously it could also write the stupid thing locally and run your own local Rust toolchain and all that good stuff.

184
00:15:32.550 --> 00:15:32.570
<v Ben Rady>No.

185
00:15:32.570 --> 00:15:32.600
<v Ben Rady>Interesting.

186
00:15:32.600 --> 00:15:55.720
<v Matt Godbolt>But for small snippets, it might be useful to say, hey, I can do this on the go. You can add it in, like, the web version of your favorite LLM tool if you're having just a regular chat with it, and it can go off and do the needful things there. Which has been an interesting journey in, how do you give LLMs what they need without overwhelming them with tokens, kind of thing, on my side, but that's a whole other story.

187
00:15:55.720 --> 00:15:55.750
<v Ben Rady>Yeah.

188
00:15:55.750 --> 00:15:55.820
<v Ben Rady>Yeah. Yeah.

189
00:15:55.820 --> 00:15:58.100
<v Matt Godbolt>I don't want to derail too totally, but yeah.

190
00:15:58.100 --> 00:15:59.320
<v Ben Rady>Filling up way too much context.

191
00:15:59.320 --> 00:15:59.600
<v Matt Godbolt>Yeah.

192
00:15:59.600 --> 00:16:12.820
<v Ben Rady>One of the more interesting elements of this is, you know, previously, when I had been doing this, you know, learning a new language by building a project, it was very much like, okay, I'm going to get my laptop and I'm going to sit down, I'm going to plug in the monitors and put on some music and I'm going to sit down and I'm going to code.

193
00:16:12.820 --> 00:16:19.590
<v Ben Rady>And that was, like, a very focused activity that was restricted in when and where I could do it, right?

194
00:16:19.590 --> 00:16:20.140
<v Matt Godbolt>Right, yeah.

195
00:16:20.140 --> 00:16:28.200
<v Ben Rady>Now I can do this on the train home. I just pull out my phone, pull up the chat that I have running with Claude and be like, okay, what does this operator do here?

196
00:16:28.200 --> 00:16:28.380
<v Matt Godbolt>Yeah.

197
00:16:28.380 --> 00:16:31.240
<v Ben Rady>Like, what is this thing? And then you just kind of keep it going.

198
00:16:31.240 --> 00:16:34.190
<v Matt Godbolt>No, that for me has become very valuable.

199
00:16:34.190 --> 00:16:34.200
<v Ben Rady>Right.

200
00:16:34.200 --> 00:16:51.240
<v Matt Godbolt>The ability to essentially continue useful knowledge work while on the move, be it through remote control of a session that I've got running somewhere else, be it through exactly as you describe. I've got a number of long-lived projects that have me trying to understand...

201
00:16:51.240 --> 00:17:04.370
<v Matt Godbolt>I'm laughing because it's so sad, trying to understand, you know, how 1980s television signals were encoded and decoded, for reasons we'll talk about hopefully on another podcast.

202
00:17:04.370 --> 00:17:04.560
<v Ben Rady>Yeah.

203
00:17:04.560 --> 00:17:15.980
<v Matt Godbolt>But yeah, and that is very valuable. And you can say, yeah, I've just been thinking about this thing, like, walking the dog, what about that? How does that bit work? How do you know that this is true? And then it's a useful thing.

204
00:17:15.980 --> 00:17:24.490
<v Matt Godbolt>And, you know, 10 years ago, 15 years ago, maybe even 20 years ago, you would just Google it, right? It would be a Google search and you would find it.

205
00:17:24.490 --> 00:17:24.580
<v Ben Rady>Yeah. Yeah.

206
00:17:24.580 --> 00:17:29.380
<v Matt Godbolt>And then you'd be like, oh, this is cool, and you'd find someone's blog page that talks about that thing and you scroll down till you find it.

207
00:17:29.380 --> 00:17:29.580
<v Ben Rady>Mm-hmm.

208
00:17:29.580 --> 00:17:42.760
<v Matt Godbolt>And then, you know, maybe 10 or 15 years ago, you start looking at the synopsis thing that appears at the top, this pre-AI, like, hey, did you mean this thing? Oh, I did, actually. Fine. I got the answer to it, which obviously...

209
00:17:42.760 --> 00:17:49.610
<v Matt Godbolt>had its own bag of problems, you know, like, well, now Google aren't actually sending you to the webpage that had the information on it, which means that they don't get the hit.

210
00:17:49.610 --> 00:17:50.020
<v Ben Rady>Right. Yeah.

211
00:17:50.020 --> 00:18:04.240
<v Matt Godbolt>Now, of course, you do get the AI summary at the top, which, it's funny, I think, I don't know if you perceive this or not, but the tide seems to have turned from "we hate this" to mostly indifference and occasional "oh, that was handy."

212
00:18:04.240 --> 00:18:15.200
<v Matt Godbolt>Certainly dinner-table conversations with my family have gone from "well, this is stupid, ha ha," to "oh, it says this," and you're like, oh yeah, that's fair.

213
00:18:15.200 --> 00:18:16.640
<v Ben Rady>Yeah.

214
00:18:16.640 --> 00:18:27.560
<v Matt Godbolt>But yeah, all these things are really valuable ways of being on the move and being able to continue doing something. But I wonder if that comes with a different problem of, you know, burnout, right?

215
00:18:27.560 --> 00:18:31.430
<v Matt Godbolt>We've talked about this before, where you're managing 12 different chats and trying to make progress and whatever.

216
00:18:31.430 --> 00:18:31.540
<v Ben Rady>Uh-huh.

217
00:18:31.540 --> 00:18:33.430
<v Matt Godbolt>And now you can't get away from the stupid thing.

218
00:18:33.430 --> 00:18:33.860
<v Ben Rady>Mm-hmm.

219
00:18:33.860 --> 00:18:34.710
<v Matt Godbolt>Yeah. Yeah.

220
00:18:34.710 --> 00:18:35.140
<v Ben Rady>Mm-hmm.

221
00:18:35.140 --> 00:18:36.860
<v Matt Godbolt>Sorry, that was a real derail, but yeah.

222
00:18:36.860 --> 00:18:41.370
<v Ben Rady>No, it's not. I mean, it's all related to this, right?

223
00:18:41.370 --> 00:18:45.140
<v Matt Godbolt>Yeah.

224
00:18:45.140 --> 00:18:48.500
<v Ben Rady>It's, I was going to say, if this works, and then it's like, how would I know if it worked?

225
00:18:48.500 --> 00:18:51.060
<v Matt Godbolt>Yeah, what will be, yeah.

226
00:18:51.060 --> 00:18:51.910
<v Ben Rady>Right? Like, well, yeah, kind of.

227
00:18:51.910 --> 00:18:52.080
<v Matt Godbolt>How do you test this, right?

228
00:18:52.080 --> 00:19:00.100
<v Ben Rady>I mean, it's sort of like, okay, I claim that I am fluent in a programming language. What do you use to back up that claim?

229
00:19:00.100 --> 00:19:18.120
<v Matt Godbolt>Is there a distinction between fluidity to read and fluidity to write, too? Because, I mean, like, so, fluidity to read, to me, means that you understand everything that you will likely see in the language, and you are capable of then applying your sort of experience and your intelligence and your...

230
00:19:18.120 --> 00:19:18.500
<v Ben Rady>Yeah.

231
00:19:18.500 --> 00:19:18.880
<v Ben Rady>Yeah.

232
00:19:18.880 --> 00:19:35.040
<v Matt Godbolt>you know, I guess experience, right, to say, I think this is a good way of doing this, this seems fine to me, there are no issues, there are no bugs, the tests are good, all that stuff, right. And that is still fundamentally different from, given a blank page, make a Rust project that does X.

233
00:19:35.040 --> 00:19:35.720
<v Ben Rady>Yeah.

234
00:19:35.720 --> 00:19:38.060
<v Matt Godbolt>That does seem like a different skill set.

235
00:19:38.060 --> 00:19:49.340
<v Ben Rady>Certainly, at any time in the past, if somebody had come to me and they had said, well, I am a C++ expert, but in reading only, I would have been like, ha, oh, wait, you're serious.

236
00:19:49.340 --> 00:19:49.550
<v Matt Godbolt>Yeah.

237
00:19:49.550 --> 00:19:49.990
<v Ben Rady>Right, right?

238
00:19:49.990 --> 00:19:50.640
<v Matt Godbolt>Yeah, yeah, yeah.

239
00:19:50.640 --> 00:19:53.000
<v Ben Rady>Like, like, what? So...

240
00:19:53.000 --> 00:19:57.560
<v Matt Godbolt>Is it like, you know, like a foreign language, to go back to our original language thing?

241
00:19:57.560 --> 00:20:00.400
<v Ben Rady>Yeah, like, you can hear it but you can't speak it, something like that? Yeah.

242
00:20:00.400 --> 00:20:04.140
<v Matt Godbolt>Yeah, you know, like, or, you know, reading, I could read a book in French, say, and you'd be like, that's one thing.

243
00:20:04.140 --> 00:20:04.200
<v Ben Rady>Yeah.

244
00:20:04.200 --> 00:20:08.290
<v Matt Godbolt>But if you drop me in Paris, I'd be a bit SOL, really, you know?

245
00:20:08.290 --> 00:20:08.540
<v Ben Rady>Right.

246
00:20:08.540 --> 00:20:19.420
<v Ben Rady>I mean, maybe it is just as simple as that, that they actually are just separate skills. And if you learn one, you'll get better at the other one incidentally, but you actually do have to learn both skills, right?

247
00:20:19.420 --> 00:20:19.490
<v Matt Godbolt>I...

248
00:20:19.490 --> 00:20:20.420
<v Ben Rady>Like, that probably is the simplest way to think about it.

249
00:20:20.420 --> 00:20:32.360
<v Matt Godbolt>So the thing that I would wonder that you might miss, one might miss, in a read-only training model like you're doing is, you know, those kinds of things where, like, the 15th time you've done something, like, there must be a better way to do this.

250
00:20:32.360 --> 00:20:32.650
<v Ben Rady>Mm-hmm.

251
00:20:32.650 --> 00:20:36.950
<v Matt Godbolt>And then you experiment yourself with different ways of doing it.

252
00:20:36.950 --> 00:20:37.000
<v Ben Rady>Mm-hmm.

253
00:20:37.000 --> 00:20:43.780
<v Matt Godbolt>Like, hey, can I use reflection to, oh, yeah, I can. Wait a second, I don't have to declare this stuff at all, I can pull it out of the structures or whatever.

254
00:20:43.780 --> 00:20:43.780
<v Ben Rady>Mm-hmm.

255
00:20:43.780 --> 00:21:02.560
<v Matt Godbolt>Like, you know, reflection is top of mind because C++ has just gained it. So I'm thinking of all the silly things you can do with it. But, like, when do you have those galaxy-brain moments of inspiration? If you're just reading, it seems too passive to me for you to kind of go, like, I've read this 40 times, there must be a better way, and then be able to come up with that better way.

256
00:21:02.560 --> 00:21:10.700
<v Matt Godbolt>Having only ever read code. And, you know, I don't know if, I don't know if I believe that, I'm just thinking out loud.

257
00:21:10.700 --> 00:21:17.020
<v Ben Rady>Well, here's a thought experiment. So let's say that I do this, and then I do what I would normally do.

258
00:21:17.020 --> 00:21:20.180
<v Ben Rady>And I just sit down and I write a Rust program, right?

259
00:21:20.180 --> 00:21:20.940
<v Matt Godbolt>Yeah.

260
00:21:20.940 --> 00:21:26.120
<v Ben Rady>How would you be able to tell the difference versus what I would have done before, right?

261
00:21:26.120 --> 00:21:26.580
<v Matt Godbolt>How would you, yeah.

262
00:21:26.580 --> 00:21:31.900
<v Ben Rady>Like, congratulations, you wrote something in Rust. That was your original plan for every other language that you've learned.

263
00:21:31.900 --> 00:21:32.580
<v Matt Godbolt>Yeah, yeah, what would you...

264
00:21:32.580 --> 00:21:38.680
<v Ben Rady>What would be the difference? Like, do I do it faster? Do I have, like, fewer questions?

265
00:21:38.680 --> 00:21:39.500
<v Matt Godbolt>Yeah.

266
00:21:39.500 --> 00:21:41.800
<v Ben Rady>Like, the result would be the same, right?

267
00:21:41.800 --> 00:21:43.080
<v Matt Godbolt>Yeah, that's a good point.

268
00:21:43.080 --> 00:21:48.280
<v Ben Rady>So, like, how do you tell that the reading exercise actually made any difference at all? Like, maybe I could feel it, that'd be about it.

269
00:21:48.280 --> 00:21:56.740
<v Matt Godbolt>Well, I mean, I suppose, but if you did sit down and then you realized, actually, I can't write something, then you can sort of do the opposite.

270
00:21:56.740 --> 00:21:56.960
<v Ben Rady>Right, you could, yes, yes.

271
00:21:56.960 --> 00:22:17.960
<v Matt Godbolt>You can say, like, okay, yeah, I am proficient in reading, and it would be a cluster... for me to actually sit down and write anything more complicated, because, you know, like, I can't create something. I suppose it's, you know, and I'd say there's a reason why book authors are not also book critics, in the same way that book critics, you know, there are sort of, like, none of them...

272
00:22:17.960 --> 00:22:18.140
<v Ben Rady>Yeah, yeah.

273
00:22:18.140 --> 00:22:31.480
<v Matt Godbolt>I'm sure there are a number of authors who can critique their own work and other people's work and whatever, but, like, there's a sort of creative process that's happening in the construction of something new...

274
00:22:31.480 --> 00:22:31.780
<v Ben Rady>Mm-hmm.

275
00:22:31.780 --> 00:22:32.080
<v Ben Rady>Mm-hmm.

276
00:22:32.080 --> 00:22:36.460
<v Matt Godbolt>that perhaps it's hard to tickle when you're just reading.

277
00:22:36.460 --> 00:22:36.860
<v Ben Rady>Yeah.

278
00:22:36.860 --> 00:22:47.760
<v Matt Godbolt>I'm not saying you couldn't, you know, like, I've certainly, if someone sends me a PR and I look at it, I'm like, no, no, no, no, there's a completely new way of doing this, let me sketch it out for you, then I'm doing that part.

279
00:22:47.760 --> 00:22:57.200
<v Matt Godbolt>It's not like that doesn't happen, but, like, it seems like the activation energy to start doing that is much higher than, yeah, that seems okay to me, you just got the comments in the wrong place, kind of feel, right?

280
00:22:57.200 --> 00:22:57.800
<v Ben Rady>Yeah.

281
00:22:57.800 --> 00:23:00.600
<v Matt Godbolt>Yeah. And I don't know whether or not that...

282
00:23:00.600 --> 00:23:17.620
<v Ben Rady>This also seems just, like, more, almost like an academic way to do this, principled, maybe, but maybe not with the right principles, where it's like, you know, no, first you should learn all of the operators and the keywords and how everything is structured.

283
00:23:17.620 --> 00:23:17.820
<v Matt Godbolt>Yeah.

284
00:23:17.820 --> 00:23:22.430
<v Ben Rady>And then, and only then, I mean, it's like programming in the 1950s maybe worked like that, I don't know.

285
00:23:22.430 --> 00:23:22.700
<v Matt Godbolt>Right.

286
00:23:22.700 --> 00:23:23.480
<v Ben Rady>I'm just making stuff up right now.

287
00:23:23.480 --> 00:23:26.660
<v Matt Godbolt>First, you have to learn where to put the holes in the punch card.

288
00:23:26.660 --> 00:23:52.070
<v Ben Rady>Right. Like, you're just, it's like this unnecessary ordering of learning that I have never done and wouldn't recommend, but I'm just kind of trying it. And it would be, actually, you know, I think the more interesting outcome of this, the much more interesting outcome of this, is that I do this, and I do this for, like, three months, and then I sit down and I'm like, okay, now I have something that I want to build in Rust.

289
00:23:52.070 --> 00:23:52.220
<v Matt Godbolt>Right.

290
00:23:52.220 --> 00:24:05.270
<v Ben Rady>And it's like, this is just like if I had started clean slate. Like, none of the things that I've learned in the last three months have, like, maybe I saved myself three days' worth of work, right?

291
00:24:05.270 --> 00:24:05.820
<v Matt Godbolt>Right.

292
00:24:05.820 --> 00:24:09.820
<v Ben Rady>That would be a really interesting outcome from this, to say, like, no, there really is...

293
00:24:09.820 --> 00:24:09.820
<v Matt Godbolt>Yeah, I mean...

294
00:24:09.820 --> 00:24:11.980
<v Ben Rady>There's no substitute for just building stuff.

295
00:24:11.980 --> 00:24:27.020
<v Matt Godbolt>I would, yeah, this, it seems like reading is a valuable skill, full stop. And I think, obviously, your experience and your tastes and your sensibilities already put you way, way up in the, like...

296
00:24:27.020 --> 00:24:38.500
<v Matt Godbolt>you know, you're looking for certain patterns, and you're like, whether you express it with curly braces or indentation or lambdas that you apply or whatever it is, it doesn't matter. Syntax is the easy bit, really.

297
00:24:38.500 --> 00:24:39.940
<v Ben Rady>Right, right.

298
00:24:39.940 --> 00:24:48.940
<v Matt Godbolt>So maybe, you know, this is not necessarily a fair fight, because maybe for you, most of it is the syntax, and then after that you're like, yeah, sure, I need to do a visitor pattern here.

299
00:24:48.940 --> 00:24:49.380
<v Ben Rady>Yeah.

300
00:24:49.380 --> 00:24:59.330
<v Matt Godbolt>I know how to spell that now in Rust-land or whatever. Or, you know, you've seen enough code that shows you that there is some other way of doing it in Rust that isn't the visitor spell, whatever, you know.

301
00:24:59.330 --> 00:25:00.600
<v Ben Rady>Mm-hmm. Mm-hmm.

302
00:25:00.600 --> 00:25:23.680
<v Matt Godbolt>So either way, it's going to be an interesting experiment. And I think also, your instincts are right that the readability of a language, as in your ability to be able to read, parse, critique code, understand code, is by far going to be more useful going forward.

303
00:25:23.680 --> 00:25:32.440
<v Matt Godbolt>And so if you find it difficult to then write code, well, at least you can poke holes in your own work fairly easily.

304
00:25:32.440 --> 00:25:33.660
<v Ben Rady>Yeah.

305
00:25:33.660 --> 00:25:34.750
<v Matt Godbolt>Be interested in how that comes along.

306
00:25:34.750 --> 00:25:34.860
<v Ben Rady>Yeah.

307
00:25:34.860 --> 00:25:36.240
<v Matt Godbolt>Yeah.

308
00:25:36.240 --> 00:25:53.400
<v Ben Rady>One of the, sort of maybe the last point here, is, in addition to the language itself, I have also been asking it questions and prompting it to ask me questions (although this has not gone as well) about the ecosystem.

309
00:25:53.400 --> 00:25:53.400
<v Matt Godbolt>Right. Right.

310
00:25:53.400 --> 00:25:57.590
<v Ben Rady>Because, you know, Rust ecosystem is, like, legendary, right, in its consistency, you know, cargo and all of that.

311
00:25:57.590 --> 00:25:57.840
<v Matt Godbolt>Right.

312
00:25:57.840 --> 00:26:17.320
<v Ben Rady>But I was like, okay, you know, again, a lot of this is really easy when you do comparisons. I'm like, what's the, is there a Rust equivalent to, like, the Java Flight Recorder, which would let me, like, see the state of all variables and memory and heap and look at all the threads and see what their stacks look like?

313
00:26:17.320 --> 00:26:23.710
<v Ben Rady>And they're like, nah, it's like, you can do, like, GDB integration and you can debug and stuff like that, but that's not really there.

314
00:26:23.710 --> 00:26:24.500
<v Matt Godbolt>Right.

315
00:26:24.500 --> 00:26:36.660
<v Ben Rady>I'm like, all right, what are the logging frameworks like? And it's like, oh, well, here's some options for logging and things like that. But I feel like there's a whole, you know, again, I feel like these days a lot of our podcasts are just recounting other podcasts.

316
00:26:36.660 --> 00:26:40.700
<v Ben Rady>But surely at some point in the history of this podcast I have uttered the phrase, the difference between computer science and software engineering is: computer science is solving problems with computers.

317
00:26:40.700 --> 00:26:40.700
<v Ben Rady>And software engineering is solving the problems you create when solving problems with computers.

318
00:26:40.700 --> 00:26:40.700
<v Ben Rady>And the software...

319
00:26:40.700 --> 00:26:40.700
<v Matt Godbolt>The second derivative.

320
00:26:40.700 --> 00:27:10.460
<v Ben Rady>Yes, exactly. Exactly right. And so the software engineering side of Rust, and sort of the blocking and tackling of how do I actually, like, run something and debug it and observe it and recover from crashes and do all the other things that you have to do when you're running software...

321
00:27:10.460 --> 00:27:16.550
<v Ben Rady>Like, that's a critical part. And I think that's one of the things that you really get very well from writing a project.

322
00:27:16.550 --> 00:27:17.520
<v Matt Godbolt>Yeah.

323
00:27:17.520 --> 00:27:48.640
<v Ben Rady>Like, you get kind of a little narrow slice, like, you don't necessarily get the broadest view from doing that, but, like, if you're like, oh, I built a thing and it does X and I went and I learned how to do it well, something that I'm happy with, like, that aspect of the software engineering of that language really, like, clicks and is super valuable. And so I am definitely not expecting to get any of that from just reading code, because a lot of it is, like, okay, staring at the stack trace being like, what is wrong with this thing?

324
00:27:48.640 --> 00:27:49.940
<v Ben Rady>I don't even know how to figure out what is wrong with this thing.

325
00:27:49.940 --> 00:27:54.230
<v Matt Godbolt>Yeah, right, right, right. I heard, though, that if you write in Rust, there's just no bugs. That's what I heard.

326
00:27:54.230 --> 00:27:54.600
<v Ben Rady>Oh, well, maybe that'll...

327
00:27:54.600 --> 00:27:57.720
<v Matt Godbolt>That was, that was the word.

328
00:27:57.720 --> 00:28:00.380
<v Ben Rady>If it compiles, then you can't possibly have any bugs? Yes.

329
00:28:00.380 --> 00:28:00.620
<v Matt Godbolt>That's right.

330
00:28:00.620 --> 00:28:01.280
<v Ben Rady>Right.

331
00:28:01.280 --> 00:28:19.450
<v Matt Godbolt>That's right. Sorry, that's slightly more snipey than it sounds, snarky than I mean it to be, because, you know, like, this is just top of mind for, like, folks in the C++ community, where, you know, Rust obviously has a lot of benefits over vanilla C++, and, you know, it keeps being touted out.

332
00:28:19.450 --> 00:28:19.590
<v Ben Rady>Mm-hmm.

333
00:28:19.590 --> 00:28:19.740
<v Ben Rady>Mm-hmm.

334
00:28:19.740 --> 00:28:23.260
<v Matt Godbolt>It's no... It is still possible to have logic errors in Rust, right?

335
00:28:23.260 --> 00:28:25.480
<v Ben Rady>Yes. You can just have the wrong understanding of the problem.

336
00:28:25.480 --> 00:28:25.840
<v Matt Godbolt>It's not a...

337
00:28:25.840 --> 00:28:27.440
<v Ben Rady>No language is going to save you from that.

338
00:28:27.440 --> 00:28:31.820
<v Matt Godbolt>Yeah, or an infinite loop. You know, again, no one's going to stop you from writing an infinite loop.

339
00:28:31.820 --> 00:28:33.080
<v Ben Rady>That's exactly right.

340
00:28:33.080 --> 00:28:33.440
<v Matt Godbolt>So...

341
00:28:33.440 --> 00:28:34.360
<v Ben Rady>Fun side fact.

342
00:28:34.360 --> 00:28:38.440
<v Ben Rady>Did you know that snark was a portmanteau, or is a portmanteau?

343
00:28:38.440 --> 00:28:40.740
<v Matt Godbolt>No, what is snark...

344
00:28:40.740 --> 00:28:43.500
<v Ben Rady>It is a portmanteau of snide remark.

345
00:28:43.500 --> 00:28:47.320
<v Matt Godbolt>Get the heck out. I figured it was Lewis Carroll, you know, the Hunting of the Snark.

346
00:28:47.320 --> 00:28:47.320
<v Ben Rady>Yeah.

347
00:28:47.320 --> 00:28:59.180
<v Matt Godbolt>And then it came from that somehow. Although I believe a whole bunch of words came from the nonsense poems that Lewis Carroll wrote, including, oh my gosh, there was a list of them the other day.

348
00:28:59.180 --> 00:28:59.180
<v Ben Rady>Maybe.

349
00:28:59.180 --> 00:29:01.230
<v Matt Godbolt>And I was like, oh yeah, that makes sense.

350
00:29:01.230 --> 00:29:01.660
<v Ben Rady>Oh.

351
00:29:01.660 --> 00:29:06.760
<v Matt Godbolt>But yeah, I mean, so what two words is portmanteau made from?

352
00:29:06.760 --> 00:29:13.680
<v Ben Rady>And, you know, the tragedy and missed opportunity is the two words that it's, why, why would you not do that?

353
00:29:13.680 --> 00:29:14.080
<v Matt Godbolt>Isn't it just...

354
00:29:14.080 --> 00:29:21.860
<v Matt Godbolt>I mean, I think it's the appendage on the foot of someone from Portman.

355
00:29:21.860 --> 00:29:24.040
<v Matt Godbolt>That's terrible.

356
00:29:24.040 --> 00:29:30.130
<v Ben Rady>We used to have this term, AR redundancy. I forget where that came from.

357
00:29:30.130 --> 00:29:30.540
<v Matt Godbolt>Oh.

358
00:29:30.540 --> 00:29:35.160
<v Ben Rady>It was for things like pin number and ATM machine.

359
00:29:35.160 --> 00:29:37.400
<v Matt Godbolt>Oh. Oh, yeah, yeah, yeah, yeah. Oh, my gosh.

360
00:29:37.400 --> 00:29:39.360
<v Ben Rady>It stands for acronym redundancy.

361
00:29:39.360 --> 00:29:59.700
<v Matt Godbolt>Oh. Yeah, that is definitely red... red. The thing is, out of context, if you just say pin, you might be referring to the sharp bit of metal that you, you know, hold things together with sometimes. But anyway, this seems like we've reached the natural end of our experiment.

362
00:29:59.700 --> 00:30:04.920
<v Ben Rady>All of the notifications in my, dear listener, I'm sorry for all the dings and bings and buzzes and everything that just happened.

363
00:30:04.920 --> 00:30:09.770
<v Matt Godbolt>I know. A bigger noise earlier was me throwing my phone as far away as I could because it kept making noises.

364
00:30:09.770 --> 00:30:09.940
<v Ben Rady>Yeah.

365
00:30:09.940 --> 00:30:21.780
<v Matt Godbolt>And also, I apologize that I left Slack on. And so if any other dings have come through, and I'm only apologizing, really, to our listener and me in a few hours' time when I edit this.

366
00:30:21.780 --> 00:30:23.030
<v Matt Godbolt>But, cool.

367
00:30:23.030 --> 00:30:23.680
<v Ben Rady>Yeah.

368
00:30:23.680 --> 00:30:26.380
<v Matt Godbolt>Well, this sounds like an interesting experiment. We're going to have to...

369
00:30:26.380 --> 00:30:26.380
<v Ben Rady>Yeah.

370
00:30:26.380 --> 00:30:29.140
<v Matt Godbolt>We should put a pin somewhere, aha, and that's not the...

371
00:30:29.140 --> 00:30:29.820
<v Ben Rady>Right.

372
00:30:29.820 --> 00:30:40.200
<v Matt Godbolt>the other kind of pin, in the calendar sometime, to revisit this and see how this worked out, because this is an interesting way of learning.

373
00:30:40.200 --> 00:30:41.160
<v Ben Rady>Yeah.

374
00:30:41.160 --> 00:30:41.220
<v Ben Rady>Yeah. Yeah. Definitely.

375
00:30:41.220 --> 00:30:44.680
<v Matt Godbolt>Yeah. Especially the thing on the train, you know, continuing to keep making good use of time.

376
00:30:44.680 --> 00:30:44.680
<v Ben Rady>Right.

377
00:30:44.680 --> 00:31:02.830
<v Matt Godbolt>I mean, I use that. Like, a Brilliant thing, I'm not sponsored. But, you know, that's another thing that I'm doing to try and remind myself enough of the maths that I need, plural, to help my children do whatever they need to do, although they've really surpassed me now. But yeah, no, that's cool. All right, friend.

378
00:31:02.830 --> 00:31:03.060
<v Ben Rady>Yeah.

379
00:31:03.060 --> 00:31:09.640
<v Matt Godbolt>Well, before I ramble any more, I will bid you farewell, and we'll chat some more another time.

380
00:31:09.640 --> 00:31:12.640
<v Ben Rady>Until next time.

