WEBVTT

1
00:00:01.080 --> 00:00:03.000
<v Speaker 1>How'd you like to listen to dot net rocks with

2
00:00:03.040 --> 00:00:03.799
<v Speaker 1>no ads?

3
00:00:04.440 --> 00:00:04.799
<v Speaker 2>Easy?

4
00:00:05.360 --> 00:00:08.560
<v Speaker 1>Become a patron for just five dollars a month. You

5
00:00:08.599 --> 00:00:12.160
<v Speaker 1>get access to a private RSS feed where all the shows.

6
00:00:11.839 --> 00:00:14.240
<v Speaker 2>Have no ads. Twenty dollars a month.

7
00:00:14.279 --> 00:00:16.879
<v Speaker 1>We'll get you that and a special dot net Rocks

8
00:00:16.960 --> 00:00:21.000
<v Speaker 1>patron mug. Sign up now at Patreon dot dot NetRocks

9
00:00:21.120 --> 00:00:36.320
<v Speaker 1>dot com. Hey guess what, it's dot net rocks. I'm

10
00:00:36.399 --> 00:00:40.039
<v Speaker 1>Carl Franklin and a Verchard Campbell. Dustin Campbell. No relation

11
00:00:40.399 --> 00:00:41.759
<v Speaker 1>is here. He's our guest today.

12
00:00:41.920 --> 00:00:45.159
<v Speaker 2>I wish I was cool enough to be related to Dustin, honestly.

13
00:00:44.840 --> 00:00:46.920
<v Speaker 1>Talking to him in a minute. Richard, you remember that

14
00:00:47.039 --> 00:00:48.640
<v Speaker 1>when we were on the scott net Rocks tour.

15
00:00:48.880 --> 00:00:49.799
<v Speaker 2>Yes, we went.

16
00:00:51.479 --> 00:00:56.560
<v Speaker 1>To that pub and the sign said no Campbell's allowed. Yes,

17
00:00:56.600 --> 00:00:58.240
<v Speaker 1>and you sat down in front of the sign and

18
00:00:58.240 --> 00:01:01.799
<v Speaker 1>I hung your head and shape we take.

19
00:01:01.640 --> 00:01:05.319
<v Speaker 2>A picture that turns out actually relating to those Campbell's

20
00:01:05.599 --> 00:01:06.359
<v Speaker 2>so right.

21
00:01:06.599 --> 00:01:13.519
<v Speaker 1>Yeah, yeah, well, let's get started with better no framework, awesome.

22
00:01:20.799 --> 00:01:24.280
<v Speaker 2>Apart man, what do you got Simon crop, the source

23
00:01:24.280 --> 00:01:26.840
<v Speaker 2>of all the amazing Simon Crop.

24
00:01:26.920 --> 00:01:30.040
<v Speaker 1>Yes, yeah, sources of all good things on the internet. Anyway,

25
00:01:30.879 --> 00:01:38.040
<v Speaker 1>found this it's Ziggy Creatures account on GitHub fusion cash.

26
00:01:38.519 --> 00:01:42.560
<v Speaker 1>So it's an open source, fast, easy to use, robust

27
00:01:42.599 --> 00:01:48.480
<v Speaker 1>hybrid cash with advanced resiliency features. And they even you know, say,

28
00:01:48.760 --> 00:01:53.920
<v Speaker 1>you know what about this Microsoft hyper cash hybrid cash

29
00:01:53.920 --> 00:01:57.239
<v Speaker 1>that they came out within dot net nine, so they

30
00:01:57.400 --> 00:02:00.159
<v Speaker 1>actually addressed that, you know, what's the difference in how

31
00:02:00.200 --> 00:02:04.680
<v Speaker 1>can it work together? But these guys got an award

32
00:02:04.760 --> 00:02:08.120
<v Speaker 1>from Google. Oh yeah, in twenty twenty one, fusion cash

33
00:02:08.319 --> 00:02:12.879
<v Speaker 1>received the Google Open Source Peer Bonus Award. So you

34
00:02:12.919 --> 00:02:17.520
<v Speaker 1>know it does it does all sorts of things right,

35
00:02:17.560 --> 00:02:24.560
<v Speaker 1>but resiliency features, performance, scalability features, flexibility, observability like native

36
00:02:24.719 --> 00:02:30.479
<v Speaker 1>observability supportvia open telemetry, full sync and async support. Like

37
00:02:30.599 --> 00:02:34.240
<v Speaker 1>it's really good. Yeah, and it's all open source and

38
00:02:34.639 --> 00:02:36.120
<v Speaker 1>know and learn it, love it, go get it.

39
00:02:36.199 --> 00:02:37.240
<v Speaker 2>That's pretty cool. Yeah.

40
00:02:37.360 --> 00:02:39.400
<v Speaker 1>They don't don't try and solve this problem. It is

41
00:02:39.439 --> 00:02:42.879
<v Speaker 1>solved totally. You have several options. Don't do it yourself.

42
00:02:43.039 --> 00:02:45.240
<v Speaker 2>Yeah, So he was talking to us today, Richard Braud

43
00:02:45.280 --> 00:02:47.400
<v Speaker 2>the comment off of show eighteen thirty five, which is

44
00:02:47.439 --> 00:02:49.599
<v Speaker 2>back in twenty twenty three. We did another show called

45
00:02:49.639 --> 00:02:52.759
<v Speaker 2>The Next Sea Sharp, but this was with Mads, I've

46
00:02:52.759 --> 00:02:54.680
<v Speaker 2>temporarily called the show the Next Sea Shop, but who

47
00:02:54.719 --> 00:02:56.520
<v Speaker 2>knows what's going to happen. We're just beginning to recording

48
00:02:56.560 --> 00:02:59.599
<v Speaker 2>off and change the name after right. And we had

49
00:02:59.599 --> 00:03:01.560
<v Speaker 2>a pun of comments on those shows, as usual, because

50
00:03:01.560 --> 00:03:04.000
<v Speaker 2>there's lots of See Sharp lovers listen to the show,

51
00:03:04.039 --> 00:03:07.400
<v Speaker 2>and when the gods of See Sharp show up to

52
00:03:07.439 --> 00:03:09.560
<v Speaker 2>talk to us about it, they have things to say. Yeah.

53
00:03:09.599 --> 00:03:11.560
<v Speaker 2>This comment comes from Aaron Morgan, who said, what I

54
00:03:11.560 --> 00:03:14.599
<v Speaker 2>love about discards the underscore is that they show intent.

55
00:03:14.759 --> 00:03:17.599
<v Speaker 2>I'm a big believer in self documenting code, and discards

56
00:03:17.639 --> 00:03:21.439
<v Speaker 2>form part of this toolbox, particularly with returned tuples or,

57
00:03:21.479 --> 00:03:24.919
<v Speaker 2>as Mads mentioned, deconstructors. You don't always want to use

58
00:03:24.960 --> 00:03:25.879
<v Speaker 2>all the parameters.

59
00:03:26.240 --> 00:03:30.719
<v Speaker 1>Yeah, this is the underscore thing that you can return.

60
00:03:30.879 --> 00:03:33.439
<v Speaker 1>It's not really returning anything, but it shows that you

61
00:03:33.439 --> 00:03:35.800
<v Speaker 1>know something is being returned even though you're not using it.

62
00:03:35.919 --> 00:03:36.400
<v Speaker 3>Yeah.

63
00:03:36.439 --> 00:03:39.280
<v Speaker 2>But it's a discard, yeah, discard. Yeah. I understand that

64
00:03:39.319 --> 00:03:41.960
<v Speaker 2>they also avoid memory allocation of that variable, although I'm

65
00:03:42.000 --> 00:03:44.280
<v Speaker 2>not sure if that later compilers figure out that var

66
00:03:44.439 --> 00:03:47.840
<v Speaker 2>isn't used or infers a discard at run time anyway. Yeah, okay,

67
00:03:48.439 --> 00:03:50.240
<v Speaker 2>and it might even change as the different versions. This

68
00:03:50.319 --> 00:03:52.680
<v Speaker 2>is a couple of versions you go to. I bet

69
00:03:52.719 --> 00:03:54.680
<v Speaker 2>you Dustin can probably answer that one. I'm sure you can.

70
00:03:55.439 --> 00:03:57.120
<v Speaker 2>So Aaron, thank you so much for commented. A copy

71
00:03:57.120 --> 00:03:58.400
<v Speaker 2>of music code By is on its way to you.

72
00:03:58.400 --> 00:04:00.120
<v Speaker 2>And if you'd like a copy of music code to

73
00:04:00.120 --> 00:04:02.199
<v Speaker 2>comment on the website at dot rocks dot com or

74
00:04:02.199 --> 00:04:03.960
<v Speaker 2>on the facebooks. We publish every show there. And if

75
00:04:03.960 --> 00:04:05.599
<v Speaker 2>you comment there and I read on the show, well,

76
00:04:05.639 --> 00:04:06.879
<v Speaker 2>don't do your copy used to go by.

77
00:04:06.919 --> 00:04:08.599
<v Speaker 1>And if you want music to code By but you

78
00:04:08.599 --> 00:04:10.439
<v Speaker 1>don't want to comment, just go to music to code

79
00:04:10.439 --> 00:04:13.960
<v Speaker 1>by dot net. There's twenty two tracks. Now you can

80
00:04:14.000 --> 00:04:17.959
<v Speaker 1>get the collection an MP three, flack or wave format.

81
00:04:19.319 --> 00:04:21.360
<v Speaker 1>All right, So before we bring on Dustin, we got

82
00:04:21.360 --> 00:04:24.680
<v Speaker 1>to talk about nineteen sixty four because that's our show number. Yeah,

83
00:04:24.720 --> 00:04:27.279
<v Speaker 1>and we've been talking about Dustin. We've been talking about

84
00:04:27.319 --> 00:04:29.800
<v Speaker 1>what happens, you know, in the years that our show

85
00:04:29.839 --> 00:04:34.399
<v Speaker 1>numbers represent. So nineteen sixty four was a big year

86
00:04:34.480 --> 00:04:36.680
<v Speaker 1>for a lot of things. Civil Rights Act was signed

87
00:04:36.759 --> 00:04:41.319
<v Speaker 1>yep in past outlawing discrimination based on race, color, religion, sex,

88
00:04:41.399 --> 00:04:46.839
<v Speaker 1>or national origin. The Gulf of Tonkin Resolution. The resolution

89
00:04:46.959 --> 00:04:52.079
<v Speaker 1>authorized major US involvement in the Vietnam War. So one

90
00:04:52.399 --> 00:04:56.480
<v Speaker 1>so far, that's one one positive, one negative. Martin Luther

91
00:04:56.560 --> 00:04:59.399
<v Speaker 1>King Junior was awarded the Nobel Peace Prize in nineteen

92
00:04:59.480 --> 00:05:03.759
<v Speaker 1>sixty four. On February ninth, the Beatles made their first

93
00:05:03.759 --> 00:05:10.240
<v Speaker 1>appearance on The Ed Sullivan Show, starting American Beatlemania. On

94
00:05:10.279 --> 00:05:13.439
<v Speaker 1>February twenty fifth, Cassius Clay announced his name changed to

95
00:05:13.560 --> 00:05:18.199
<v Speaker 1>Muhammad Ali after defeating Sonny Liston for the heavyweight boxing title.

96
00:05:18.439 --> 00:05:22.600
<v Speaker 1>I'm more kil Sonny Listen, Sonny Listen. I'm gonna knock

97
00:05:22.639 --> 00:05:23.519
<v Speaker 1>out Sonny Listen.

98
00:05:24.160 --> 00:05:25.199
<v Speaker 2>Yeah, he was something else.

99
00:05:26.439 --> 00:05:28.959
<v Speaker 1>The Ford Mustang was unveiled at the New York World's

100
00:05:28.959 --> 00:05:32.920
<v Speaker 1>Fair on April seventeenth, becoming an iconic American car. How

101
00:05:32.920 --> 00:05:38.120
<v Speaker 1>about that. The Boston Strangler, the final known murder, occurred

102
00:05:38.120 --> 00:05:40.439
<v Speaker 1>in nineteen sixty four, marking the end of a series

103
00:05:40.480 --> 00:05:45.600
<v Speaker 1>of crimes that terrorized the city. Kashmir, India backed out

104
00:05:45.639 --> 00:05:48.759
<v Speaker 1>of a promise to hold a plebiscite in the disputed

105
00:05:48.839 --> 00:05:52.560
<v Speaker 1>territory of Kashmir, escalating tensions in the region. And you know,

106
00:05:52.759 --> 00:05:57.079
<v Speaker 1>they've been pretty much at at odds ever since.

107
00:05:57.160 --> 00:05:59.480
<v Speaker 2>They've been escalated ever since let's be clear.

108
00:06:00.079 --> 00:06:03.560
<v Speaker 1>Yeah, with a few close calls, if I remember correctly, Yeah,

109
00:06:03.639 --> 00:06:08.199
<v Speaker 1>China tested its first atomic bomb, becoming the fifth nation

110
00:06:08.240 --> 00:06:09.560
<v Speaker 1>to possess nuclear weapons.

111
00:06:10.000 --> 00:06:12.199
<v Speaker 2>How about that? Who were the other four? Okay?

112
00:06:12.240 --> 00:06:18.040
<v Speaker 1>Well, the United States obviously, I'm gonna say Russia, Soviet Union,

113
00:06:18.279 --> 00:06:19.079
<v Speaker 1>Soviet Union.

114
00:06:19.240 --> 00:06:19.439
<v Speaker 3>Yeah.

115
00:06:19.560 --> 00:06:23.800
<v Speaker 2>Yeah. And let's say who were the other two?

116
00:06:24.120 --> 00:06:27.600
<v Speaker 1>France and United Kingdom. Oh okay, yeah, of course France,

117
00:06:28.160 --> 00:06:33.759
<v Speaker 1>all right? And smoking. US General Surgeon General released a

118
00:06:33.800 --> 00:06:37.560
<v Speaker 1>report linking smoking to cancer, influencing public health policies. That

119
00:06:37.680 --> 00:06:40.920
<v Speaker 1>happened early in the year. Do you have any computer

120
00:06:41.279 --> 00:06:44.759
<v Speaker 1>or otherwise events that you want to talk about?

121
00:06:45.000 --> 00:06:47.720
<v Speaker 2>A couple of space ones, the first flight of Gemini one,

122
00:06:47.759 --> 00:06:50.720
<v Speaker 2>which was an unmanned test flight of that whole stack

123
00:06:50.759 --> 00:06:53.600
<v Speaker 2>that would be the for the American missions for long

124
00:06:53.680 --> 00:06:57.720
<v Speaker 2>duration in space before the Saturn rockets and Mariner four launches,

125
00:06:57.839 --> 00:07:02.000
<v Speaker 2>the first flyby of Mars. On the computer side of things,

126
00:07:02.040 --> 00:07:06.160
<v Speaker 2>the first program written and executed written in basic yay,

127
00:07:06.399 --> 00:07:10.000
<v Speaker 2>happens in nineteen sixty four. Yeah, Kenedy and Kurtz from Dartmouth.

128
00:07:10.199 --> 00:07:13.639
<v Speaker 2>Dartmouth ran on a GE two two five. Although became

129
00:07:13.759 --> 00:07:17.720
<v Speaker 2>rapidly so popular they had to upgrade that machine. Yeah,

130
00:07:17.879 --> 00:07:21.040
<v Speaker 2>and what else? Oh, the first mouse prototype so Bail

131
00:07:21.120 --> 00:07:24.079
<v Speaker 2>English and Nigola Singlebart out of the Stanford Research Atitude.

132
00:07:24.079 --> 00:07:26.240
<v Speaker 2>Although they originally called it the Bug.

133
00:07:26.399 --> 00:07:28.160
<v Speaker 1>Wait a minute, I thought that was Xerox Park Or

134
00:07:28.160 --> 00:07:32.680
<v Speaker 1>did Xerox Park show it to Steve Jobs.

135
00:07:32.360 --> 00:07:35.199
<v Speaker 2>Integrated it into a full product? This was the prototype?

136
00:07:35.240 --> 00:07:38.000
<v Speaker 2>This is before that, before that? Oh okay, yeah, all right,

137
00:07:38.279 --> 00:07:41.000
<v Speaker 2>so yeah, initially called the Bug, then later named the Mouse.

138
00:07:41.480 --> 00:07:45.360
<v Speaker 2>By the next year and one for you, Carl, Robert

139
00:07:45.399 --> 00:07:50.000
<v Speaker 2>Moog demonstrates his first Moog synthesize Wow keyboard with the

140
00:07:50.000 --> 00:07:53.319
<v Speaker 2>patch panel with all the effects and within that year

141
00:07:53.600 --> 00:07:57.000
<v Speaker 2>the doors will make the song Strange Days featuring the move.

142
00:07:57.079 --> 00:07:59.199
<v Speaker 1>Did I tell you my Robert Moog story or Mog

143
00:07:59.319 --> 00:08:01.519
<v Speaker 1>or how you pronoun So? When I was working at

144
00:08:01.600 --> 00:08:06.920
<v Speaker 1>Voyetra Technologies and these guys did the sound blaster and

145
00:08:07.120 --> 00:08:10.639
<v Speaker 1>the MIDI interface basically that was there. That's how they

146
00:08:10.680 --> 00:08:13.399
<v Speaker 1>got popular. Then they became Turtle Beach. But anyway, I

147
00:08:13.439 --> 00:08:16.480
<v Speaker 1>was working for them and doing tech support and we

148
00:08:16.480 --> 00:08:20.160
<v Speaker 1>were at a NAM show in Los Angeles and we

149
00:08:20.199 --> 00:08:24.839
<v Speaker 1>had a booth and Robert Moog comes over with a

150
00:08:24.879 --> 00:08:29.279
<v Speaker 1>young girl who I imagine is his granddaughter. And he says, oh,

151
00:08:29.360 --> 00:08:32.240
<v Speaker 1>this is really neat stuff. Check this out. Can you

152
00:08:32.240 --> 00:08:34.799
<v Speaker 1>give us a demo? And he's looking at it and

153
00:08:34.840 --> 00:08:38.919
<v Speaker 1>she looks bored to death. Right, She's a thirteen year

154
00:08:38.919 --> 00:08:42.000
<v Speaker 1>old girl who would rather be anywhere except with Grandpa

155
00:08:42.200 --> 00:08:46.000
<v Speaker 1>synth here, who's gonna take her around all these booths.

156
00:08:46.360 --> 00:08:50.440
<v Speaker 1>So I did a demo and stuff, and I saw

157
00:08:50.480 --> 00:08:52.399
<v Speaker 1>his badge that it was Robert Moog and so now

158
00:08:52.440 --> 00:08:53.279
<v Speaker 1>I'm like, you know.

159
00:08:53.279 --> 00:08:55.879
<v Speaker 2>Now you're starstruck. I'm gobsmacked.

160
00:08:56.120 --> 00:08:57.679
<v Speaker 1>Right, Yeah, So I did a demo and then I

161
00:08:57.679 --> 00:09:00.480
<v Speaker 1>walked over the lead programmer after and I said, hey,

162
00:09:00.840 --> 00:09:03.639
<v Speaker 1>I just gave a demo sequence of plus to Robert Moog.

163
00:09:04.399 --> 00:09:06.679
<v Speaker 1>He goes, oh, that guy he comes around every year,

164
00:09:10.799 --> 00:09:14.720
<v Speaker 1>so Blase, yeah, he comes around. We give him the

165
00:09:14.720 --> 00:09:18.840
<v Speaker 1>same demo every year. So that's my story. That's awesome.

166
00:09:19.200 --> 00:09:21.279
<v Speaker 1>If that's all we got, I guess it's time to

167
00:09:21.360 --> 00:09:26.600
<v Speaker 1>introduce Dustin. Yeah officially, so dust NEARBIA hasn't changed that much,

168
00:09:26.639 --> 00:09:28.480
<v Speaker 1>but it has a little bit. Dustin Campbell is a

169
00:09:28.480 --> 00:09:32.120
<v Speaker 1>principal software architect in dot net Tooling, where he currently

170
00:09:32.120 --> 00:09:36.840
<v Speaker 1>works on Razor c Sharp and visual basic language experiences.

171
00:09:36.600 --> 00:09:38.559
<v Speaker 2>For visual Studio and Visual Studio code.

172
00:09:39.120 --> 00:09:43.399
<v Speaker 1>Passionate about coding productivity, Dustin's primary focus is on making

173
00:09:43.440 --> 00:09:46.759
<v Speaker 1>dot net tooling great and helping design the next version

174
00:09:46.879 --> 00:09:49.840
<v Speaker 1>of c sharp as part of the language design team.

175
00:09:50.440 --> 00:09:52.960
<v Speaker 1>Prior to his current role, he spent several years working

176
00:09:53.000 --> 00:09:55.840
<v Speaker 1>as program manager on Project Rosalind maybe you've heard of

177
00:09:55.879 --> 00:09:59.759
<v Speaker 1>that couple times design, Yeah, designing the next generation of

178
00:09:59.799 --> 00:10:04.039
<v Speaker 1>the see sharp and vb ID experiences. Dustin is a

179
00:10:04.080 --> 00:10:08.600
<v Speaker 1>programming nut. His favorite color is blue. Well, I notice

180
00:10:08.679 --> 00:10:10.559
<v Speaker 1>you have a blue shirt on and I'm wearing blue.

181
00:10:10.720 --> 00:10:13.679
<v Speaker 2>He's wearing a blue shirt. Yeah, yeah, yeah, Well, welcome back.

182
00:10:13.799 --> 00:10:14.480
<v Speaker 3>Well, thank you.

183
00:10:14.480 --> 00:10:16.639
<v Speaker 2>You guys have been busy. I guess huh.

184
00:10:16.279 --> 00:10:19.240
<v Speaker 3>It's uh yeah, it's always it's always busy times. It's

185
00:10:19.240 --> 00:10:22.320
<v Speaker 3>been exceedingly busy lately. So yeah, it's really good.

186
00:10:22.399 --> 00:10:25.759
<v Speaker 2>We just hit preview six. Granted we're time shifting this,

187
00:10:25.919 --> 00:10:28.519
<v Speaker 2>but yeah, I think, yeah, we just did preview six,

188
00:10:28.559 --> 00:10:30.679
<v Speaker 2>maybe previous haven by the time this show publishes.

189
00:10:30.879 --> 00:10:34.799
<v Speaker 3>Yeah, yeah, about there. I honestly the previews probably for

190
00:10:34.960 --> 00:10:38.399
<v Speaker 3>many folks that blur. For me, I'm not sure. Yeah, sure,

191
00:10:40.720 --> 00:10:43.960
<v Speaker 3>I try and keep my eyes on C sharp fourteen. Right,

192
00:10:44.039 --> 00:10:47.000
<v Speaker 3>but even still as kind of features come in from

193
00:10:47.120 --> 00:10:51.080
<v Speaker 3>that and get merged into Maine, I'm like, is this

194
00:10:51.120 --> 00:10:55.559
<v Speaker 3>feature in this build? I don't remember. It's hard to keep.

195
00:10:55.399 --> 00:10:59.039
<v Speaker 2>Track, and I appreciate you guys didn't go all superstitions

196
00:10:59.080 --> 00:11:02.840
<v Speaker 2>and skip thirden It just shipped with dot net nine, Like, yeah,

197
00:11:02.879 --> 00:11:05.240
<v Speaker 2>it did twelve ship with dot net aid And we're

198
00:11:05.279 --> 00:11:07.320
<v Speaker 2>not afraid of numbers. Programmers.

199
00:11:07.399 --> 00:11:10.480
<v Speaker 3>We tried to, you know, we it was a thing.

200
00:11:10.519 --> 00:11:12.240
<v Speaker 3>We were like, well, should we do that, because you know,

201
00:11:12.399 --> 00:11:14.600
<v Speaker 3>we did it with other things. We've done that before.

202
00:11:14.639 --> 00:11:19.200
<v Speaker 3>It wasn't officially for superstitious reasons, but somehow we managed

203
00:11:19.200 --> 00:11:22.320
<v Speaker 3>to magically skip thirteen on other things, and we're like, no, no, no,

204
00:11:22.360 --> 00:11:23.320
<v Speaker 3>we're going to embrace this.

205
00:11:23.600 --> 00:11:26.080
<v Speaker 2>Yeah, you skip Windows nine too. That was mostly for

206
00:11:26.159 --> 00:11:28.200
<v Speaker 2>compatibility nightmares, right.

207
00:11:28.559 --> 00:11:31.960
<v Speaker 3>I think that turned out to be painful, But you know.

208
00:11:31.960 --> 00:11:35.200
<v Speaker 2>I was a very wise choice that we're not going

209
00:11:35.240 --> 00:11:38.320
<v Speaker 2>to do a nine because of all the nine X,

210
00:11:38.440 --> 00:11:40.559
<v Speaker 2>the ninety five, ninety eight, Like did you just don't?

211
00:11:40.639 --> 00:11:40.799
<v Speaker 3>Yeah?

212
00:11:41.200 --> 00:11:41.519
<v Speaker 2>Yeah?

213
00:11:41.600 --> 00:11:44.440
<v Speaker 3>And it wasn't OS ten envy, right, So yeah, it

214
00:11:44.480 --> 00:11:47.039
<v Speaker 3>wasn't actually not no, no, I couldn't.

215
00:11:46.679 --> 00:11:50.200
<v Speaker 2>Have been no, I'm pretty sure Windows eleven was OS

216
00:11:50.279 --> 00:11:55.440
<v Speaker 2>eleven envy, but then you know whatever. You know. I

217
00:11:55.519 --> 00:11:57.440
<v Speaker 2>also do the show called Windows Weekly, and I hear

218
00:11:57.480 --> 00:12:02.679
<v Speaker 2>this stuff all at time. Yeah, so you're all about fourteen. Yeah,

219
00:12:02.840 --> 00:12:05.039
<v Speaker 2>I mean I would think that the previews are important

220
00:12:05.080 --> 00:12:06.320
<v Speaker 2>to you just because this is when you sort of

221
00:12:06.320 --> 00:12:08.200
<v Speaker 2>put the bits in more people's hands.

222
00:12:08.399 --> 00:12:11.080
<v Speaker 3>Yeah, and they start to kind of crystallize. I mean really,

223
00:12:11.480 --> 00:12:14.559
<v Speaker 3>there's also the moments we have that are like, okay,

224
00:12:14.559 --> 00:12:18.559
<v Speaker 3>you know, there's build, you know, there's various events throughout

225
00:12:18.559 --> 00:12:20.480
<v Speaker 3>the year. You know, dott a comp comes up where

226
00:12:20.519 --> 00:12:23.879
<v Speaker 3>we try and actually, you know, ship the thing weird.

227
00:12:23.919 --> 00:12:26.039
<v Speaker 3>But at those moments we try and have like some

228
00:12:26.600 --> 00:12:30.559
<v Speaker 3>constellation of features together so that it kind of hangs together.

229
00:12:31.000 --> 00:12:33.559
<v Speaker 3>And then it's about kind of getting feedback, adding enhancement

230
00:12:33.600 --> 00:12:35.799
<v Speaker 3>stuff we know that we need to finish up and

231
00:12:35.840 --> 00:12:39.559
<v Speaker 3>wrap up or things that are coming later throughout the previews,

232
00:12:39.559 --> 00:12:41.399
<v Speaker 3>but yeah, we try and get kind of those moments

233
00:12:41.399 --> 00:12:43.840
<v Speaker 3>to be a little more cohesive.

234
00:12:44.159 --> 00:12:47.639
<v Speaker 1>So and your mads usually do your walk through video

235
00:12:47.919 --> 00:12:49.559
<v Speaker 1>about you know, what's new and c sharp.

236
00:12:49.600 --> 00:12:50.759
<v Speaker 2>I always enjoy those.

237
00:12:51.200 --> 00:12:54.120
<v Speaker 3>We did that in May. Yeah, we did the What's

238
00:12:54.120 --> 00:12:58.159
<v Speaker 3>New in C sharp fourteen, we shared all the and

239
00:12:58.200 --> 00:13:01.519
<v Speaker 3>what was great about that was in this case we

240
00:13:01.600 --> 00:13:05.200
<v Speaker 3>had everything ready to go in the latest with at

241
00:13:05.279 --> 00:13:09.799
<v Speaker 3>least experience in the latest dep seventeen the fourteen preview

242
00:13:09.840 --> 00:13:13.799
<v Speaker 3>with seventeen fourteen that went out, so it was you know,

243
00:13:13.919 --> 00:13:15.960
<v Speaker 3>you hadn't tellisons on the new features that shipped with

244
00:13:15.960 --> 00:13:19.240
<v Speaker 3>the dot net preview then in your hands, so you

245
00:13:19.240 --> 00:13:22.759
<v Speaker 3>didn't have to go grab some you know, beta thing

246
00:13:22.840 --> 00:13:24.279
<v Speaker 3>or preview thing. It was right there. I mean you

247
00:13:24.320 --> 00:13:26.279
<v Speaker 3>had to get you know, the SDK to build, but

248
00:13:26.600 --> 00:13:27.480
<v Speaker 3>the features were there.

249
00:13:27.720 --> 00:13:29.919
<v Speaker 2>How much of the new features or feedback from the

250
00:13:29.960 --> 00:13:32.399
<v Speaker 2>old version and how much are like epics you've been

251
00:13:32.440 --> 00:13:34.759
<v Speaker 2>planning for many versions that finally come to fruition.

252
00:13:35.000 --> 00:13:38.559
<v Speaker 3>Well, in this case, I think most of them are

253
00:13:39.000 --> 00:13:43.759
<v Speaker 3>are kind of the longer planning ones for fourteen. You know,

254
00:13:43.840 --> 00:13:47.320
<v Speaker 3>we started trying to do this, but in a way

255
00:13:47.639 --> 00:13:49.960
<v Speaker 3>a lot of them are still even this one. I'm

256
00:13:50.000 --> 00:13:52.840
<v Speaker 3>thinking about the new extension members feature that's coming, sure,

257
00:13:53.759 --> 00:13:56.759
<v Speaker 3>but that's still like, well, we did extension members, you know,

258
00:13:57.399 --> 00:14:01.159
<v Speaker 3>fifteen years ago with which with methods only right and

259
00:14:01.200 --> 00:14:04.080
<v Speaker 3>C sharp three, so this is kind of like a

260
00:14:04.120 --> 00:14:07.320
<v Speaker 3>continuation of that, but we had a really different idea

261
00:14:08.000 --> 00:14:10.240
<v Speaker 3>last year, kind of like in C sharp thirteen, of

262
00:14:10.320 --> 00:14:13.039
<v Speaker 3>what we thought that would look like, and ended up

263
00:14:13.039 --> 00:14:15.159
<v Speaker 3>going back to the drawing board on it and coming

264
00:14:15.200 --> 00:14:19.879
<v Speaker 3>out with something that looks more like what people knew

265
00:14:19.919 --> 00:14:23.799
<v Speaker 3>and knew from extension methods already. So in that way,

266
00:14:23.840 --> 00:14:26.240
<v Speaker 3>it kind of is a continuation, but also it's been

267
00:14:26.279 --> 00:14:30.039
<v Speaker 3>a long, kind of planned sort of thing where we've

268
00:14:30.080 --> 00:14:32.960
<v Speaker 3>really had to work very hard and kind of toil

269
00:14:33.000 --> 00:14:34.200
<v Speaker 3>a little bit more on the designs.

270
00:14:34.279 --> 00:14:35.879
<v Speaker 2>And I know it's something we've heard over over again

271
00:14:35.960 --> 00:14:39.000
<v Speaker 2>from folks like you and Anders and Mads. It's like,

272
00:14:39.440 --> 00:14:42.120
<v Speaker 2>you're really careful about putting a feature into a language

273
00:14:42.159 --> 00:14:44.559
<v Speaker 2>because you pretty much can never take it out.

274
00:14:44.720 --> 00:14:47.960
<v Speaker 3>Every language has kind of a capacity too writ like

275
00:14:48.000 --> 00:14:50.759
<v Speaker 3>where you get over that jump the shark moment where

276
00:14:50.759 --> 00:14:53.360
<v Speaker 3>it's like, all right, this is too much now, and

277
00:14:53.399 --> 00:14:54.039
<v Speaker 3>then you're.

278
00:14:53.879 --> 00:14:55.080
<v Speaker 2>Like yeah, I was kind of saying.

279
00:14:55.080 --> 00:14:57.240
<v Speaker 3>Then you're like, you know, then you have to have

280
00:14:57.279 --> 00:14:59.960
<v Speaker 3>your good bits moment with JavaScript or your C plus plus,

281
00:15:00.080 --> 00:15:01.960
<v Speaker 3>your modern C plus plus moment where you're trying to

282
00:15:02.000 --> 00:15:05.159
<v Speaker 3>like shed things that like, Okay, yes this is for legacy,

283
00:15:05.200 --> 00:15:07.279
<v Speaker 3>but please don't use this for modern things.

284
00:15:07.440 --> 00:15:09.960
<v Speaker 1>I was going to say, Dustin, do you have customers

285
00:15:10.039 --> 00:15:14.080
<v Speaker 1>and people that provide feedback that you have so many

286
00:15:14.120 --> 00:15:17.960
<v Speaker 1>features that kind of overlap, right, and when to use

287
00:15:18.000 --> 00:15:20.919
<v Speaker 1>what and how to use what? And I can see

288
00:15:21.559 --> 00:15:24.399
<v Speaker 1>people just wanting to exercise the new stuff for the

289
00:15:24.440 --> 00:15:28.519
<v Speaker 1>sake of doing it, and you know, the guidance is

290
00:15:28.559 --> 00:15:31.799
<v Speaker 1>really important, like here's when you do this, here's when

291
00:15:31.799 --> 00:15:32.799
<v Speaker 1>you do not do this.

292
00:15:33.159 --> 00:15:36.600
<v Speaker 3>Absolutely yeah, and we do get that feedback. It's I was,

293
00:15:37.039 --> 00:15:39.480
<v Speaker 3>you know, we were talking about recently. We're like, man

294
00:15:39.559 --> 00:15:42.000
<v Speaker 3>c sure one Oh was a way simpler language. It

295
00:15:42.120 --> 00:15:45.120
<v Speaker 3>was way clear on how to do a thing because

296
00:15:45.159 --> 00:15:46.480
<v Speaker 3>there was just the one way.

297
00:15:47.600 --> 00:15:51.080
<v Speaker 1>Visual basic forms designer was easy too, because you have

298
00:15:51.279 --> 00:15:53.840
<v Speaker 1>no choices, yeah, no options.

299
00:15:53.960 --> 00:15:57.360
<v Speaker 3>Yeah, and so it was it was, it was. It

300
00:15:57.399 --> 00:15:59.759
<v Speaker 3>was easy. You could still do pretty much all the

301
00:15:59.799 --> 00:16:03.039
<v Speaker 3>things I mean, but you might write a lot more

302
00:16:03.080 --> 00:16:06.120
<v Speaker 3>code to do it. It's just you know, so so

303
00:16:06.200 --> 00:16:09.080
<v Speaker 3>in some cases there is that like we need to

304
00:16:09.120 --> 00:16:13.960
<v Speaker 3>decide what, like when and why to do something. Sometimes

305
00:16:13.519 --> 00:16:16.799
<v Speaker 3>it's it's taste too right, Some things peel to others.

306
00:16:17.240 --> 00:16:20.120
<v Speaker 3>Sometimes there's a really important reason to have it go.

307
00:16:20.240 --> 00:16:22.600
<v Speaker 3>Let go back to var which is so controversial and

308
00:16:22.639 --> 00:16:24.919
<v Speaker 3>I love bringing it up because it just brings controversy

309
00:16:24.919 --> 00:16:28.960
<v Speaker 3>and comments, but still to this day. Right, But it

310
00:16:29.000 --> 00:16:31.519
<v Speaker 3>had a very important reason to be there, which was,

311
00:16:31.759 --> 00:16:35.279
<v Speaker 3>you know, because you didn't have a way to put

312
00:16:35.279 --> 00:16:37.279
<v Speaker 3>a type for an anonymous type if you were putting

313
00:16:37.279 --> 00:16:39.799
<v Speaker 3>something into a projection and like a link query, right

314
00:16:39.799 --> 00:16:45.120
<v Speaker 3>and a link expression. So that's what they were there for. Functionally,

315
00:16:45.320 --> 00:16:47.919
<v Speaker 3>they had to be there. But then they're also kind

316
00:16:47.919 --> 00:16:50.440
<v Speaker 3>of convenient, and they're you know, three letters long, which

317
00:16:50.480 --> 00:16:52.840
<v Speaker 3>means you put that in a space and now everything

318
00:16:52.879 --> 00:16:55.519
<v Speaker 3>lines up. All your types line up to the tabs

319
00:16:55.559 --> 00:16:58.440
<v Speaker 3>if you have your ends set to four and you know,

320
00:16:58.480 --> 00:17:00.240
<v Speaker 3>and so they get it could use a lot, and

321
00:17:00.240 --> 00:17:03.840
<v Speaker 3>then people get grumpy or people get happy, and and

322
00:17:04.079 --> 00:17:08.039
<v Speaker 3>and and so then at that point it becomes like, well,

323
00:17:08.640 --> 00:17:12.880
<v Speaker 3>taste or you know, is my program clear? And you

324
00:17:12.960 --> 00:17:14.839
<v Speaker 3>have to kind of you know, but you kind of give.

325
00:17:15.119 --> 00:17:17.200
<v Speaker 3>We give often it seems like we give people too

326
00:17:17.200 --> 00:17:19.960
<v Speaker 3>many I don't know, handguns to shoot themselves in their

327
00:17:19.960 --> 00:17:20.359
<v Speaker 3>feet with.

328
00:17:20.559 --> 00:17:24.759
<v Speaker 2>Sometimes yeah it's not only your foot, it's like here, yeah,

329
00:17:24.920 --> 00:17:25.920
<v Speaker 2>try both feet at once.

330
00:17:26.920 --> 00:17:29.400
<v Speaker 3>We we you know, back in C sharp one, Oh,

331
00:17:29.440 --> 00:17:32.720
<v Speaker 3>I know, we were a lot more prescriptive about some

332
00:17:32.759 --> 00:17:35.400
<v Speaker 3>of those kinds of things. An example that comes up

333
00:17:35.400 --> 00:17:38.680
<v Speaker 3>a lot we talk about still is like if I

334
00:17:38.759 --> 00:17:40.799
<v Speaker 3>recall and I might be wrong about this because things

335
00:17:40.880 --> 00:17:42.799
<v Speaker 3>change all the time and they change subtly, but like,

336
00:17:42.960 --> 00:17:45.599
<v Speaker 3>at least at the beginning, I know that we were

337
00:17:45.680 --> 00:17:50.160
<v Speaker 3>very specific about like no, try catch Finally, they must

338
00:17:50.200 --> 00:17:53.880
<v Speaker 3>have braces, right, yeah, they cannot be embedded statements like

339
00:17:53.880 --> 00:17:56.440
<v Speaker 3>an if where you can choose to have braces or not,

340
00:17:56.799 --> 00:17:59.680
<v Speaker 3>because we felt very prescriptive, like no, you need the

341
00:17:59.680 --> 00:18:03.359
<v Speaker 3>delay nation to see. These are very different contexts and

342
00:18:03.440 --> 00:18:04.839
<v Speaker 3>what you're trying to do there, And I think that's

343
00:18:04.839 --> 00:18:08.839
<v Speaker 3>still the case today, but we constantly get requests to know,

344
00:18:09.039 --> 00:18:09.880
<v Speaker 3>come on, I'm.

345
00:18:09.640 --> 00:18:13.319
<v Speaker 2>Putting one statement like this is just too much.

346
00:18:14.400 --> 00:18:16.880
<v Speaker 1>Do you think you guys would be relying more on

347
00:18:18.039 --> 00:18:22.519
<v Speaker 1>co pilot agent to be prescriptive about what you're doing?

348
00:18:22.680 --> 00:18:26.400
<v Speaker 1>You know, I don't mean like Clippy, but Hay and hey,

349
00:18:26.880 --> 00:18:29.519
<v Speaker 1>I noticed that you're trying to do this link statement

350
00:18:29.799 --> 00:18:31.759
<v Speaker 1>and it'd probably be a lot easier if you use

351
00:18:31.880 --> 00:18:34.440
<v Speaker 1>this method instead of that one. I mean, I mean

352
00:18:34.480 --> 00:18:37.119
<v Speaker 1>you're kind of doing that already with for sure, with

353
00:18:37.279 --> 00:18:38.319
<v Speaker 1>copilot yeah, we.

354
00:18:38.279 --> 00:18:40.279
<v Speaker 3>Do it already. I mean I think I think a

355
00:18:40.359 --> 00:18:43.279
<v Speaker 3>you know, a coding agent or you know, something you

356
00:18:43.319 --> 00:18:45.599
<v Speaker 3>know like like Copilot is going to be, you know,

357
00:18:45.640 --> 00:18:48.599
<v Speaker 3>hopefully doing that. I I also hope that you know,

358
00:18:48.799 --> 00:18:50.920
<v Speaker 3>an agent like that is also going to be looking

359
00:18:50.960 --> 00:18:54.000
<v Speaker 3>at like the code base you're on, right, So that

360
00:18:54.079 --> 00:18:56.640
<v Speaker 3>if I am on a legacy code base and this

361
00:18:56.759 --> 00:18:58.839
<v Speaker 3>code base happens to always new up a raised with

362
00:18:59.680 --> 00:19:02.920
<v Speaker 3>new erase and tax and doesn't use collection expressions, it

363
00:19:02.920 --> 00:19:04.400
<v Speaker 3>doesn't use any of these kinds of things, I would

364
00:19:04.440 --> 00:19:06.839
<v Speaker 3>hope it's not saying you should be using collection expressions

365
00:19:06.839 --> 00:19:08.680
<v Speaker 3>on this line of code you just wrote, and it's like, no, no,

366
00:19:08.680 --> 00:19:10.319
<v Speaker 3>it should look like the rest of the code, right.

367
00:19:10.839 --> 00:19:12.799
<v Speaker 3>And so I would hope that when we get those

368
00:19:12.799 --> 00:19:15.480
<v Speaker 3>coding agents that that are, that they're smart enough to

369
00:19:15.519 --> 00:19:19.079
<v Speaker 3>kind of keep you in your context too while maybe

370
00:19:19.119 --> 00:19:22.000
<v Speaker 3>allowing you to say, you know, I would like suggestions

371
00:19:22.000 --> 00:19:24.400
<v Speaker 3>that help me kind of move this forward bit by bit.

372
00:19:25.039 --> 00:19:26.759
<v Speaker 3>So I don't know, maybe.

373
00:19:26.519 --> 00:19:29.759
<v Speaker 2>Because it does strike me with you doing annualships of

374
00:19:29.799 --> 00:19:32.480
<v Speaker 2>dot net, like the rate of new versions of c

375
00:19:32.640 --> 00:19:35.960
<v Speaker 2>sharp has gone up, and you know, you can still

376
00:19:36.039 --> 00:19:38.839
<v Speaker 2>code like it's twenty fifteen, Like it works just fine,

377
00:19:39.119 --> 00:19:41.119
<v Speaker 2>you can. And I think it's a question I asked

378
00:19:41.119 --> 00:19:42.839
<v Speaker 2>of mad As a number of years ago, just like,

379
00:19:42.880 --> 00:19:44.440
<v Speaker 2>how are you going to convince us to use the

380
00:19:44.480 --> 00:19:46.400
<v Speaker 2>new syntax? And it's like, I think that's what the

381
00:19:46.400 --> 00:19:49.759
<v Speaker 2>tooling's all about, is helping to guide you to more

382
00:19:49.799 --> 00:19:50.960
<v Speaker 2>efficient ways to code.

383
00:19:51.440 --> 00:19:53.640
<v Speaker 3>Yeah, if it's going to cause if it's going to

384
00:19:53.640 --> 00:19:56.559
<v Speaker 3>help with efficiency for exam, is a great reason. Right,

385
00:19:57.200 --> 00:19:59.559
<v Speaker 3>It's one of the reasons we did a collection expressions.

386
00:19:59.599 --> 00:20:02.400
<v Speaker 3>I I love collection expressions, and that's the square brackets

387
00:20:02.480 --> 00:20:04.720
<v Speaker 3>right where you just past things in a square bracket

388
00:20:04.759 --> 00:20:07.160
<v Speaker 3>and it picks the type, you know, based on what

389
00:20:07.200 --> 00:20:09.759
<v Speaker 3>you're passing it into or what you're assigning it to,

390
00:20:11.200 --> 00:20:15.240
<v Speaker 3>and then gives you a type that might be something

391
00:20:15.240 --> 00:20:17.680
<v Speaker 3>that was compiler generated, might be just list of T

392
00:20:18.119 --> 00:20:22.039
<v Speaker 3>might be you know, array dot empty, depending on what

393
00:20:22.079 --> 00:20:24.559
<v Speaker 3>you're doing with it. And but the point is that

394
00:20:25.000 --> 00:20:28.920
<v Speaker 3>that allows me to kind of, you know, allows the

395
00:20:28.960 --> 00:20:31.400
<v Speaker 3>compiler at least to be able to be very efficient

396
00:20:31.440 --> 00:20:35.079
<v Speaker 3>in what it generates, so we can do things like

397
00:20:35.119 --> 00:20:37.720
<v Speaker 3>when you start because those features, that feature also allows

398
00:20:37.759 --> 00:20:41.079
<v Speaker 3>for spreads and combining collections together, and it can try

399
00:20:41.119 --> 00:20:46.599
<v Speaker 3>and do that as efficiently as possible, and hopefully, you know,

400
00:20:46.759 --> 00:20:50.279
<v Speaker 3>it's it's code that like, it ends up making your

401
00:20:50.279 --> 00:20:52.720
<v Speaker 3>code look better to do something more efficient, whereas if

402
00:20:52.759 --> 00:20:54.799
<v Speaker 3>you'd written the more efficient way, it would have been

403
00:20:54.799 --> 00:20:58.960
<v Speaker 3>a mess. I find that a lot also with list patterns,

404
00:20:59.039 --> 00:21:02.039
<v Speaker 3>where if I'm doing a list pattern is somewhat complex,

405
00:21:02.519 --> 00:21:05.000
<v Speaker 3>and then I, you know, I start to stray away

406
00:21:05.039 --> 00:21:07.240
<v Speaker 3>from it a little bit. But but when I get

407
00:21:07.240 --> 00:21:08.880
<v Speaker 3>when I get into a list pattern, I look at

408
00:21:08.920 --> 00:21:10.559
<v Speaker 3>the code that it got generated, I'm like, oh, I

409
00:21:10.599 --> 00:21:13.160
<v Speaker 3>would never write this. This is way in the weeds.

410
00:21:13.200 --> 00:21:15.640
<v Speaker 3>But the compiler is bending over backwards trying to do

411
00:21:15.720 --> 00:21:18.039
<v Speaker 3>the most efficient thing at the il level that it

412
00:21:18.039 --> 00:21:20.960
<v Speaker 3>can do. So I mean, that's one of the reasons

413
00:21:20.960 --> 00:21:22.960
<v Speaker 3>to kind of go those go with those new things too.

414
00:21:23.160 --> 00:21:26.000
<v Speaker 2>Visual studio code versus visual studio.

415
00:21:26.359 --> 00:21:31.200
<v Speaker 3>Which is your favorite? A, oh, well, it depends on

416
00:21:31.240 --> 00:21:33.720
<v Speaker 3>the day of the week, Carl, I dog food both.

417
00:21:34.200 --> 00:21:38.000
<v Speaker 3>I love visual studio. It is the starship enterprise. However

418
00:21:38.920 --> 00:21:41.960
<v Speaker 3>it is. You know, it is a lot. I'm really

419
00:21:42.039 --> 00:21:44.799
<v Speaker 3>used to it, and I know keyboard shirtcuts all over

420
00:21:44.839 --> 00:21:46.519
<v Speaker 3>the place. I know I can get around it really

421
00:21:46.519 --> 00:21:51.400
<v Speaker 3>fast and so I I and and often I'm sometimes

422
00:21:51.440 --> 00:21:54.559
<v Speaker 3>I'm also working on visual studio pieces like visual studio

423
00:21:54.559 --> 00:21:57.680
<v Speaker 3>components and things that are like, oh, it's it's kind

424
00:21:57.680 --> 00:22:00.200
<v Speaker 3>of easier. I mean, I can debug these things with

425
00:22:00.200 --> 00:22:02.440
<v Speaker 3>with VS code as well, but it's like, hey, but

426
00:22:02.480 --> 00:22:04.920
<v Speaker 3>I'm doing mixed mode debugging of some old calm thing.

427
00:22:06.079 --> 00:22:08.039
<v Speaker 3>I'd rather I'd rather be in visual studio. We're into

428
00:22:08.079 --> 00:22:08.799
<v Speaker 3>the tools better.

429
00:22:09.519 --> 00:22:13.759
<v Speaker 1>I wish the Razor code editor was better Razor file

430
00:22:13.839 --> 00:22:14.480
<v Speaker 1>Code Editor.

431
00:22:14.519 --> 00:22:16.039
<v Speaker 3>No, I do too. I've been working on it for

432
00:22:16.039 --> 00:22:18.559
<v Speaker 3>a while. Sorry, we're trying. We're working on it. We

433
00:22:18.599 --> 00:22:21.680
<v Speaker 3>have we have some some things coming that I hope

434
00:22:21.680 --> 00:22:24.480
<v Speaker 3>will u We'll make things coming.

435
00:22:24.640 --> 00:22:26.559
<v Speaker 2>Let me make you have here, all right, things?

436
00:22:26.680 --> 00:22:29.920
<v Speaker 3>Yeah, okay, we we do have some things coming that

437
00:22:29.920 --> 00:22:31.799
<v Speaker 3>I hope will make that easier and better for you.

438
00:22:31.839 --> 00:22:33.279
<v Speaker 2>All right. So there's a studio code.

439
00:22:33.119 --> 00:22:35.799
<v Speaker 3>Yeah, visual studio code. I love visual studio code for

440
00:22:37.440 --> 00:22:39.039
<v Speaker 3>I don't know. I open it every time I want

441
00:22:39.039 --> 00:22:43.119
<v Speaker 3>to do it. Get marriage personally, it's just easy. But

442
00:22:44.319 --> 00:22:47.640
<v Speaker 3>I I like the copied experience a lot in there.

443
00:22:47.960 --> 00:22:50.440
<v Speaker 3>We have we also have different things that we're dog

444
00:22:50.440 --> 00:22:52.759
<v Speaker 3>fooding at Microsoft, different models and things that show up.

445
00:22:52.799 --> 00:22:54.519
<v Speaker 3>One might show up in VS code first, one might

446
00:22:54.559 --> 00:22:57.279
<v Speaker 3>show up in Visual Studio first. And one of the

447
00:22:57.279 --> 00:22:59.240
<v Speaker 3>great things for Visual Studio Code is that it's just

448
00:22:59.279 --> 00:23:02.359
<v Speaker 3>it's just it's just faster to release and get things

449
00:23:02.400 --> 00:23:06.880
<v Speaker 3>an experiment and prototype. And so when we did our

450
00:23:06.920 --> 00:23:10.559
<v Speaker 3>build demo actually this year, what the stuff that didn't

451
00:23:10.599 --> 00:23:14.839
<v Speaker 3>ship in the released Visual Studio that we wanted to

452
00:23:14.880 --> 00:23:17.000
<v Speaker 3>show that was kind of like you know, kind of

453
00:23:17.000 --> 00:23:19.200
<v Speaker 3>hot bits you know that I built on the side.

454
00:23:19.319 --> 00:23:21.839
<v Speaker 3>Was it was very easy to light up Visual Studio

455
00:23:21.880 --> 00:23:24.279
<v Speaker 3>Code with that and start playing around with it and

456
00:23:24.319 --> 00:23:26.359
<v Speaker 3>show those features than in Visual Studio Code. It's just

457
00:23:26.400 --> 00:23:28.200
<v Speaker 3>great for that kind of rapid prototyping.

458
00:23:28.319 --> 00:23:32.160
<v Speaker 1>I have an I nine machine and so running Visual

459
00:23:32.200 --> 00:23:35.119
<v Speaker 1>Studio is no problem for me. It's very fast and

460
00:23:35.200 --> 00:23:38.359
<v Speaker 1>I have lots of RAM. But I know that, you know,

461
00:23:38.640 --> 00:23:42.400
<v Speaker 1>if on a less powerful laptop, that might take a while,

462
00:23:43.119 --> 00:23:44.920
<v Speaker 1>you know to do stuff that I'm used to on

463
00:23:44.960 --> 00:23:48.039
<v Speaker 1>my desktop. So Visual Studio Code works really well on

464
00:23:48.160 --> 00:23:49.200
<v Speaker 1>lower power machines.

465
00:23:49.400 --> 00:23:52.599
<v Speaker 3>Yeah. Yeah, the Visual Studio Code, to be fair, is

466
00:23:52.680 --> 00:23:56.480
<v Speaker 3>getting big. Oh you know, it is getting bigger.

467
00:23:56.480 --> 00:23:59.039
<v Speaker 2>Well it's not getting calm though, No.

468
00:23:58.640 --> 00:24:01.640
<v Speaker 3>No, no, it's not going to be one would hope

469
00:24:01.839 --> 00:24:05.640
<v Speaker 3>single threaded apartment model anything. Yeah, in Visual Studio code,

470
00:24:05.640 --> 00:24:07.880
<v Speaker 3>but it's uh, well it's single threaded though you know

471
00:24:08.000 --> 00:24:13.039
<v Speaker 3>it's all process all different processes right right, but but

472
00:24:13.160 --> 00:24:16.920
<v Speaker 3>it's uh yeah, visual it's it's Visual Studio code was

473
00:24:17.039 --> 00:24:19.480
<v Speaker 3>lean when I was working on it, you know, about

474
00:24:19.519 --> 00:24:21.920
<v Speaker 3>six six years ago. I was like, oh, this is amazing.

475
00:24:22.680 --> 00:24:25.599
<v Speaker 3>And then it's gotten bigger and bigger as a as.

476
00:24:25.480 --> 00:24:26.599
<v Speaker 2>People make demands on it.

477
00:24:26.680 --> 00:24:29.039
<v Speaker 3>Right, I also use it for more things, so I've

478
00:24:29.039 --> 00:24:31.599
<v Speaker 3>got more extensions in there, I've got more stuff loaded in,

479
00:24:31.680 --> 00:24:35.599
<v Speaker 3>and yeah, it bulks up, but it is great.

480
00:24:35.680 --> 00:24:37.319
<v Speaker 2>You start to wonder if we shouldn't be setting up

481
00:24:37.359 --> 00:24:39.079
<v Speaker 2>profiles where it's like, oh I need to work as

482
00:24:39.079 --> 00:24:42.960
<v Speaker 2>a Python code that's a configuration, or yeah, here I

483
00:24:43.000 --> 00:24:47.640
<v Speaker 2>am editing Jason again. You know, it's so does it

484
00:24:47.759 --> 00:24:49.920
<v Speaker 2>have the idea of templates like visual studio does.

485
00:24:50.720 --> 00:24:54.559
<v Speaker 3>No Visual Studio Code it does, but we we so

486
00:24:54.839 --> 00:24:57.359
<v Speaker 3>when we did c sharp def kit, we introduced a

487
00:24:58.160 --> 00:25:00.960
<v Speaker 3>like a new project command and thing that basically what

488
00:25:01.000 --> 00:25:03.279
<v Speaker 3>that does is it goes through the dot that new

489
00:25:04.079 --> 00:25:06.799
<v Speaker 3>command and pulls in all those templates. So it uses

490
00:25:07.000 --> 00:25:08.160
<v Speaker 3>what you've got at the command line.

491
00:25:08.200 --> 00:25:10.440
<v Speaker 2>That's cool, that's cool. Yeah, I don't use it so much.

492
00:25:10.480 --> 00:25:14.240
<v Speaker 1>I mean, Jeff Fritz is a is a huge code fan,

493
00:25:15.000 --> 00:25:17.759
<v Speaker 1>a Visual Studio Code fan, and so when he does

494
00:25:17.799 --> 00:25:20.799
<v Speaker 1>his Blazer puzzles, they're usually in Visual Studio Code. When

495
00:25:20.839 --> 00:25:23.720
<v Speaker 1>I do them, they're usually in Visual Studios. So but

496
00:25:24.079 --> 00:25:26.799
<v Speaker 1>I'm just I'm watching from the aside, you know, I'm

497
00:25:27.279 --> 00:25:31.759
<v Speaker 1>I'm watching to see when will Visual Studio Code have

498
00:25:31.960 --> 00:25:34.519
<v Speaker 1>all the features that I need from Visual Studio so

499
00:25:34.559 --> 00:25:36.279
<v Speaker 1>that I could make the jump because I'd like to.

500
00:25:36.440 --> 00:25:42.039
<v Speaker 3>Yeah, it's it's a it's a really different model, right right, Yeah,

501
00:25:42.079 --> 00:25:43.759
<v Speaker 3>I mean Visual Studio Code doesn't have a lot of

502
00:25:43.799 --> 00:25:46.960
<v Speaker 3>visual in it either, right, So he doesn't have the

503
00:25:46.960 --> 00:25:49.359
<v Speaker 3>designers and those kinds of things, and they avoid.

504
00:25:49.119 --> 00:25:51.559
<v Speaker 2>But it's also the difference between an IDE and an

505
00:25:51.640 --> 00:25:54.720
<v Speaker 2>editor with extensions. It just seems like a different philosophy.

506
00:25:54.720 --> 00:25:56.400
<v Speaker 2>I don't really use the designers anyway.

507
00:25:56.519 --> 00:25:58.599
<v Speaker 3>Yeah, so Visual Studio Code is getting closer to that

508
00:25:58.640 --> 00:26:01.720
<v Speaker 3>IDE model now, right, some of these some of the extensions.

509
00:26:01.720 --> 00:26:03.839
<v Speaker 3>C sharp dev gets a great example where you know,

510
00:26:03.839 --> 00:26:06.160
<v Speaker 3>I always said that, like you know, an ID is

511
00:26:06.200 --> 00:26:07.920
<v Speaker 3>the thing that kind of lays down the whole tool

512
00:26:08.039 --> 00:26:10.400
<v Speaker 3>chain for you, so you have everything there ready to

513
00:26:10.480 --> 00:26:13.720
<v Speaker 3>go to build your solution. But vis code like some

514
00:26:13.759 --> 00:26:17.640
<v Speaker 3>of the extensions they do that and and it's it's

515
00:26:17.680 --> 00:26:19.640
<v Speaker 3>becoming more id like in that sense.

516
00:26:19.720 --> 00:26:22.640
<v Speaker 1>And you have hot reload so you can you know,

517
00:26:22.759 --> 00:26:24.759
<v Speaker 1>work on it and look at it in another window

518
00:26:24.799 --> 00:26:27.720
<v Speaker 1>and you know, h So, yeah, that's about all I

519
00:26:27.799 --> 00:26:30.359
<v Speaker 1>use the designers for is just to check, you know,

520
00:26:30.400 --> 00:26:32.359
<v Speaker 1>if I'm doing examle or something like that, just to

521
00:26:32.440 --> 00:26:33.759
<v Speaker 1>check to make sure it looks right.

522
00:26:34.160 --> 00:26:36.359
<v Speaker 3>And we're working hard on making that better and better too.

523
00:26:36.480 --> 00:26:37.759
<v Speaker 3>So I'm the hot reload great.

524
00:26:37.880 --> 00:26:39.880
<v Speaker 2>So how much time is your language and how much

525
00:26:39.960 --> 00:26:41.279
<v Speaker 2>is tooling when you're working?

526
00:26:41.440 --> 00:26:44.400
<v Speaker 3>When I'm working most of it when I'm coding, most

527
00:26:44.440 --> 00:26:46.079
<v Speaker 3>of it is tooling. I don't. I do very little

528
00:26:46.119 --> 00:26:49.079
<v Speaker 3>work on say, like the compilers. I work on the

529
00:26:49.160 --> 00:26:51.359
<v Speaker 3>Razor compiler a little bit right now, just because there's

530
00:26:51.680 --> 00:26:53.759
<v Speaker 3>there's a lot of low hanging performance fruit in there.

531
00:26:55.079 --> 00:27:00.000
<v Speaker 3>But I but mostly I'm working in the tooling space,

532
00:27:01.000 --> 00:27:05.039
<v Speaker 3>so doing things in hot reload, doing things and you

533
00:27:05.119 --> 00:27:07.519
<v Speaker 3>know and see sharp and mostly in Razor. For like

534
00:27:07.559 --> 00:27:08.799
<v Speaker 3>the last couple of years, I've had a lot of

535
00:27:08.799 --> 00:27:10.880
<v Speaker 3>fun work. I swapped over and said, I'll work on

536
00:27:10.960 --> 00:27:13.799
<v Speaker 3>Razor for a while. That's been really fun cool. Before that,

537
00:27:13.880 --> 00:27:16.359
<v Speaker 3>I did the wind forms designer for dot net Core

538
00:27:17.480 --> 00:27:19.640
<v Speaker 3>and so that that was the thing. So I kind

539
00:27:19.640 --> 00:27:21.720
<v Speaker 3>of try and bounce around a little bit and sometimes

540
00:27:21.799 --> 00:27:24.599
<v Speaker 3>I want to go really deep on something. And it's

541
00:27:24.599 --> 00:27:25.720
<v Speaker 3>been Razor for a little bit.

542
00:27:26.000 --> 00:27:26.400
<v Speaker 2>Awesome.

543
00:27:27.000 --> 00:27:29.880
<v Speaker 1>Well, I can't wait till I'm looking forward to those

544
00:27:30.519 --> 00:27:32.240
<v Speaker 1>upcoming things that you talked about.

545
00:27:32.400 --> 00:27:35.400
<v Speaker 3>We see, Yeah, they're not They're in the open. You

546
00:27:35.440 --> 00:27:36.279
<v Speaker 3>can go look them up.

547
00:27:36.680 --> 00:27:39.279
<v Speaker 2>Yeah, I mean there's no secrets anymore, right, Like it's

548
00:27:39.279 --> 00:27:42.519
<v Speaker 2>always yeah, Yeah, you're right. Yeah. I think it's kind

549
00:27:42.519 --> 00:27:45.599
<v Speaker 2>of nice too. I mean it's it's weird. It's just yeah,

550
00:27:45.680 --> 00:27:47.680
<v Speaker 2>it's a different world. We just know. We just talk

551
00:27:47.720 --> 00:27:50.799
<v Speaker 2>about this is what we're making. You've seen us debate

552
00:27:50.839 --> 00:27:53.440
<v Speaker 2>it on GitHub as we've come up with the ideas. Like,

553
00:27:53.480 --> 00:27:54.599
<v Speaker 2>it's all pretty public.

554
00:27:54.759 --> 00:27:58.000
<v Speaker 1>I don't usually use the preview versions of visual Studio anymore.

555
00:27:59.440 --> 00:28:02.640
<v Speaker 1>I'm not sure why. Maybe I'm just afraid of crashes

556
00:28:02.720 --> 00:28:06.039
<v Speaker 1>and stuff. When I'm working, kisses me off.

557
00:28:06.200 --> 00:28:09.720
<v Speaker 3>I use dailies. When I get in, I install a

558
00:28:09.759 --> 00:28:16.359
<v Speaker 3>newldivisual job, right, it is, and sometimes you should be

559
00:28:16.400 --> 00:28:17.079
<v Speaker 3>glad that I did.

560
00:28:18.759 --> 00:28:20.279
<v Speaker 2>Sometimes you than me.

561
00:28:21.319 --> 00:28:23.359
<v Speaker 3>Sometimes F five doesn't work.

562
00:28:25.279 --> 00:28:28.880
<v Speaker 2>Sometimes and then you're literally like, I'll wait for tomorrow's

563
00:28:28.880 --> 00:28:29.920
<v Speaker 2>bills and then we'll see.

564
00:28:30.119 --> 00:28:33.240
<v Speaker 3>Yeah, well, and I've got multiple visual studios installed, so

565
00:28:33.279 --> 00:28:35.440
<v Speaker 3>I'll back down to some previous version.

566
00:28:35.480 --> 00:28:39.519
<v Speaker 2>Really installs have been great, yeah, kind of and kind

567
00:28:39.519 --> 00:28:40.119
<v Speaker 2>of essential.

568
00:28:40.160 --> 00:28:42.079
<v Speaker 3>I guess, yeah, I.

569
00:28:42.000 --> 00:28:43.880
<v Speaker 2>Don't know how much we've really talked about what's coming

570
00:28:43.920 --> 00:28:47.160
<v Speaker 2>in the language for savings side extension members. But because there's.

571
00:28:47.359 --> 00:28:50.519
<v Speaker 1>Maybe we should wait until after the break to do that. Okay,

572
00:28:50.680 --> 00:28:52.319
<v Speaker 1>all right, this is a good time to take a break.

573
00:28:52.359 --> 00:28:54.920
<v Speaker 1>We'll be right back with Dustin Campbell on dot ned rocks.

574
00:28:55.279 --> 00:29:00.319
<v Speaker 1>Stay tuned. You know dot net six has officially reached

575
00:29:00.400 --> 00:29:03.359
<v Speaker 1>the end of support and now is the time to upgrade.

576
00:29:03.759 --> 00:29:07.559
<v Speaker 1>Dot Net eight is well supported on AWS. Learn more

577
00:29:07.599 --> 00:29:15.000
<v Speaker 1>at aws dot Amazon dot com, slash dot net. And

578
00:29:15.119 --> 00:29:17.160
<v Speaker 1>we're back. It's dot in a Rocks. I'm Carl Franklin.

579
00:29:17.240 --> 00:29:18.079
<v Speaker 2>Yeah, I'm Richard Kembel.

580
00:29:18.160 --> 00:29:21.680
<v Speaker 1>Dustin Campbell's here talking and we're shifting gears now into

581
00:29:22.400 --> 00:29:25.480
<v Speaker 1>C sharp features. I guess what you're talking is what

582
00:29:25.519 --> 00:29:27.039
<v Speaker 1>you were about to talk about.

583
00:29:27.279 --> 00:29:29.640
<v Speaker 3>We can talk about Sea Shark features new things. I mean,

584
00:29:29.680 --> 00:29:31.839
<v Speaker 3>like I said, extension members is obviously the big one.

585
00:29:31.880 --> 00:29:34.319
<v Speaker 3>That's the one that, yeah, we've put a lot of

586
00:29:35.000 --> 00:29:35.559
<v Speaker 3>energy into.

587
00:29:36.160 --> 00:29:38.440
<v Speaker 2>When you talk about an epic feature that's been going

588
00:29:38.440 --> 00:29:40.680
<v Speaker 2>on for a while like that, what has been going

589
00:29:40.720 --> 00:29:40.920
<v Speaker 2>on for.

590
00:29:41.079 --> 00:29:43.839
<v Speaker 1>Well, you mentioned that they're kind of like extension methods

591
00:29:43.920 --> 00:29:47.519
<v Speaker 1>but different. So can you give us an elevator pitch?

592
00:29:47.720 --> 00:29:49.880
<v Speaker 3>Yeah, So the the elevator pitch is kind of a

593
00:29:50.319 --> 00:29:52.759
<v Speaker 3>more of a hey, why didn't you do this already

594
00:29:53.119 --> 00:29:56.559
<v Speaker 3>for like extension properties or something like that, Why don't

595
00:29:56.559 --> 00:29:59.559
<v Speaker 3>we have these already? And it turns out that extension methods,

596
00:29:59.640 --> 00:30:02.000
<v Speaker 3>while very convenient to be able to say, I've got

597
00:30:02.000 --> 00:30:04.039
<v Speaker 3>a static method, let me put this on one of

598
00:30:04.039 --> 00:30:06.640
<v Speaker 3>the parameters, and all of a sudden, I can turn

599
00:30:06.680 --> 00:30:09.440
<v Speaker 3>it into making it look like an instance method. And

600
00:30:09.799 --> 00:30:13.200
<v Speaker 3>the very power of that is that, you know, in

601
00:30:13.200 --> 00:30:16.240
<v Speaker 3>tell a sense, now allows me to discover APIs I

602
00:30:16.240 --> 00:30:19.240
<v Speaker 3>didn't know we're there. And so the question is why

603
00:30:19.279 --> 00:30:22.799
<v Speaker 3>didn't we do this before? Well, because it turns out

604
00:30:22.839 --> 00:30:26.559
<v Speaker 3>that methods are uniquely you know, designed to be able

605
00:30:26.559 --> 00:30:28.400
<v Speaker 3>to kind of support this sort of thing. They're the

606
00:30:28.440 --> 00:30:31.839
<v Speaker 3>only thing other than a type that allows generic type parameters,

607
00:30:32.200 --> 00:30:34.079
<v Speaker 3>which you kind of need, you know, if you want

608
00:30:34.079 --> 00:30:36.759
<v Speaker 3>to do something on a list of T, you kind

609
00:30:36.759 --> 00:30:39.920
<v Speaker 3>of need a place to put that T. And then

610
00:30:40.240 --> 00:30:42.880
<v Speaker 3>they're the only ones that other than say an index

611
00:30:42.920 --> 00:30:45.319
<v Speaker 3>or that takes a parameter so that you could put

612
00:30:45.359 --> 00:30:47.759
<v Speaker 3>that this keyword there. Right. So the reason we never

613
00:30:47.799 --> 00:30:50.400
<v Speaker 3>did anything else with it wasn't because we didn't want to,

614
00:30:50.559 --> 00:30:53.000
<v Speaker 3>is because we kind of got ourselves kind of painted

615
00:30:53.039 --> 00:30:58.119
<v Speaker 3>into a design corner very quickly. And so the reason

616
00:30:58.519 --> 00:31:00.799
<v Speaker 3>now that we've got this the pitch is that, hey,

617
00:31:00.839 --> 00:31:05.680
<v Speaker 3>extension members are a syntax that allows us to basically

618
00:31:05.680 --> 00:31:08.400
<v Speaker 3>declare the members as if you were going to in

619
00:31:08.440 --> 00:31:09.920
<v Speaker 3>the way that they would look if you were going

620
00:31:09.960 --> 00:31:12.799
<v Speaker 3>to call them like essentially like their reduced forms what

621
00:31:12.799 --> 00:31:15.559
<v Speaker 3>we call them. So instead of like the expanded calling

622
00:31:15.559 --> 00:31:18.000
<v Speaker 3>it as a static member, I'm going to call it

623
00:31:18.240 --> 00:31:20.880
<v Speaker 3>in its reduced form, and we put that inside a

624
00:31:20.920 --> 00:31:24.319
<v Speaker 3>syntax that we call an extension block. And the real,

625
00:31:25.119 --> 00:31:27.079
<v Speaker 3>you know, magic to the extension block is that's the

626
00:31:27.079 --> 00:31:29.240
<v Speaker 3>place where you can hang all the stuff that methods

627
00:31:29.279 --> 00:31:31.599
<v Speaker 3>get that no other members do. That's where you can

628
00:31:31.640 --> 00:31:35.279
<v Speaker 3>put that first parameter that what we call the receiver

629
00:31:35.440 --> 00:31:38.440
<v Speaker 3>parameter for an extension method where that this would have been.

630
00:31:38.799 --> 00:31:41.160
<v Speaker 3>That's where you can put attributes on that parameters, where

631
00:31:41.160 --> 00:31:43.559
<v Speaker 3>you can give it a name. That's where all that

632
00:31:43.599 --> 00:31:46.000
<v Speaker 3>can go on the extension block. And that's also where

633
00:31:46.000 --> 00:31:49.759
<v Speaker 3>you can put generic type parameters that will then apply

634
00:31:49.880 --> 00:31:54.640
<v Speaker 3>to any member inside of that extension block. And so

635
00:31:54.799 --> 00:31:57.160
<v Speaker 3>now all the other members get to inherit all this

636
00:31:57.279 --> 00:31:59.559
<v Speaker 3>stuff and now they can become extensions.

637
00:31:59.640 --> 00:32:02.799
<v Speaker 1>I missed in two thousand and two when we started

638
00:32:02.880 --> 00:32:06.960
<v Speaker 1>dot net Rocks that we wouldn't read code on the show. Yeah, However,

639
00:32:07.279 --> 00:32:12.880
<v Speaker 1>I'm dying to hear a good example of an extension

640
00:32:12.960 --> 00:32:16.480
<v Speaker 1>member so I can grock it better. I mean, I

641
00:32:16.480 --> 00:32:17.839
<v Speaker 1>really want to see it, But can you get me

642
00:32:17.880 --> 00:32:18.440
<v Speaker 1>an example.

643
00:32:18.480 --> 00:32:20.799
<v Speaker 3>I think a good example would be like if you

644
00:32:20.839 --> 00:32:23.000
<v Speaker 3>wanted to put a property on something that was like

645
00:32:24.000 --> 00:32:26.400
<v Speaker 3>I don't want to say count because counts the one

646
00:32:26.400 --> 00:32:29.000
<v Speaker 3>that you really probably shouldn't do, and ie innumerable, Right,

647
00:32:30.079 --> 00:32:31.799
<v Speaker 3>that's a method today, but that's the one that like

648
00:32:32.240 --> 00:32:35.319
<v Speaker 3>it actually just enumerates the whole thing. It's you know, Oh,

649
00:32:35.440 --> 00:32:38.480
<v Speaker 3>then to call this thing that you would expect on

650
00:32:38.519 --> 00:32:41.440
<v Speaker 3>a collection to be a property, right, but we could

651
00:32:41.480 --> 00:32:45.200
<v Speaker 3>add and is empty right as a property, you wouldn't

652
00:32:45.200 --> 00:32:47.079
<v Speaker 3>want that to have the method syntax. You'd want that

653
00:32:47.119 --> 00:32:49.079
<v Speaker 3>to be a property to kind of indicate that, yeah,

654
00:32:49.119 --> 00:32:51.799
<v Speaker 3>that's that's that's that's a quicker syntax, right, that's a

655
00:32:51.839 --> 00:32:53.720
<v Speaker 3>quicker thing to call. So that's the kind of thing

656
00:32:53.720 --> 00:32:56.079
<v Speaker 3>that like, it's not there today, but you want to

657
00:32:56.079 --> 00:32:59.160
<v Speaker 3>add it. That's the sort of thing that you might

658
00:32:59.160 --> 00:33:02.799
<v Speaker 3>add things. And then the other piece that this gives us, Carl,

659
00:33:02.960 --> 00:33:06.920
<v Speaker 3>is it gives you the ability to have extension members

660
00:33:06.960 --> 00:33:11.960
<v Speaker 3>that are static. So you could have an extension method

661
00:33:12.119 --> 00:33:15.160
<v Speaker 3>is a static on another type. So I, for example,

662
00:33:15.640 --> 00:33:17.880
<v Speaker 3>I love the string dot create method. I use it

663
00:33:17.880 --> 00:33:20.359
<v Speaker 3>all the time in dot Net, but it's not available

664
00:33:20.359 --> 00:33:23.599
<v Speaker 3>on dot Net framework. But it was absolutely able to

665
00:33:23.640 --> 00:33:25.680
<v Speaker 3>write it with an extension member for dot Net framework.

666
00:33:25.680 --> 00:33:27.720
<v Speaker 3>I could write a create method that was static for

667
00:33:27.799 --> 00:33:30.839
<v Speaker 3>the type string. And so now I have a great

668
00:33:30.880 --> 00:33:34.440
<v Speaker 3>method that works across framework and then also use the

669
00:33:34.440 --> 00:33:35.559
<v Speaker 3>correct one on dot Net.

670
00:33:35.640 --> 00:33:36.799
<v Speaker 2>Wow, all right when I'm.

671
00:33:36.720 --> 00:33:40.400
<v Speaker 3>Doing multi targeting scenarios and things, so's it helps. There's

672
00:33:40.440 --> 00:33:42.279
<v Speaker 3>a lot of discoverability. So if you want to have

673
00:33:42.319 --> 00:33:45.440
<v Speaker 3>a different kind of member and get that same discoverability.

674
00:33:46.160 --> 00:33:47.160
<v Speaker 3>That's what you get out of US.

675
00:33:47.240 --> 00:33:51.480
<v Speaker 1>So extension methods you get to sort of well I

676
00:33:51.519 --> 00:33:54.119
<v Speaker 1>wouldn't say override, but you basically get to add things

677
00:33:54.160 --> 00:33:59.920
<v Speaker 1>onto a static type. And these you can add static

678
00:34:00.079 --> 00:34:03.640
<v Speaker 1>properties to a type that work on that type.

679
00:34:03.519 --> 00:34:05.680
<v Speaker 2>Yeah, or or non static.

680
00:34:05.440 --> 00:34:08.679
<v Speaker 3>Or properties that were are instant, yeah, like instance kind

681
00:34:08.679 --> 00:34:12.159
<v Speaker 3>of looking exstance type. And so in this release you'll

682
00:34:12.199 --> 00:34:16.679
<v Speaker 3>get statics and methods. You'll get instance methods. You'll get

683
00:34:18.360 --> 00:34:20.400
<v Speaker 3>obviously instance methods because they were already there, but in

684
00:34:20.440 --> 00:34:22.519
<v Speaker 3>the new syntax you'll be able to do methods as well.

685
00:34:23.199 --> 00:34:26.159
<v Speaker 3>You'll get static properties and instance properties, and then other

686
00:34:26.199 --> 00:34:29.239
<v Speaker 3>things are kind of coming. I think we've merged in

687
00:34:29.880 --> 00:34:35.760
<v Speaker 3>one that's really exciting, which is extension operators. Which that's yeah,

688
00:34:35.880 --> 00:34:38.840
<v Speaker 3>so you can have an operator that you didn't write

689
00:34:38.840 --> 00:34:41.360
<v Speaker 3>on the on a type specifically, but you said no,

690
00:34:41.519 --> 00:34:43.159
<v Speaker 3>we want to have this here, and we want to

691
00:34:43.199 --> 00:34:45.639
<v Speaker 3>be able to by bringing in say a name space

692
00:34:45.719 --> 00:34:47.960
<v Speaker 3>or bringing in that context. Say, now these operators are

693
00:34:47.960 --> 00:34:51.159
<v Speaker 3>in scope and interesting. We've done that for like the

694
00:34:51.840 --> 00:34:54.280
<v Speaker 3>tensor team wants to use that, and some others so

695
00:34:55.239 --> 00:34:58.480
<v Speaker 3>we've brought we brought that one in and eventually we'll

696
00:34:58.480 --> 00:35:00.639
<v Speaker 3>get to things like constructors stuff like that.

697
00:35:00.920 --> 00:35:03.920
<v Speaker 1>So I have a little hack that I do. You know,

698
00:35:04.000 --> 00:35:07.440
<v Speaker 1>the iclonable interface has been around forever and it's it's

699
00:35:07.480 --> 00:35:11.880
<v Speaker 1>an interface a way forever. Yeah, that you implement a

700
00:35:11.920 --> 00:35:17.079
<v Speaker 1>clone method and that returns a copy of your data

701
00:35:17.159 --> 00:35:19.639
<v Speaker 1>basically a copy of your object, but a deep copy.

702
00:35:19.960 --> 00:35:22.559
<v Speaker 1>But it's up to you to create that and return it.

703
00:35:23.159 --> 00:35:25.719
<v Speaker 1>So what I do is if I want to make

704
00:35:25.760 --> 00:35:29.360
<v Speaker 1>a clone of a deep object now, instead of implementing iclonal,

705
00:35:29.360 --> 00:35:32.159
<v Speaker 1>because I might not have eye clonable, right, I just

706
00:35:32.480 --> 00:35:39.880
<v Speaker 1>serialize it and de serialize it. Yeah, Jason serializer. And

707
00:35:40.000 --> 00:35:44.280
<v Speaker 1>that's how you get a deep copy of something. And

708
00:35:44.320 --> 00:35:47.559
<v Speaker 1>that's a nice little hack that might be you could

709
00:35:47.559 --> 00:35:50.360
<v Speaker 1>turn into an extension member.

710
00:35:50.800 --> 00:35:51.760
<v Speaker 2>That's what I'm thinking of.

711
00:35:52.079 --> 00:35:54.920
<v Speaker 3>Yeah, absolutely, you could do that today though, right, you

712
00:35:54.960 --> 00:35:57.119
<v Speaker 3>could make an extension method just put on a like object.

713
00:35:57.199 --> 00:36:00.840
<v Speaker 3>Could this is Carl's clone and then and and you

714
00:36:00.840 --> 00:36:03.400
<v Speaker 3>know Carl's JSON clone and make that happen.

715
00:36:04.119 --> 00:36:05.719
<v Speaker 2>I just don't know if it's a good idea.

716
00:36:05.920 --> 00:36:10.199
<v Speaker 3>Yeah, that's the extension members thing. Other things that are

717
00:36:10.199 --> 00:36:12.440
<v Speaker 3>coming that we don't talk about a lot, but that

718
00:36:12.519 --> 00:36:16.599
<v Speaker 3>are kind of cool we're doing. The one that I

719
00:36:16.639 --> 00:36:19.480
<v Speaker 3>think is is going to be kind of kind of

720
00:36:19.480 --> 00:36:23.079
<v Speaker 3>a quiet, sort of like sleeper hit. Possibly, we'll see

721
00:36:23.840 --> 00:36:28.000
<v Speaker 3>when people realize it's there is null conditional assignment. And

722
00:36:28.039 --> 00:36:30.199
<v Speaker 3>this is one of these things we didn't do for

723
00:36:30.239 --> 00:36:32.519
<v Speaker 3>a long time because we had reasons. We thought, well,

724
00:36:32.559 --> 00:36:35.519
<v Speaker 3>this will make it things confusing, and then we just

725
00:36:35.599 --> 00:36:38.000
<v Speaker 3>realized after times like now we're kind of already used

726
00:36:38.000 --> 00:36:39.719
<v Speaker 3>to all this stuff, so it's probably going to be fine.

727
00:36:39.840 --> 00:36:41.920
<v Speaker 3>We were just we were worried then, yeah, ever since,

728
00:36:42.679 --> 00:36:45.559
<v Speaker 3>you know, but this is about like, you know, null

729
00:36:45.639 --> 00:36:48.400
<v Speaker 3>conditional stuff, as we call it, the Elvis operator, right,

730
00:36:48.519 --> 00:36:52.039
<v Speaker 3>the question dot ye right, So using it for invocations

731
00:36:52.119 --> 00:36:54.320
<v Speaker 3>and that kind of thing, and using it within your

732
00:36:54.320 --> 00:36:58.840
<v Speaker 3>conditions for like an if statement. But null conditional assignment

733
00:36:58.920 --> 00:37:00.639
<v Speaker 3>is like, but why do I have to check if

734
00:37:00.639 --> 00:37:02.840
<v Speaker 3>something's null just to be able to sign a property

735
00:37:02.840 --> 00:37:06.360
<v Speaker 3>on it? Right? I gotta say if X is not null,

736
00:37:06.440 --> 00:37:09.599
<v Speaker 3>then X dot y equals this for example, Well why

737
00:37:09.639 --> 00:37:12.159
<v Speaker 3>can't I just say X, question dot y equals this?

738
00:37:13.079 --> 00:37:16.039
<v Speaker 3>And that's kind of the that's the pitch. That's something

739
00:37:16.039 --> 00:37:18.559
<v Speaker 3>we thought would be confusing. It turns out to look

740
00:37:18.599 --> 00:37:21.320
<v Speaker 3>really that. It just looks fine, and it so flows fine,

741
00:37:21.320 --> 00:37:23.960
<v Speaker 3>and that's so. So essentially it puts the null check

742
00:37:24.000 --> 00:37:26.440
<v Speaker 3>in for you, so that assignment doesn't happen if X

743
00:37:26.559 --> 00:37:27.039
<v Speaker 3>is noll.

744
00:37:27.039 --> 00:37:29.119
<v Speaker 1>Well, what if you want to assign it to something else?

745
00:37:29.360 --> 00:37:32.519
<v Speaker 1>If it's all so for example, a command parameter, sure,

746
00:37:32.599 --> 00:37:36.280
<v Speaker 1>adeo net command parameter, Well, you don't want to send

747
00:37:36.280 --> 00:37:37.800
<v Speaker 1>the database and null. You want to send it a

748
00:37:37.880 --> 00:37:39.559
<v Speaker 1>dB null value.

749
00:37:39.440 --> 00:37:43.119
<v Speaker 3>Right, absolutely, and you should do that today. Yeah, yeah, yeah,

750
00:37:43.159 --> 00:37:45.320
<v Speaker 3>you can do that today. You know, for those kinds

751
00:37:45.320 --> 00:37:48.079
<v Speaker 3>of cases, you've you've got those code patterns to write that, right.

752
00:37:48.199 --> 00:37:48.440
<v Speaker 2>Yeah.

753
00:37:48.480 --> 00:37:50.719
<v Speaker 3>For for this that simple kind of thing of like

754
00:37:50.960 --> 00:37:52.599
<v Speaker 3>why do I always have to do this? Why can't

755
00:37:52.639 --> 00:37:54.679
<v Speaker 3>I just do this in a one liner? We're given

756
00:37:54.719 --> 00:37:57.840
<v Speaker 3>some of the kind of those kinds of things. They're

757
00:37:57.840 --> 00:38:01.920
<v Speaker 3>just kind of small, simple features. Yeah, what else are

758
00:38:01.960 --> 00:38:07.159
<v Speaker 3>you interested in? Some of are really really really pretty small.

759
00:38:07.599 --> 00:38:09.760
<v Speaker 3>But a lot of time we're just trying to find

760
00:38:09.800 --> 00:38:13.639
<v Speaker 3>things that really, I don't know, that kind of alleviate

761
00:38:13.719 --> 00:38:16.199
<v Speaker 3>just a little bit of pain. Sure, help kind of

762
00:38:16.239 --> 00:38:18.719
<v Speaker 3>elevate the expressiveness that people feel, so they don't feel

763
00:38:18.760 --> 00:38:22.079
<v Speaker 3>like they're bumping into rules all the time, you know,

764
00:38:22.360 --> 00:38:25.159
<v Speaker 3>just make it feel a little more I don't know,

765
00:38:25.239 --> 00:38:30.320
<v Speaker 3>natural and intuitive. And so sometimes it's just removing, you know,

766
00:38:30.519 --> 00:38:33.639
<v Speaker 3>barriers that didn't really need to be there, we determined

767
00:38:33.679 --> 00:38:35.440
<v Speaker 3>didn't need to be there in the first place.

768
00:38:35.599 --> 00:38:39.679
<v Speaker 1>I've learned some things about sea sharp that I didn't

769
00:38:39.719 --> 00:38:42.400
<v Speaker 1>know just by letting co pilot do its thing.

770
00:38:42.519 --> 00:38:46.239
<v Speaker 2>Yeah, you know, and I say, huh, that's that's a

771
00:38:46.280 --> 00:38:48.519
<v Speaker 2>really cool way to do that. I didn't know you could.

772
00:38:48.760 --> 00:38:51.480
<v Speaker 3>And we try to keep Copilot updated with with the latest,

773
00:38:51.719 --> 00:38:54.199
<v Speaker 3>latest stuff. Sometimes hard because it's got to be there,

774
00:38:54.199 --> 00:38:57.679
<v Speaker 3>but like you know, we pass along, like because the

775
00:38:58.440 --> 00:39:00.920
<v Speaker 3>GitHub repo for the sea sharp line languages out there

776
00:39:01.360 --> 00:39:05.960
<v Speaker 3>and we are just big nerds with writing out all

777
00:39:05.960 --> 00:39:09.199
<v Speaker 3>the notes and everything, and those feed right into it. Yeah,

778
00:39:09.599 --> 00:39:11.800
<v Speaker 3>those are those are those are that's great training data.

779
00:39:13.000 --> 00:39:18.039
<v Speaker 1>So yeah, yeah, so you mentioned you're working on Razor stuff. Ye,

780
00:39:18.199 --> 00:39:22.079
<v Speaker 1>and I d Forrasor and I was I was complaining

781
00:39:22.119 --> 00:39:24.079
<v Speaker 1>about in visual studio. You know, when you have a

782
00:39:24.159 --> 00:39:27.599
<v Speaker 1>Razor file and a code block that I miss little

783
00:39:27.639 --> 00:39:30.800
<v Speaker 1>things that I get in a code behind file or

784
00:39:30.800 --> 00:39:33.920
<v Speaker 1>a regular c sharp file. And so what are you

785
00:39:33.960 --> 00:39:34.760
<v Speaker 1>what are you working on?

786
00:39:35.079 --> 00:39:39.679
<v Speaker 3>Over on that side, there's a there's been some investment there.

787
00:39:40.320 --> 00:39:43.400
<v Speaker 3>We so a while ago there was an attempt, well

788
00:39:43.480 --> 00:39:46.800
<v Speaker 3>not an attempt, but to start to getting towards moving

789
00:39:46.920 --> 00:39:50.440
<v Speaker 3>the entire Razor editor stack over to kind of a

790
00:39:50.519 --> 00:39:54.719
<v Speaker 3>language server model where it lives, you know, as a

791
00:39:54.760 --> 00:39:57.400
<v Speaker 3>separate server that Visual Studio talks to, so we could

792
00:39:57.440 --> 00:40:01.000
<v Speaker 3>kind of share a code better with vis codes experience

793
00:40:01.039 --> 00:40:04.119
<v Speaker 3>and that kind of thing. And I came in to

794
00:40:04.159 --> 00:40:07.719
<v Speaker 3>look at it and it was like, hmm, this is uh,

795
00:40:07.760 --> 00:40:10.440
<v Speaker 3>this needs love. It's getting there, but it's it needs

796
00:40:10.440 --> 00:40:12.480
<v Speaker 3>some it needs it needs work to get to get

797
00:40:12.599 --> 00:40:15.679
<v Speaker 3>over the finished line, to really get there. And what

798
00:40:15.719 --> 00:40:19.480
<v Speaker 3>we what we eventually discovered that is that we're kind

799
00:40:19.480 --> 00:40:22.360
<v Speaker 3>of Razor was kind of doing too much on its own,

800
00:40:22.400 --> 00:40:27.400
<v Speaker 3>because really what Razor is is it's like it's a

801
00:40:27.480 --> 00:40:29.840
<v Speaker 3>pass through. Most of the time. It's like, oh, you're

802
00:40:29.880 --> 00:40:31.480
<v Speaker 3>in c sharp here, let me pass you through to

803
00:40:31.559 --> 00:40:35.679
<v Speaker 3>c sharp's editor. And it goes and it asks c sharps.

804
00:40:35.719 --> 00:40:38.679
<v Speaker 3>You know, the Rosalind language server, Hey, give me intellisen's

805
00:40:38.679 --> 00:40:41.559
<v Speaker 3>in this location in the generated code behind file for

806
00:40:41.599 --> 00:40:44.159
<v Speaker 3>a razor Or. It does the same thing if you're

807
00:40:44.199 --> 00:40:47.000
<v Speaker 3>in HTML. The times that you're in those transition points

808
00:40:47.039 --> 00:40:48.840
<v Speaker 3>where you type an at or code, or you're in

809
00:40:48.840 --> 00:40:53.519
<v Speaker 3>a directive, a Razor directive, those are few compared to

810
00:40:53.719 --> 00:40:56.599
<v Speaker 3>how often you're just typing in C sharp hedtmail. And

811
00:40:56.679 --> 00:41:00.760
<v Speaker 3>so this is so so what we decided to do

812
00:41:00.840 --> 00:41:03.320
<v Speaker 3>with it was this instead of making it a sense,

813
00:41:03.360 --> 00:41:06.280
<v Speaker 3>So that makes it essentially three language servers right where

814
00:41:06.280 --> 00:41:08.880
<v Speaker 3>you've got Razor, and then it's like going off to

815
00:41:08.960 --> 00:41:13.679
<v Speaker 3>two different language servers and serializing all the data, passing

816
00:41:13.679 --> 00:41:16.880
<v Speaker 3>it back over potentially you know, in vs code over

817
00:41:16.960 --> 00:41:19.679
<v Speaker 3>named pipes, you know, and then taking it, munching it

818
00:41:19.760 --> 00:41:22.719
<v Speaker 3>up and passing it again, serializing and passing again back

819
00:41:22.760 --> 00:41:25.440
<v Speaker 3>to VS code. It seemed kind of kind of wasteful,

820
00:41:25.800 --> 00:41:29.199
<v Speaker 3>and most of the challenges actually with C sharp. C

821
00:41:29.320 --> 00:41:32.199
<v Speaker 3>sharp is the one that has the most i would say,

822
00:41:32.639 --> 00:41:36.000
<v Speaker 3>kind of sophisticated experience when it comes to, you know,

823
00:41:36.119 --> 00:41:41.000
<v Speaker 3>the editor. So we're implementing a model we're calling co hosting,

824
00:41:41.599 --> 00:41:45.599
<v Speaker 3>which is essentially because Roslin's there as a language server

825
00:41:45.719 --> 00:41:48.400
<v Speaker 3>as well. In VS code. It actually has one in

826
00:41:48.480 --> 00:41:51.599
<v Speaker 3>Visual Studio, though it's not used by default, but there

827
00:41:51.639 --> 00:41:55.639
<v Speaker 3>is there's one there where we've changed kind of the

828
00:41:55.719 --> 00:41:59.519
<v Speaker 3>Rosen language server to be able to load other languages

829
00:41:59.559 --> 00:42:03.760
<v Speaker 3>that kind of piggyback on C Sharp. So and Razor

830
00:42:03.800 --> 00:42:06.639
<v Speaker 3>has all this code also to generate that the C

831
00:42:06.760 --> 00:42:09.239
<v Speaker 3>shark code behind and the HTML pieces and kind of

832
00:42:09.559 --> 00:42:12.199
<v Speaker 3>push those the text of those into other language the

833
00:42:12.199 --> 00:42:15.159
<v Speaker 3>other language servers. But in a co hosting model where

834
00:42:15.199 --> 00:42:20.519
<v Speaker 3>we're living in the same process as as Roslin, we

835
00:42:20.559 --> 00:42:24.679
<v Speaker 3>can just make the Razor compiler that runs the code

836
00:42:24.679 --> 00:42:28.119
<v Speaker 3>generator or runs runs the code generation to build that

837
00:42:28.159 --> 00:42:30.079
<v Speaker 3>code behind. We could just turn into a source generator

838
00:42:30.480 --> 00:42:34.000
<v Speaker 3>and so now instead of running code and Razor to

839
00:42:34.039 --> 00:42:36.400
<v Speaker 3>compile it and then push that code into C sharp,

840
00:42:36.440 --> 00:42:39.440
<v Speaker 3>we let Roslyn use this entire source generator kind of system,

841
00:42:39.840 --> 00:42:41.400
<v Speaker 3>and we can pull on and say, oh, just give

842
00:42:41.400 --> 00:42:43.920
<v Speaker 3>me the latest, give me the latest that I need here,

843
00:42:44.320 --> 00:42:46.880
<v Speaker 3>and then the code is already in Roslin, and we

844
00:42:46.880 --> 00:42:49.320
<v Speaker 3>could just ask at this position, hey, what's intellisence, and

845
00:42:49.400 --> 00:42:52.239
<v Speaker 3>being in the same process, now we get back instead

846
00:42:52.239 --> 00:42:55.599
<v Speaker 3>of serialized JSON data that we've then decerialized and we

847
00:42:55.639 --> 00:42:58.719
<v Speaker 3>don't know anything about it other than the strings we

848
00:42:58.800 --> 00:43:01.119
<v Speaker 3>have the rich rosalins. We know what symbol. This came

849
00:43:01.119 --> 00:43:03.639
<v Speaker 3>from we know we can do a lot more with it. Wow,

850
00:43:03.679 --> 00:43:06.880
<v Speaker 3>And so the idea is that then we're kind of

851
00:43:06.960 --> 00:43:10.280
<v Speaker 3>leaning more into the idea that really Razor is kind

852
00:43:10.320 --> 00:43:14.599
<v Speaker 3>of about views and about generating really C sharp code

853
00:43:14.679 --> 00:43:19.079
<v Speaker 3>with with htmo as opposed to HTML with some c

854
00:43:19.199 --> 00:43:21.280
<v Speaker 3>sharp script but kind of you know, saying no, no,

855
00:43:21.360 --> 00:43:24.159
<v Speaker 3>this is c sharp. And we've done the same thing

856
00:43:24.159 --> 00:43:27.440
<v Speaker 3>with sample for VS code, so because it's a C

857
00:43:27.559 --> 00:43:29.800
<v Speaker 3>sharp based kind of thing where it's got very much

858
00:43:29.840 --> 00:43:32.679
<v Speaker 3>C sharp code behind and it's a very much adotinant language.

859
00:43:32.840 --> 00:43:36.639
<v Speaker 3>And so for VS code, the intelligence runs inside the

860
00:43:36.719 --> 00:43:39.000
<v Speaker 3>rasinal Language Server. We all live in the same process.

861
00:43:39.000 --> 00:43:41.239
<v Speaker 3>We call that call that co hosting. That's something we're

862
00:43:41.280 --> 00:43:44.880
<v Speaker 3>working on. It is something that's on a feature flag

863
00:43:45.239 --> 00:43:47.400
<v Speaker 3>right now. It's actually can be turned on in VS

864
00:43:47.400 --> 00:43:48.800
<v Speaker 3>but we're we're going to be using it for Visual

865
00:43:48.880 --> 00:43:49.679
<v Speaker 3>Geo code pretty soon.

866
00:43:49.719 --> 00:43:51.239
<v Speaker 2>Okay, So yeah, that was my question.

867
00:43:51.360 --> 00:43:54.000
<v Speaker 1>I heard you talked a lot about Visual Studio code,

868
00:43:54.199 --> 00:43:56.239
<v Speaker 1>but I thought I heard that this is also in

869
00:43:56.320 --> 00:43:56.960
<v Speaker 1>Visual Studio.

870
00:43:57.119 --> 00:43:57.480
<v Speaker 2>Yeah.

871
00:43:57.639 --> 00:44:00.280
<v Speaker 3>Yeah. The language server is used for both the and

872
00:44:00.440 --> 00:44:02.960
<v Speaker 3>VUS code. So there is like a.

873
00:44:03.039 --> 00:44:05.719
<v Speaker 1>And the language server is a process outside of both

874
00:44:05.760 --> 00:44:06.880
<v Speaker 1>of the IDEs is that.

875
00:44:06.920 --> 00:44:10.199
<v Speaker 3>It doesn't have to be It can just be a

876
00:44:10.280 --> 00:44:13.360
<v Speaker 3>logical service that's created and running there that you talk to.

877
00:44:14.599 --> 00:44:16.760
<v Speaker 3>You know, it doesn't have to go over it just

878
00:44:16.800 --> 00:44:18.119
<v Speaker 3>needs to go over a stream. It doesn't have to

879
00:44:18.159 --> 00:44:20.199
<v Speaker 3>be a name. I could just be right there in process.

880
00:44:20.239 --> 00:44:23.480
<v Speaker 3>And that's how it is ADS today. When we move

881
00:44:23.519 --> 00:44:26.519
<v Speaker 3>it to co hosting. However, when it runs inside Roslin's

882
00:44:26.559 --> 00:44:29.519
<v Speaker 3>language server, it does move. Most of it moves out

883
00:44:29.519 --> 00:44:32.400
<v Speaker 3>of process because Rosin wrote a lot of Roslin runs

884
00:44:32.440 --> 00:44:34.159
<v Speaker 3>out of process in visual Studio and it lives in

885
00:44:34.239 --> 00:44:36.360
<v Speaker 3>what we call Visual Studios Service Hub, and it runs

886
00:44:36.360 --> 00:44:37.559
<v Speaker 3>as part of that service over there.

887
00:44:37.599 --> 00:44:41.199
<v Speaker 1>It sounds like you'd be passing less data more efficiently.

888
00:44:40.800 --> 00:44:43.639
<v Speaker 3>Yeah, and well, but less data between between Razor and

889
00:44:43.639 --> 00:44:45.039
<v Speaker 3>c sharp, which is a big ball of nick.

890
00:44:45.199 --> 00:44:45.440
<v Speaker 4>Yeah.

891
00:44:45.519 --> 00:44:48.519
<v Speaker 3>So my hope is that improves performance, but it also

892
00:44:48.599 --> 00:44:51.079
<v Speaker 3>just makes it easier to get more c sharp in there.

893
00:44:51.320 --> 00:44:51.599
<v Speaker 2>Right.

894
00:44:51.679 --> 00:44:53.840
<v Speaker 3>And then the other thing, Carl, that we've been doing

895
00:44:53.960 --> 00:44:56.480
<v Speaker 3>is that we've been pulling more on the Razor compiler

896
00:44:56.559 --> 00:44:59.840
<v Speaker 3>and trying to make that more Roslin like. It started

897
00:44:59.840 --> 00:45:02.400
<v Speaker 3>out kind of being Rosin like, and then it kind

898
00:45:02.400 --> 00:45:05.320
<v Speaker 3>of I think part of the problem is that being

899
00:45:05.960 --> 00:45:10.440
<v Speaker 3>needing to serve like the needs of like a really

900
00:45:10.960 --> 00:45:14.639
<v Speaker 3>like rapidly developing space at web speed essentially, like you know,

901
00:45:14.679 --> 00:45:17.119
<v Speaker 3>as every technology comes on, Razor needed to be there,

902
00:45:17.559 --> 00:45:19.199
<v Speaker 3>and so there was never time to kind of go

903
00:45:19.280 --> 00:45:21.599
<v Speaker 3>and say, well, let's what should we do. What's the

904
00:45:21.639 --> 00:45:23.519
<v Speaker 3>right thing to do? Like, no, just go, just go

905
00:45:23.559 --> 00:45:25.480
<v Speaker 3>and get it done. And so there's a lot of

906
00:45:25.480 --> 00:45:29.960
<v Speaker 3>that debt go and while you're going go faster. Yeah,

907
00:45:30.000 --> 00:45:31.800
<v Speaker 3>and there's a lot of that debt in the compiler.

908
00:45:31.920 --> 00:45:33.960
<v Speaker 3>So trying to make it a little more rosin like

909
00:45:34.280 --> 00:45:36.480
<v Speaker 3>so that we can then bring in pieces of Roslin

910
00:45:36.559 --> 00:45:40.400
<v Speaker 3>to say, you not have a separate saf for example,

911
00:45:40.440 --> 00:45:44.320
<v Speaker 3>C sharp tokenizer in Razor as we have in you know,

912
00:45:44.360 --> 00:45:46.480
<v Speaker 3>from Roslin. So we brought in an API to bring

913
00:45:46.480 --> 00:45:49.480
<v Speaker 3>in Roslin c sharp tokenizer. So now you know, nobody

914
00:45:49.519 --> 00:45:51.199
<v Speaker 3>has to go to the Razor compiler to say just

915
00:45:51.239 --> 00:45:53.159
<v Speaker 3>to give you things that you you know, you would

916
00:45:53.159 --> 00:45:56.280
<v Speaker 3>hope would be there, like I don't know, binary literals,

917
00:45:56.360 --> 00:45:58.039
<v Speaker 3>things like that that would be at the token level

918
00:45:58.079 --> 00:45:59.960
<v Speaker 3>that they would have to code specifically into the race

919
00:46:00.079 --> 00:46:03.679
<v Speaker 3>or compiler again to get those features from c sharp

920
00:46:04.320 --> 00:46:06.679
<v Speaker 3>that when we add them. So we're trying to do

921
00:46:06.719 --> 00:46:10.480
<v Speaker 3>a better job of bringing over more features from you know,

922
00:46:10.559 --> 00:46:12.320
<v Speaker 3>modern features, because as soon as you use you know,

923
00:46:12.400 --> 00:46:13.719
<v Speaker 3>as soon as they're in C sharp, if they're not

924
00:46:13.760 --> 00:46:17.000
<v Speaker 3>in Razor, everybody's confused about what the dacoder ring is

925
00:46:17.039 --> 00:46:19.119
<v Speaker 3>for what C sharp features I can use here? Yeah,

926
00:46:19.159 --> 00:46:21.920
<v Speaker 3>and where I can use them. So we're trying to

927
00:46:22.000 --> 00:46:23.039
<v Speaker 3>trying to smooth that out.

928
00:46:22.880 --> 00:46:26.800
<v Speaker 1>To code lens would be nice in the Razor code editor.

929
00:46:27.000 --> 00:46:30.000
<v Speaker 3>Oh yeah, yeah, that is not on the It's something

930
00:46:30.000 --> 00:46:31.519
<v Speaker 3>we were working on, but yeah, that would be nice.

931
00:46:31.519 --> 00:46:34.239
<v Speaker 1>Well, is that because of the Roslin thing? Like, is

932
00:46:34.280 --> 00:46:37.000
<v Speaker 1>that like a Roslin feature? Code lens?

933
00:46:37.360 --> 00:46:40.320
<v Speaker 3>It's it's not a Roslin feature so much as it's

934
00:46:41.280 --> 00:46:43.639
<v Speaker 3>it's just an expensive feature. It's it's because you know,

935
00:46:43.679 --> 00:46:46.239
<v Speaker 3>you're running you're running final references on everything all the time,

936
00:46:46.840 --> 00:46:51.079
<v Speaker 3>and uh, you know, Razor is I would say Razor

937
00:46:51.119 --> 00:46:55.840
<v Speaker 3>has some fundamental challenges with how its model, how how

938
00:46:55.840 --> 00:46:58.239
<v Speaker 3>it kind of works, like it kind of parses everything

939
00:46:58.239 --> 00:47:01.760
<v Speaker 3>on one every keystroke and rebuild everything on every keystroke,

940
00:47:01.760 --> 00:47:05.280
<v Speaker 3>whereas Roslin's much more incremental. And so when you're typing

941
00:47:05.280 --> 00:47:08.320
<v Speaker 3>in a method body for example, in Roslin, we're we're

942
00:47:08.360 --> 00:47:11.039
<v Speaker 3>not parsing the rest of the file, it's just just

943
00:47:11.079 --> 00:47:13.199
<v Speaker 3>the bits that you're changing. And so to keep a

944
00:47:13.239 --> 00:47:16.239
<v Speaker 3>line up there with the final references kind of updating

945
00:47:16.719 --> 00:47:20.360
<v Speaker 3>it's it's not terrible. It would be much harder for

946
00:47:20.599 --> 00:47:22.519
<v Speaker 3>I mean Razor would. It would just be challenging. I

947
00:47:22.519 --> 00:47:25.679
<v Speaker 3>would say, so we but as we move the compiler forward,

948
00:47:25.719 --> 00:47:27.079
<v Speaker 3>maybe and get maybe get there.

949
00:47:27.119 --> 00:47:30.239
<v Speaker 1>Well, I'm I'm mostly using code behind files now anyway,

950
00:47:30.320 --> 00:47:33.440
<v Speaker 1>So okay, and it's for that reason that you know,

951
00:47:33.480 --> 00:47:34.880
<v Speaker 1>I miss all the things that.

952
00:47:35.480 --> 00:47:37.079
<v Speaker 3>Yeah, now I get it, I totally get it.

953
00:47:37.199 --> 00:47:42.119
<v Speaker 1>Yeah, well, that that sounds good, Dustin, I can't wait

954
00:47:42.159 --> 00:47:44.280
<v Speaker 1>for that. And is that coming in the next version

955
00:47:44.280 --> 00:47:46.480
<v Speaker 1>of dot net or or the next version of c

956
00:47:46.639 --> 00:47:48.159
<v Speaker 1>sharp or both.

957
00:47:48.519 --> 00:47:50.840
<v Speaker 3>Well, the tooling things I'm talking about will be coming

958
00:47:50.840 --> 00:47:53.360
<v Speaker 3>in like kind of like the next next the next

959
00:47:53.440 --> 00:47:55.280
<v Speaker 3>visual studios we get going, yeah.

960
00:47:55.119 --> 00:47:56.599
<v Speaker 2>Oh, the next visual studio. Wow.

961
00:47:56.880 --> 00:47:58.840
<v Speaker 3>Great, And then whenever they show up in VS code,

962
00:47:58.840 --> 00:48:01.320
<v Speaker 3>probably in vs code maybe sooner, maybe not.

963
00:48:01.599 --> 00:48:05.800
<v Speaker 2>We're not expecting a new studio fort net ten.

964
00:48:05.960 --> 00:48:07.599
<v Speaker 3>These are not things I can speak to.

965
00:48:07.800 --> 00:48:11.039
<v Speaker 1>Well, okay, I think there are new versions of the

966
00:48:11.360 --> 00:48:13.519
<v Speaker 1>studio all the time. But they're subversions.

967
00:48:13.599 --> 00:48:16.159
<v Speaker 3>Yeah, right, that's right, there are, but that's what you're

968
00:48:16.199 --> 00:48:18.599
<v Speaker 3>talking about, right, major versions or things like that.

969
00:48:18.639 --> 00:48:21.000
<v Speaker 2>I'm not sure, Okay, Yeah, it's just there's been no

970
00:48:21.079 --> 00:48:25.880
<v Speaker 2>announcement about a Studio twenty twenty five at this point,

971
00:48:26.400 --> 00:48:32.079
<v Speaker 2>and normally, like you think back to see to dot

972
00:48:32.159 --> 00:48:35.239
<v Speaker 2>net six, like that was very much tied together with

973
00:48:35.480 --> 00:48:38.679
<v Speaker 2>twenty nineteen, like they had to have both, Like you

974
00:48:38.679 --> 00:48:40.800
<v Speaker 2>couldn't even run the preview if you didn't download the

975
00:48:40.840 --> 00:48:43.679
<v Speaker 2>preview bits at twenty nineteen as well. Not that I

976
00:48:43.719 --> 00:48:45.920
<v Speaker 2>love that like that, I've felt like those were two close,

977
00:48:46.000 --> 00:48:49.840
<v Speaker 2>closely tied. You know. It kind of made an impossible situation,

978
00:48:49.880 --> 00:48:51.599
<v Speaker 2>Like I feel for the Maui team because they were

979
00:48:51.599 --> 00:48:53.480
<v Speaker 2>also trying to push Maui out at the same time.

980
00:48:53.519 --> 00:48:57.199
<v Speaker 2>It's like, wait, language is changing, dead platform is changing,

981
00:48:57.679 --> 00:49:00.480
<v Speaker 2>and you're trying to build a new SDK. Ah gee,

982
00:49:00.480 --> 00:49:01.559
<v Speaker 2>I wonder why that's hard.

983
00:49:01.880 --> 00:49:05.400
<v Speaker 3>Yeah, yeah, it's tough. Coordination is hard for sure.

984
00:49:05.719 --> 00:49:08.880
<v Speaker 2>Yeah, So it's just quite you know. It's not like

985
00:49:08.920 --> 00:49:12.599
<v Speaker 2>Studio doesn't commonantly update anyway, right, it gets its quarterly.

986
00:49:12.639 --> 00:49:15.280
<v Speaker 2>It's like there's new features all the time. It's really

987
00:49:15.280 --> 00:49:17.440
<v Speaker 2>a question of when do you declare a new version.

988
00:49:17.840 --> 00:49:19.800
<v Speaker 3>Yeah, And there's been a lot of summer releases on

989
00:49:19.880 --> 00:49:21.920
<v Speaker 3>that too. As we've been you know, putting out new

990
00:49:21.920 --> 00:49:24.400
<v Speaker 3>co pilot experiments, trying new things. There's been a lot

991
00:49:24.480 --> 00:49:26.480
<v Speaker 3>that e any that haven't hit the previu channel that

992
00:49:26.639 --> 00:49:28.199
<v Speaker 3>hit the release channel. So there's been a lot of

993
00:49:28.360 --> 00:49:31.000
<v Speaker 3>a lot of updates lately. Yeah, in that space, but.

994
00:49:30.960 --> 00:49:33.840
<v Speaker 2>It's also been a while. Twenty two is the current version, Like,

995
00:49:34.000 --> 00:49:37.039
<v Speaker 2>is it really going to be twenty two? Yeah, it's funny.

996
00:49:37.280 --> 00:49:38.800
<v Speaker 2>We were talking about that on the dev team. I

997
00:49:38.920 --> 00:49:40.840
<v Speaker 2>was trying to I had to remind people. It was like,

998
00:49:40.840 --> 00:49:43.440
<v Speaker 2>do you guys remember what the big depths like we called,

999
00:49:43.480 --> 00:49:47.320
<v Speaker 2>you know, twenty twenty two, what the big thing was? Gosh,

1000
00:49:47.320 --> 00:49:49.039
<v Speaker 2>that was a long time ago. It was sixty four

1001
00:49:49.079 --> 00:49:50.440
<v Speaker 2>bit that was the big thing.

1002
00:49:50.840 --> 00:49:52.880
<v Speaker 3>That was my gosh, that seems like a lifetime ago

1003
00:49:53.000 --> 00:49:56.000
<v Speaker 3>that we were trying to get everything out of sixty fourth. Yeah.

1004
00:49:56.039 --> 00:49:57.440
<v Speaker 3>So yeah, it's been a while.

1005
00:49:57.559 --> 00:49:58.800
<v Speaker 2>Yeah, just make it all work.

1006
00:49:58.840 --> 00:50:01.719
<v Speaker 1>But there's been inter releases like I was talking about

1007
00:50:01.760 --> 00:50:05.320
<v Speaker 1>before that, you know, just not they're not just bug fixes,

1008
00:50:05.320 --> 00:50:06.679
<v Speaker 1>but you have new features.

1009
00:50:06.280 --> 00:50:07.440
<v Speaker 2>In these interim releases.

1010
00:50:07.840 --> 00:50:08.280
<v Speaker 3>That's right.

1011
00:50:08.360 --> 00:50:10.280
<v Speaker 2>So what's a version actually it is?

1012
00:50:10.360 --> 00:50:12.280
<v Speaker 3>I mean, you know, maybe we'll just get high enough

1013
00:50:12.280 --> 00:50:14.199
<v Speaker 3>that will be in kind of chrome version numbers where

1014
00:50:14.199 --> 00:50:16.119
<v Speaker 3>you just don't even know what you're running anymore. Yeah,

1015
00:50:16.119 --> 00:50:18.199
<v Speaker 3>I don't know. This is version six thousand or something.

1016
00:50:18.320 --> 00:50:22.119
<v Speaker 2>Right, reopen it and it updates, updates every time you

1017
00:50:22.159 --> 00:50:23.000
<v Speaker 2>close it, right.

1018
00:50:23.320 --> 00:50:25.400
<v Speaker 3>Yeah, yeah, let's see.

1019
00:50:25.800 --> 00:50:27.880
<v Speaker 2>Oh my goodness, I just pulled up the release notes.

1020
00:50:28.079 --> 00:50:31.280
<v Speaker 2>There have been fourteen releases on twenty twenty two.

1021
00:50:31.400 --> 00:50:36.719
<v Speaker 3>Yeah, fourteen, and that's just the minor releases, right, the dots. Yeah, yeah,

1022
00:50:36.760 --> 00:50:39.239
<v Speaker 3>this is the dots, and that means and I think

1023
00:50:39.320 --> 00:50:41.119
<v Speaker 3>every other one of those I can't remember. It's the

1024
00:50:41.159 --> 00:50:46.320
<v Speaker 3>even ones are long care support. So yeah, it's crazy.

1025
00:50:46.480 --> 00:50:48.840
<v Speaker 2>It just yeah, it speaks to it's getting really hard

1026
00:50:48.840 --> 00:50:52.360
<v Speaker 2>to understand what version numbers are when you're yeah constantly, right,

1027
00:50:52.440 --> 00:50:55.000
<v Speaker 2>it's the even numbers. Seventeen point two is LTSC.

1028
00:50:55.199 --> 00:50:58.880
<v Speaker 1>Yeah, how long is the list of is your barn list?

1029
00:50:58.920 --> 00:51:01.119
<v Speaker 1>Your list of features.

1030
00:51:00.880 --> 00:51:03.880
<v Speaker 3>To implement for the language, for tooling for.

1031
00:51:04.360 --> 00:51:07.519
<v Speaker 1>Yeah yeah, well yeah, for the ide actually for visual studio.

1032
00:51:08.920 --> 00:51:12.199
<v Speaker 3>Gosh, that's never ending. We have so much we want

1033
00:51:12.239 --> 00:51:14.480
<v Speaker 3>to do. We never have enough fingers to type them

1034
00:51:14.480 --> 00:51:14.800
<v Speaker 3>all in.

1035
00:51:15.159 --> 00:51:15.320
<v Speaker 2>Yeah.

1036
00:51:15.360 --> 00:51:18.280
<v Speaker 1>So yeah, do you get help from the community. We do,

1037
00:51:18.400 --> 00:51:20.519
<v Speaker 1>I mean it is open source. Do you get pull requests?

1038
00:51:21.199 --> 00:51:23.480
<v Speaker 3>Roslin gets a fair number of full requests. We even

1039
00:51:23.559 --> 00:51:27.039
<v Speaker 3>have somebody we roslin we uh in the c sharp

1040
00:51:27.119 --> 00:51:30.360
<v Speaker 3>language design team. We've been we experimented with this where

1041
00:51:30.400 --> 00:51:32.400
<v Speaker 3>the kind of that we have a community member on

1042
00:51:32.480 --> 00:51:36.360
<v Speaker 3>the language design team who's not a Microsoft employee, so

1043
00:51:36.440 --> 00:51:40.320
<v Speaker 3>we we we work very closely with with with it.

1044
00:51:40.360 --> 00:51:42.519
<v Speaker 3>Then there's a handful of community members that are comfortable

1045
00:51:43.079 --> 00:51:47.079
<v Speaker 3>putting in compiler features and doing the entire tooling stack

1046
00:51:47.119 --> 00:51:48.719
<v Speaker 3>and all the features all the way up, which is

1047
00:51:48.719 --> 00:51:51.599
<v Speaker 3>great because that means because if you know, you submit

1048
00:51:51.639 --> 00:51:54.079
<v Speaker 3>a language feature and it's like, oh, that's cool, but

1049
00:51:54.239 --> 00:51:55.480
<v Speaker 3>now we've got a lot of work to do.

1050
00:51:56.000 --> 00:51:56.119
<v Speaker 2>Uh.

1051
00:51:56.760 --> 00:51:58.199
<v Speaker 3>And so the guys that will come in and just

1052
00:51:58.199 --> 00:52:01.000
<v Speaker 3>do it all, it's like thank you, Yes, we want

1053
00:52:01.000 --> 00:52:02.360
<v Speaker 3>this too, this is a great feature.

1054
00:52:02.920 --> 00:52:04.639
<v Speaker 2>But can they really do it all? Because I think

1055
00:52:04.679 --> 00:52:08.639
<v Speaker 2>about the cultural adaptations you have to make for stuff.

1056
00:52:08.360 --> 00:52:10.800
<v Speaker 3>Like oh sure, no, those sorts of things are yeah,

1057
00:52:10.960 --> 00:52:13.440
<v Speaker 3>globalization and all those kinds of things are different. But yeah,

1058
00:52:13.519 --> 00:52:15.559
<v Speaker 3>but do but just to get the feature working, make

1059
00:52:15.559 --> 00:52:17.559
<v Speaker 3>sure it works an inteli sense, put a refactoring in

1060
00:52:17.639 --> 00:52:20.440
<v Speaker 3>or two, you know those kinds of things. That's pretty great.

1061
00:52:20.440 --> 00:52:21.840
<v Speaker 2>Do you get prs from Mark Miller?

1062
00:52:22.039 --> 00:52:24.159
<v Speaker 3>No?

1063
00:52:24.480 --> 00:52:26.239
<v Speaker 2>And would you accept them anyway? Yeah?

1064
00:52:26.679 --> 00:52:33.360
<v Speaker 3>No, absolutely not. I mean, guy, who's going to accept

1065
00:52:33.360 --> 00:52:35.440
<v Speaker 3>an all emoji all caps PR?

1066
00:52:36.760 --> 00:52:39.880
<v Speaker 2>I mean, really, you gotta look at yourself in the

1067
00:52:39.920 --> 00:52:45.960
<v Speaker 2>face afterwards, you know, No, I'm sorry. Yeah, yeah, you know,

1068
00:52:46.039 --> 00:52:46.840
<v Speaker 2>you guys are all friends.

1069
00:52:46.840 --> 00:52:48.280
<v Speaker 3>Don't get you're trying to get me in trouble. I

1070
00:52:48.320 --> 00:52:49.159
<v Speaker 3>can tell no, no.

1071
00:52:49.079 --> 00:52:49.559
<v Speaker 2>Of course not.

1072
00:52:52.000 --> 00:52:53.159
<v Speaker 3>Yeah.

1073
00:52:53.239 --> 00:52:55.320
<v Speaker 2>Yeah, you worked for Devax back in the day. It

1074
00:52:55.360 --> 00:52:57.400
<v Speaker 2>was a long time ago. Now, mind you, it.

1075
00:52:57.239 --> 00:52:59.440
<v Speaker 3>Was a long time. So if it, if it, if it,

1076
00:53:00.039 --> 00:53:02.760
<v Speaker 3>there's you at all when I say this, it's that's fair.

1077
00:53:02.920 --> 00:53:05.119
<v Speaker 3>I have been at Microsoft for seventeen years.

1078
00:53:05.159 --> 00:53:05.440
<v Speaker 4>Wow.

1079
00:53:05.559 --> 00:53:06.800
<v Speaker 2>Oh man, wow wowow.

1080
00:53:06.960 --> 00:53:09.199
<v Speaker 3>And it seems like it doesn't seem that long ago that,

1081
00:53:09.320 --> 00:53:11.400
<v Speaker 3>you know, you guys were doing dot net rocks trips

1082
00:53:11.400 --> 00:53:13.599
<v Speaker 3>and I'd show up for a while ark or something.

1083
00:53:13.639 --> 00:53:17.519
<v Speaker 3>It's like that was that seems like not that long ago.

1084
00:53:17.639 --> 00:53:20.119
<v Speaker 2>Last tour was twenty thirteen. Man, it's been a long time.

1085
00:53:20.199 --> 00:53:23.079
<v Speaker 3>Yeah, I was already there for five years, so it's

1086
00:53:23.119 --> 00:53:25.199
<v Speaker 3>it's been. Yeah, it's been a while since I've been

1087
00:53:25.239 --> 00:53:27.199
<v Speaker 3>at Microsoft, and it's been it's been a lot of fun.

1088
00:53:27.280 --> 00:53:30.519
<v Speaker 2>Yeah, they took our RV away. They said no more

1089
00:53:30.639 --> 00:53:36.679
<v Speaker 2>tours for you. Ye know, it was batted around. I

1090
00:53:36.719 --> 00:53:38.920
<v Speaker 2>had a conversation with a team that's like, would you

1091
00:53:38.960 --> 00:53:42.800
<v Speaker 2>consider another road trip? It's like, you know, I'm fifty eight, right,

1092
00:53:43.679 --> 00:53:47.159
<v Speaker 2>come on? Yeah, I mean I would do it. I

1093
00:53:47.199 --> 00:53:50.039
<v Speaker 2>would totally do it, but I just don't. I don't know.

1094
00:53:50.159 --> 00:53:52.440
<v Speaker 3>Would you do it like the Iron Maiden way? Would

1095
00:53:52.440 --> 00:53:54.360
<v Speaker 3>you have to get like a jet to fly yourselves

1096
00:53:54.400 --> 00:53:56.679
<v Speaker 3>instead of an RV? You know you can't. I can't

1097
00:53:56.719 --> 00:53:58.280
<v Speaker 3>sleep in an RV anymore. I'm too old.

1098
00:53:58.320 --> 00:54:00.480
<v Speaker 2>Yeah. Well, we never slept in the We never did

1099
00:54:00.559 --> 00:54:01.280
<v Speaker 2>sleep in the area.

1100
00:54:01.320 --> 00:54:03.679
<v Speaker 3>Oh yeah, that's true. I guess you stopped in each place.

1101
00:54:03.719 --> 00:54:06.599
<v Speaker 2>We stayed in little hotels. It smelled bad enough as

1102
00:54:06.639 --> 00:54:11.199
<v Speaker 2>it was. We stayed at.

1103
00:54:11.159 --> 00:54:14.400
<v Speaker 1>Laking To Ends, mostly on the last one. On the

1104
00:54:14.840 --> 00:54:17.000
<v Speaker 1>first one, we were looking whatever we could find.

1105
00:54:17.400 --> 00:54:20.920
<v Speaker 2>Yeah, there's a couple where we did, like he did,

1106
00:54:20.920 --> 00:54:23.880
<v Speaker 2>standing for beside the Denny's. Yeah, next to Denny's.

1107
00:54:23.960 --> 00:54:27.960
<v Speaker 1>Yeah, Okay, what's next after you hang up with us?

1108
00:54:27.960 --> 00:54:29.199
<v Speaker 2>What are you? What are you going to go do?

1109
00:54:29.639 --> 00:54:30.920
<v Speaker 2>You're on vacation, right.

1110
00:54:31.280 --> 00:54:33.360
<v Speaker 3>I'm on vacation. I'm going to go play mini golf

1111
00:54:33.360 --> 00:54:33.960
<v Speaker 3>with family.

1112
00:54:34.119 --> 00:54:36.320
<v Speaker 2>That's great. There you go, that's a great thing.

1113
00:54:36.480 --> 00:54:38.320
<v Speaker 3>It's yeah, we're kinds great.

1114
00:54:38.400 --> 00:54:41.840
<v Speaker 1>And when you get back, it's just more more razor

1115
00:54:41.880 --> 00:54:42.320
<v Speaker 1>code work.

1116
00:54:42.480 --> 00:54:43.480
<v Speaker 3>Yeah it is.

1117
00:54:43.679 --> 00:54:45.360
<v Speaker 2>It's it's the grind to November.

1118
00:54:45.400 --> 00:54:48.159
<v Speaker 3>There's a lot to do and I kind of feel

1119
00:54:48.199 --> 00:54:50.599
<v Speaker 3>like I shouldn't really be on vacation, but it was,

1120
00:54:50.639 --> 00:54:52.920
<v Speaker 3>it was planned. It's like and it's never a good

1121
00:54:52.960 --> 00:54:53.440
<v Speaker 3>time to go.

1122
00:54:53.599 --> 00:54:56.159
<v Speaker 2>It's always you need to take vacations.

1123
00:54:56.280 --> 00:54:59.239
<v Speaker 3>Yeah, for your agreed, and I planned it. But yeah,

1124
00:54:59.360 --> 00:55:03.599
<v Speaker 3>it's there's just always too much and it's hard to

1125
00:55:03.639 --> 00:55:04.400
<v Speaker 3>be away sometimes.

1126
00:55:04.440 --> 00:55:07.880
<v Speaker 1>I totally get it. I totally get it. And my

1127
00:55:07.960 --> 00:55:09.800
<v Speaker 1>wife looks at me and when we're on vacation, you're

1128
00:55:09.840 --> 00:55:11.000
<v Speaker 1>thinking about code, aren't you.

1129
00:55:12.039 --> 00:55:14.639
<v Speaker 2>How do you know that? Well, yeah, because I'll see

1130
00:55:14.679 --> 00:55:15.440
<v Speaker 2>it in your eyes.

1131
00:55:16.159 --> 00:55:18.960
<v Speaker 3>I don't. I don't. I don't separate code from vacation.

1132
00:55:19.440 --> 00:55:21.760
<v Speaker 3>I mean that's just what I'm coding. Let's not get

1133
00:55:21.800 --> 00:55:26.639
<v Speaker 3>crazy now, Yeah, whoa no vacation can be code. That's okay,

1134
00:55:26.679 --> 00:55:29.039
<v Speaker 3>it's just got to be like an nes emulator or something.

1135
00:55:29.480 --> 00:55:33.119
<v Speaker 1>Ah, all right, well, good, well man, it's been great

1136
00:55:33.159 --> 00:55:35.320
<v Speaker 1>talking to you again, and keep up the good work.

1137
00:55:35.360 --> 00:55:37.199
<v Speaker 1>I know we're in good hands with you at the

1138
00:55:37.840 --> 00:55:40.679
<v Speaker 1>at the wheel. So thanks, thank you. We'll talk to

1139
00:55:40.679 --> 00:55:41.360
<v Speaker 1>you next time.

1140
00:55:41.519 --> 00:55:57.480
<v Speaker 4>I'm dot net rocks.

1141
00:56:03.119 --> 00:56:05.840
<v Speaker 1>Dot net Rocks is brought to you by Franklin's Net

1142
00:56:05.920 --> 00:56:09.880
<v Speaker 1>and produced by Pop Studios, a full service audio, video

1143
00:56:09.960 --> 00:56:14.039
<v Speaker 1>and post production facility located physically in New London, Connecticut,

1144
00:56:14.280 --> 00:56:19.079
<v Speaker 1>and of course in the cloud online at pwop dot com.

1145
00:56:19.280 --> 00:56:21.400
<v Speaker 1>Visit our website at d O T N E t

1146
00:56:21.639 --> 00:56:25.679
<v Speaker 1>R O c k S dot com for RSS feeds, downloads,

1147
00:56:25.840 --> 00:56:29.519
<v Speaker 1>mobile apps, comments, and access to the full archives going

1148
00:56:29.559 --> 00:56:32.800
<v Speaker 1>back to show number one, recorded in September two.

1149
00:56:32.599 --> 00:56:33.199
<v Speaker 2>Thousand and two.

1150
00:56:33.840 --> 00:56:36.159
<v Speaker 1>And make sure you check out our sponsors. They keep

1151
00:56:36.239 --> 00:56:38.800
<v Speaker 1>us in business. Now go write some code.

1152
00:56:39.119 --> 00:56:39.880
<v Speaker 2>See you next time.

1153
00:56:40.800 --> 00:56:42.599
<v Speaker 4>You got JAD Middle Vans

1154
00:56:44.679 --> 00:56:44.719
<v Speaker 3>And
