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:07.879
<v Speaker 1>no ads? Easy? Become a patron for just five dollars

3
00:00:07.919 --> 00:00:10.800
<v Speaker 1>a month. You get access to a private RSS feed

4
00:00:10.839 --> 00:00:14.279
<v Speaker 1>where all the shows have no ads. Twenty dollars a month.

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

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

7
00:00:21.120 --> 00:00:37.000
<v Speaker 1>dot com. Hey guess what, it's dot net rocks all

8
00:00:37.039 --> 00:00:42.359
<v Speaker 1>over again. I'm Carl Franklin at Amateur Campbell and H Richard.

9
00:00:42.439 --> 00:00:45.399
<v Speaker 1>You're still in Canada? A, yeah, yeah, it's nice here.

10
00:00:45.600 --> 00:00:52.759
<v Speaker 1>Yeah cool. That's all I'm gonna say about that. We

11
00:00:52.840 --> 00:00:55.840
<v Speaker 1>love Canada.

12
00:00:56.079 --> 00:00:56.399
<v Speaker 2>Well.

13
00:00:56.920 --> 00:00:59.600
<v Speaker 1>Before we get into better no framework, let's just talk

14
00:00:59.640 --> 00:01:02.679
<v Speaker 1>a little bit about nineteen forty. Kind of an important year.

15
00:01:02.960 --> 00:01:06.359
<v Speaker 1>Episode nineteen forty, Episode nineteen forty. So the year nineteen

16
00:01:06.439 --> 00:01:10.760
<v Speaker 1>forty saw the beginning of World War two's escalation anyway,

17
00:01:11.719 --> 00:01:15.120
<v Speaker 1>the signing of the Selective Training and Service Act, which

18
00:01:15.239 --> 00:01:19.319
<v Speaker 1>established the first peacetime draft in the US, and the

19
00:01:19.400 --> 00:01:24.480
<v Speaker 1>release of Disney's animated film Fantasia Nice. Additionally, the US

20
00:01:24.519 --> 00:01:27.959
<v Speaker 1>made agreements to transfer destroyers to Great Britain in exchange

21
00:01:27.959 --> 00:01:31.120
<v Speaker 1>for military base leases. As you do you have anything

22
00:01:31.159 --> 00:01:32.719
<v Speaker 1>to add? I mean, a lot of stuff happened in

23
00:01:32.760 --> 00:01:34.000
<v Speaker 1>nineteen forty A lot.

24
00:01:33.799 --> 00:01:36.319
<v Speaker 2>Of stuff happened. But you know, my personal favorite would

25
00:01:36.319 --> 00:01:40.680
<v Speaker 2>be the Jeep. Oh yeah, Yeah. The US realized it

26
00:01:40.719 --> 00:01:44.120
<v Speaker 2>needed a lightweight, recon vehicle, something they could be all terrain,

27
00:01:44.280 --> 00:01:47.280
<v Speaker 2>and they put out or bids basically to car companies

28
00:01:47.280 --> 00:01:50.480
<v Speaker 2>in the US. Everybody scrambled around. It's a crazy story

29
00:01:50.480 --> 00:01:53.480
<v Speaker 2>that this little car company called the Bantam Car, a

30
00:01:53.519 --> 00:01:58.040
<v Speaker 2>motor car company in Pennsylvania, hired a guy from Detroit

31
00:01:58.120 --> 00:02:02.359
<v Speaker 2>named Carl Probst who in a week basically designed that

32
00:02:02.640 --> 00:02:04.120
<v Speaker 2>the prototype of the Jeep.

33
00:02:04.159 --> 00:02:09.680
<v Speaker 1>That's longer than it took them to create JavaScript, which

34
00:02:09.719 --> 00:02:10.719
<v Speaker 1>I believe wasn't a week.

35
00:02:10.800 --> 00:02:15.080
<v Speaker 2>This was a car anyway. Yeah, at the beginning of

36
00:02:15.080 --> 00:02:17.400
<v Speaker 2>the Jeep comes with a part of the World War Two.

37
00:02:17.719 --> 00:02:20.319
<v Speaker 1>And you know, I know this little factoid about Jeep.

38
00:02:20.639 --> 00:02:22.520
<v Speaker 1>I don't remember the character's name, but there was a

39
00:02:22.639 --> 00:02:26.680
<v Speaker 1>character on the cartoon Popeye, right that's related to the Jeep.

40
00:02:28.080 --> 00:02:33.199
<v Speaker 1>And it was a character. All right, I'm gonna have

41
00:02:33.240 --> 00:02:36.039
<v Speaker 1>to since you got Eugene the Jeep, Yeah, that's it,

42
00:02:36.120 --> 00:02:40.800
<v Speaker 1>Eugene the Jeep. And it was all right, I don't

43
00:02:40.840 --> 00:02:41.479
<v Speaker 1>know as much.

44
00:02:41.319 --> 00:02:42.560
<v Speaker 2>As you said. Jeep jeep.

45
00:02:43.039 --> 00:02:44.560
<v Speaker 1>Yeah, he used to say jeep, jeep jeep.

46
00:02:44.639 --> 00:02:46.840
<v Speaker 2>Yeah. Yeah, yellow weird yellow critter.

47
00:02:47.080 --> 00:02:50.039
<v Speaker 1>I'm one of them. Started the other like it might

48
00:02:50.039 --> 00:02:54.199
<v Speaker 1>have been that critter that named the jeep, or it

49
00:02:54.280 --> 00:02:57.840
<v Speaker 1>might have been the jeep that inspired the cartoon character.

50
00:02:57.919 --> 00:02:59.439
<v Speaker 1>I can't remember which it is.

51
00:02:59.360 --> 00:03:02.759
<v Speaker 2>But yeah, jeep. It was a perversion of an acronym

52
00:03:02.840 --> 00:03:04.159
<v Speaker 2>for a general purpose vehicle.

53
00:03:04.360 --> 00:03:10.240
<v Speaker 1>Okay, so it comes through with the facts. Yeah, okay,

54
00:03:10.319 --> 00:03:12.199
<v Speaker 1>Well let's get into better no framework, this is a

55
00:03:12.240 --> 00:03:21.879
<v Speaker 1>good one. Roll the music, what you got. It's an

56
00:03:21.960 --> 00:03:24.879
<v Speaker 1>article in the Verge. There's lots of articles around it.

57
00:03:24.960 --> 00:03:27.879
<v Speaker 1>But this is where I learned about a new way

58
00:03:27.919 --> 00:03:32.840
<v Speaker 1>of capturing three D content called Gauschian splatting.

59
00:03:33.879 --> 00:03:37.479
<v Speaker 2>Because we always trust a technology called plastic slatting.

60
00:03:37.680 --> 00:03:42.319
<v Speaker 1>Yes, so the the whole idea between Gauchian splatting is

61
00:03:42.439 --> 00:03:45.919
<v Speaker 1>rather than let me see if I can just sort

62
00:03:45.919 --> 00:03:50.439
<v Speaker 1>of you know, nail it down the ideas instead of

63
00:03:50.479 --> 00:03:55.879
<v Speaker 1>doing sort of vectorizing and turning things into triangles, and

64
00:03:55.879 --> 00:03:58.479
<v Speaker 1>the more triangles you have, the better resolution you have.

65
00:03:59.560 --> 00:04:03.039
<v Speaker 1>This sort of of creates well, you know, a Gaussian

66
00:04:03.120 --> 00:04:06.719
<v Speaker 1>blurring is right. Yeah, so it creates these sort of

67
00:04:07.280 --> 00:04:12.120
<v Speaker 1>blurry things that compound on top of each other and

68
00:04:12.199 --> 00:04:17.040
<v Speaker 1>make up a more realistic looking three D image. But

69
00:04:17.160 --> 00:04:21.120
<v Speaker 1>here's the cool part about splatting is that you can

70
00:04:21.160 --> 00:04:24.160
<v Speaker 1>do it in real time. It can render in real

71
00:04:24.240 --> 00:04:26.079
<v Speaker 1>time at one hundred frames a second.

72
00:04:26.319 --> 00:04:29.000
<v Speaker 2>Computationally efficient would be a way to say it, as

73
00:04:29.000 --> 00:04:31.360
<v Speaker 2>well as being small.

74
00:04:31.160 --> 00:04:37.079
<v Speaker 1>Very computationally efficient. Yeah, so I can see this coming

75
00:04:37.199 --> 00:04:40.319
<v Speaker 1>to all the major tools. There are tools that you

76
00:04:40.360 --> 00:04:42.199
<v Speaker 1>can use now, but they're sort of add ins, and

77
00:04:42.439 --> 00:04:46.439
<v Speaker 1>it'll become more mainstream. But I think it's really really cool.

78
00:04:46.439 --> 00:04:48.279
<v Speaker 1>It's going to make for some amazing games and some

79
00:04:48.360 --> 00:04:51.439
<v Speaker 1>amazing three D experiences. Just the whole idea of going

80
00:04:51.439 --> 00:04:54.920
<v Speaker 1>out with a camera, taking some video or taking pictures

81
00:04:55.399 --> 00:04:58.279
<v Speaker 1>and then stitching them together and creating a three D

82
00:04:58.639 --> 00:05:01.800
<v Speaker 1>model of that. Now that can be pretty much in

83
00:05:01.839 --> 00:05:02.360
<v Speaker 1>real time.

84
00:05:02.759 --> 00:05:06.199
<v Speaker 2>Yeah, it's interesting, very cool. We're getting to you know,

85
00:05:06.680 --> 00:05:08.399
<v Speaker 2>what's cool is what we've been able to do. This

86
00:05:08.480 --> 00:05:12.120
<v Speaker 2>is just computationally intensive. This is clever tricks to reduce

87
00:05:12.199 --> 00:05:14.079
<v Speaker 2>the number of bits that need to be hauled around

88
00:05:14.079 --> 00:05:15.439
<v Speaker 2>to get the same similar results.

89
00:05:15.480 --> 00:05:17.920
<v Speaker 1>Anyway, maybe not exactly, so I think it's a kind

90
00:05:17.920 --> 00:05:20.519
<v Speaker 1>of a breakthrough. So that's what I got. Who's talking

91
00:05:20.519 --> 00:05:22.720
<v Speaker 1>to us today? Richard grabbed a comment of a show

92
00:05:23.040 --> 00:05:25.680
<v Speaker 1>nineteen thirty five. Just a few weeks ago, we talked

93
00:05:25.720 --> 00:05:28.560
<v Speaker 1>to Nathan Westfall about his app that he might the

94
00:05:28.600 --> 00:05:31.160
<v Speaker 1>mobile app he was working on that migrated from Reforms

95
00:05:31.199 --> 00:05:33.920
<v Speaker 1>to Blazer. This comment for Rob King, I thought was

96
00:05:33.959 --> 00:05:36.879
<v Speaker 1>relevant to what we were talking about today, where I

97
00:05:36.920 --> 00:05:38.959
<v Speaker 1>said where he says, I've been doing small stuff in

98
00:05:39.000 --> 00:05:41.639
<v Speaker 1>Blazer since not at five and late twenty twenty three,

99
00:05:41.639 --> 00:05:43.399
<v Speaker 1>we had the opportunity to build a greenfield app with

100
00:05:43.439 --> 00:05:45.720
<v Speaker 1>a tight deadline. While Nathan's app sounds a bit more

101
00:05:45.759 --> 00:05:48.040
<v Speaker 1>complex than ours, a lot of his reasons and decisions

102
00:05:48.079 --> 00:05:51.279
<v Speaker 1>around Blazer resonated with our thoughts and considerations. I build

103
00:05:51.279 --> 00:05:53.560
<v Speaker 1>Blazer using all the hosting models, but I still to

104
00:05:53.759 --> 00:05:57.160
<v Speaker 1>fall to WASM for its clean separation of client server responsibilities.

105
00:05:57.240 --> 00:05:59.800
<v Speaker 1>If I can do everything in the browser that reacted

106
00:06:00.000 --> 00:06:02.040
<v Speaker 1>anger can do, but can write it the same language

107
00:06:02.040 --> 00:06:04.040
<v Speaker 1>as a back end, why would it choose anything else?

108
00:06:04.240 --> 00:06:04.959
<v Speaker 1>Why would you?

109
00:06:05.040 --> 00:06:08.079
<v Speaker 2>Well? And the argumator for a reactor course is if

110
00:06:08.120 --> 00:06:10.639
<v Speaker 2>I can write everything in JavaScript front end and back end.

111
00:06:10.879 --> 00:06:12.279
<v Speaker 2>Why wouldn't choose anything else?

112
00:06:12.439 --> 00:06:15.079
<v Speaker 1>Absolutely? I guess it all depends on what your skill

113
00:06:15.120 --> 00:06:17.839
<v Speaker 1>set is. And yeah, you know what's your language of choice?

114
00:06:18.240 --> 00:06:21.399
<v Speaker 2>Too sweet? How are you happy? Absolutely so, Rob, Thank

115
00:06:21.399 --> 00:06:22.759
<v Speaker 2>you so much for your comment. And the copy of

116
00:06:22.839 --> 00:06:24.160
<v Speaker 2>music coby is on its way to you. And if

117
00:06:24.199 --> 00:06:25.600
<v Speaker 2>you'd like a copy of music Cobey, I write a

118
00:06:25.600 --> 00:06:28.240
<v Speaker 2>comment on the website attrocks dot com or on the facebooks.

119
00:06:28.240 --> 00:06:30.199
<v Speaker 2>We publish every show there and if you comment there

120
00:06:30.199 --> 00:06:31.319
<v Speaker 2>and I read in the show, we'll send you a

121
00:06:31.360 --> 00:06:32.079
<v Speaker 2>copy of music Cope.

122
00:06:32.120 --> 00:06:36.399
<v Speaker 1>Music to Code Buy has a new episode track. I

123
00:06:36.399 --> 00:06:38.079
<v Speaker 1>guess we call them let me say that again, Yeah,

124
00:06:38.079 --> 00:06:40.040
<v Speaker 1>the tracks all right, Music code by has a new

125
00:06:40.079 --> 00:06:42.160
<v Speaker 1>track track number twenty two. You can go get it

126
00:06:42.360 --> 00:06:45.600
<v Speaker 1>or download the whole thing as MP three's waves or

127
00:06:46.360 --> 00:06:49.480
<v Speaker 1>flax and that is it music to code dot net

128
00:06:49.560 --> 00:06:56.240
<v Speaker 1>flat awesome not half flat flat flag. So yeah, And

129
00:06:56.360 --> 00:07:00.639
<v Speaker 1>you can also find us on the social media's which

130
00:07:00.759 --> 00:07:05.759
<v Speaker 1>include ex Twitter, Mastadon and Blue Sky and where some

131
00:07:06.639 --> 00:07:09.240
<v Speaker 1>you know some version of at Carl Franklin, at Rich Campbell.

132
00:07:09.279 --> 00:07:10.600
<v Speaker 2>Okay, yep, across the wall.

133
00:07:10.680 --> 00:07:16.879
<v Speaker 1>So let's bring back Aurora Aurora Sharf She was Aurora

134
00:07:16.879 --> 00:07:20.319
<v Speaker 1>Wohlberg last time we talked. She's a software developer and

135
00:07:20.399 --> 00:07:24.199
<v Speaker 1>Microsoft MVP from Norway. Aurora began her career at a

136
00:07:24.240 --> 00:07:28.920
<v Speaker 1>financial technology startup and now serves as consultant at Crayon Consulting.

137
00:07:29.560 --> 00:07:33.720
<v Speaker 1>She focuses on web development and has extensive expertise in

138
00:07:33.759 --> 00:07:37.519
<v Speaker 1>React and next dot JS and active use of React

139
00:07:37.560 --> 00:07:43.079
<v Speaker 1>server components. She shares her knowledge through workshops, technical blog posts,

140
00:07:43.199 --> 00:07:47.160
<v Speaker 1>social media, demo apps, and supporting fellow developers, and she

141
00:07:47.279 --> 00:07:52.000
<v Speaker 1>regularly presents internationally at recognized conferences to contribute to the

142
00:07:52.000 --> 00:07:55.279
<v Speaker 1>global developer community. Welcome back, Aurora, Hi.

143
00:07:55.639 --> 00:07:58.600
<v Speaker 3>Thank you for having me back. Get to see you guys, singin.

144
00:07:58.800 --> 00:08:00.920
<v Speaker 2>That's normally where we hang up is at the various

145
00:08:00.959 --> 00:08:02.519
<v Speaker 2>conferences we both here in.

146
00:08:04.399 --> 00:08:06.600
<v Speaker 1>It was so much fun last time, and you've got

147
00:08:06.600 --> 00:08:08.680
<v Speaker 1>some new stuff to talk about, so why not.

148
00:08:09.319 --> 00:08:12.639
<v Speaker 3>Yeah, last time I was NBC Portal and it's it's

149
00:08:12.680 --> 00:08:15.720
<v Speaker 3>different now we're doing it online, but it's fun. Yeah

150
00:08:16.079 --> 00:08:17.040
<v Speaker 3>this way as well.

151
00:08:17.519 --> 00:08:21.439
<v Speaker 1>And amazingly everything's working today. Don't chinx it oh far.

152
00:08:24.680 --> 00:08:27.680
<v Speaker 1>I know lately Riverside has been kind of hostile towards

153
00:08:28.839 --> 00:08:31.439
<v Speaker 1>people who want to use it as in you can't

154
00:08:31.639 --> 00:08:35.159
<v Speaker 1>use your microphone or your camera. What are you crazy?

155
00:08:36.840 --> 00:08:39.960
<v Speaker 2>Yeah, so it's funny how this stuff that works suddenly

156
00:08:39.960 --> 00:08:43.200
<v Speaker 2>gets cranked here. Yeah, so what's up with React these days?

157
00:08:43.200 --> 00:08:48.159
<v Speaker 3>There are lots When I was with you guys last

158
00:08:48.480 --> 00:08:53.840
<v Speaker 3>year year or it was actually was it, yeah, twenty

159
00:08:53.879 --> 00:08:57.039
<v Speaker 3>three us, the whole cervic component thing was pretty new.

160
00:08:57.120 --> 00:09:01.320
<v Speaker 3>But since then it's i mean, React nineteen is released.

161
00:09:01.440 --> 00:09:05.440
<v Speaker 3>We have lots of progression and frameworks that are using

162
00:09:05.480 --> 00:09:09.279
<v Speaker 3>server components. So yeah, it's a lot more stable and

163
00:09:09.320 --> 00:09:11.240
<v Speaker 3>developed now. Definitely nice.

164
00:09:11.360 --> 00:09:13.919
<v Speaker 2>Yeah, so it's grown up a bit. Yeah, we're on

165
00:09:14.000 --> 00:09:16.360
<v Speaker 2>the nineteenth version of React. That was quick.

166
00:09:16.559 --> 00:09:20.600
<v Speaker 3>Yep, yep was it? I think it's been four years

167
00:09:20.639 --> 00:09:25.200
<v Speaker 3>since the eighteen if I'm not mistaken with hooks. Okay, well,

168
00:09:25.279 --> 00:09:27.080
<v Speaker 3>actually it's been a very long time.

169
00:09:29.320 --> 00:09:31.320
<v Speaker 2>Well, and I like when you're getting that mature, it

170
00:09:31.399 --> 00:09:35.039
<v Speaker 2>should slow down, right, Like, I've been kind of disturbed

171
00:09:35.039 --> 00:09:37.559
<v Speaker 2>at how quickly Angular has been creaking out A version

172
00:09:37.639 --> 00:09:41.320
<v Speaker 2>or two a year just seems like a bit much

173
00:09:41.360 --> 00:09:42.039
<v Speaker 2>if you're living in that.

174
00:09:42.080 --> 00:09:47.120
<v Speaker 1>Ecosystem, especially if they're breaking changes. Yeah, I've what I

175
00:09:47.120 --> 00:09:48.960
<v Speaker 1>I did take a look at reacts for a while

176
00:09:49.080 --> 00:09:50.799
<v Speaker 1>and what I liked about it was this sort of

177
00:09:50.840 --> 00:09:56.679
<v Speaker 1>the fluent composition of it, and it seemed pretty simple

178
00:09:56.720 --> 00:10:00.120
<v Speaker 1>to create React components, you know, if you do know

179
00:10:00.279 --> 00:10:04.200
<v Speaker 1>anything about JavaScript, it felt very comfortable. Definitely, What are

180
00:10:04.639 --> 00:10:06.080
<v Speaker 1>some of your favorite features?

181
00:10:06.480 --> 00:10:10.840
<v Speaker 3>I love JSX I think just it feels like you're

182
00:10:10.919 --> 00:10:15.480
<v Speaker 3>just flowing through the development process and creating components that

183
00:10:15.559 --> 00:10:19.799
<v Speaker 3>you can use across each each other, inside each other,

184
00:10:20.799 --> 00:10:22.639
<v Speaker 3>past props. I don't know. It feels like a very

185
00:10:22.720 --> 00:10:26.440
<v Speaker 3>natural model to me from building maintainable apps.

186
00:10:26.759 --> 00:10:28.480
<v Speaker 2>So what's JSX.

187
00:10:29.720 --> 00:10:33.240
<v Speaker 3>It's the templating language that is used in React. So

188
00:10:33.399 --> 00:10:37.279
<v Speaker 3>that's what lets you like do your conditional rendering like

189
00:10:37.320 --> 00:10:38.919
<v Speaker 3>straight inside your HTML.

190
00:10:39.159 --> 00:10:39.559
<v Speaker 2>Interesting.

191
00:10:39.679 --> 00:10:44.639
<v Speaker 1>Yeah, and you can basically create markup like you would

192
00:10:44.639 --> 00:10:47.080
<v Speaker 1>create a JavaScript variable, right yeah.

193
00:10:47.080 --> 00:10:49.720
<v Speaker 3>Yeah, it's great, It's really great. And JSX, I mean

194
00:10:49.759 --> 00:10:54.039
<v Speaker 3>that's been kind of used as a template for a

195
00:10:54.120 --> 00:10:56.919
<v Speaker 3>lot of other frameworks, like for example, Astro, which is

196
00:10:56.960 --> 00:11:00.000
<v Speaker 3>a different framework, is using their own sort of JS

197
00:11:00.200 --> 00:11:02.960
<v Speaker 3>So clearly people like this, right well.

198
00:11:03.080 --> 00:11:06.080
<v Speaker 1>People have always really liked being able to blend markup

199
00:11:06.080 --> 00:11:10.399
<v Speaker 1>and code together in easy ways, you know, and sometimes

200
00:11:10.399 --> 00:11:11.960
<v Speaker 1>not so easy way. It's like I remember I don't

201
00:11:12.000 --> 00:11:14.879
<v Speaker 1>know if you remember the first ASP active server pages

202
00:11:15.799 --> 00:11:20.039
<v Speaker 1>where it was yeah, you could have mostly mark up

203
00:11:20.039 --> 00:11:21.759
<v Speaker 1>with a little code. You could have mostly code with

204
00:11:21.759 --> 00:11:24.039
<v Speaker 1>a little markup. You could mix and match, and you know,

205
00:11:24.080 --> 00:11:25.639
<v Speaker 1>it was a big messa.

206
00:11:26.559 --> 00:11:28.679
<v Speaker 2>Yeah, it always felt like right only stuff like this.

207
00:11:28.720 --> 00:11:32.639
<v Speaker 2>Stuff's easy to crank out, but boy, it's tough to debug.

208
00:11:32.279 --> 00:11:37.600
<v Speaker 1>Or consolutely horrible to debug. Yeah, So what's the debugging

209
00:11:37.679 --> 00:11:40.960
<v Speaker 1>situation with reacting? What tools do you use to do that?

210
00:11:42.399 --> 00:11:45.759
<v Speaker 3>I mean it's always console log for me, I don't know.

211
00:11:45.799 --> 00:11:48.039
<v Speaker 3>I think this is like a very It varies from

212
00:11:48.080 --> 00:11:49.240
<v Speaker 3>person to person.

213
00:11:48.919 --> 00:11:50.919
<v Speaker 2>But for me, you're so old school.

214
00:11:51.919 --> 00:11:55.120
<v Speaker 3>Also, long is great, and there's some.

215
00:11:55.879 --> 00:11:58.679
<v Speaker 1>How many times have you written console log? Got here?

216
00:12:00.399 --> 00:12:04.759
<v Speaker 3>That's usually log something that's not explaining enough, and then

217
00:12:04.799 --> 00:12:06.720
<v Speaker 3>I have to go and add it later. So that's

218
00:12:06.759 --> 00:12:07.519
<v Speaker 3>my problem.

219
00:12:07.639 --> 00:12:10.960
<v Speaker 2>Yeah, God, here's one thing should never get here is enough?

220
00:12:11.200 --> 00:12:15.639
<v Speaker 2>Never can't Why are you here? You can't be here?

221
00:12:20.840 --> 00:12:24.399
<v Speaker 3>But yeah, with typescript, I mean you don't really debug

222
00:12:24.639 --> 00:12:28.039
<v Speaker 3>that much. I guess it was different before when you're

223
00:12:28.120 --> 00:12:30.759
<v Speaker 3>using just yeah, yes, but types you don't really end

224
00:12:30.840 --> 00:12:33.639
<v Speaker 3>up in those where what is happening?

225
00:12:33.759 --> 00:12:37.120
<v Speaker 1>You know as much in Typescript and JSX play well together,

226
00:12:37.279 --> 00:12:37.600
<v Speaker 1>do they?

227
00:12:37.679 --> 00:12:41.519
<v Speaker 3>Yeah? Yeah, I don't know if I could ever code pack.

228
00:12:42.960 --> 00:12:46.120
<v Speaker 2>Oh wow, but you know, it's an interesting part of

229
00:12:46.159 --> 00:12:48.919
<v Speaker 2>the tooling is to think in terms of I will

230
00:12:48.919 --> 00:12:50.960
<v Speaker 2>only do this with these tools together.

231
00:12:51.240 --> 00:12:52.840
<v Speaker 3>Oh yeah, true.

232
00:12:52.960 --> 00:12:55.159
<v Speaker 2>So is GSX really part of reactor? It seems like

233
00:12:55.159 --> 00:12:58.919
<v Speaker 2>a more generalized, you know, way of describing.

234
00:12:58.720 --> 00:13:04.679
<v Speaker 3>Ah in writing, I'm pretty sure JSX is a reacting Yeah.

235
00:13:04.480 --> 00:13:07.320
<v Speaker 1>Is a reacting but yeah, it's defined it react dot org.

236
00:13:07.519 --> 00:13:09.320
<v Speaker 1>Yeah yeah, but.

237
00:13:09.240 --> 00:13:11.159
<v Speaker 2>It does seem like folks really like it, like it's

238
00:13:11.240 --> 00:13:11.480
<v Speaker 2>kind of.

239
00:13:11.480 --> 00:13:13.799
<v Speaker 3>Everywhere looking around for Yeah, yeah.

240
00:13:13.639 --> 00:13:17.360
<v Speaker 2>Certainly specifically mentioned in the typescript docs too. Is you know,

241
00:13:17.440 --> 00:13:22.639
<v Speaker 2>do it this way? M hmm, okay, so we uh

242
00:13:22.759 --> 00:13:25.639
<v Speaker 2>we we're happy with this? Is there is there particular

243
00:13:25.639 --> 00:13:28.559
<v Speaker 2>features and React nineteen that are important because it been

244
00:13:28.679 --> 00:13:30.600
<v Speaker 2>this many years, Like what were they holding back on?

245
00:13:31.799 --> 00:13:35.919
<v Speaker 3>Well? React nineteen is kind of split into this improvement section,

246
00:13:36.000 --> 00:13:40.480
<v Speaker 3>which is more for upgrading into and whatever it's going

247
00:13:40.559 --> 00:13:42.519
<v Speaker 3>to help you with your client side apps that you

248
00:13:42.559 --> 00:13:45.480
<v Speaker 3>already have, and then it's the new features that are

249
00:13:45.639 --> 00:13:50.519
<v Speaker 3>primarily for the service side of things or integrating the

250
00:13:50.559 --> 00:13:53.879
<v Speaker 3>server and the client in smooth ways. So that's kind

251
00:13:53.919 --> 00:13:56.360
<v Speaker 3>of the trend of nineteen. I guess you have improvements

252
00:13:56.440 --> 00:13:59.399
<v Speaker 3>and then you have new features that work really well

253
00:13:59.559 --> 00:14:01.279
<v Speaker 3>or are for the service side.

254
00:14:01.360 --> 00:14:03.440
<v Speaker 2>So it seems to me that nineteen is really the

255
00:14:03.519 --> 00:14:06.720
<v Speaker 2>version where server components grows up, Like it was an

256
00:14:06.759 --> 00:14:09.120
<v Speaker 2>add on in eighteen and now it's like, no, this

257
00:14:09.159 --> 00:14:11.120
<v Speaker 2>is a corporal to what we're doing. You want to

258
00:14:11.120 --> 00:14:13.200
<v Speaker 2>do service side rendering, you use server components.

259
00:14:13.279 --> 00:14:18.200
<v Speaker 1>Yeah, and according to the React blog, the biggest feature

260
00:14:18.279 --> 00:14:21.399
<v Speaker 1>of React nineteen is that it's now stable. Yeah, so

261
00:14:21.440 --> 00:14:22.360
<v Speaker 1>that's really good.

262
00:14:22.759 --> 00:14:25.720
<v Speaker 3>Yeah, it took a while, it had a bit of

263
00:14:25.879 --> 00:14:28.799
<v Speaker 3>it was I mean React coff was in May twenty

264
00:14:28.840 --> 00:14:31.480
<v Speaker 3>twenty four, which is like the release it was the

265
00:14:31.639 --> 00:14:34.919
<v Speaker 3>RS well it was the RC, but then it took

266
00:14:35.039 --> 00:14:37.679
<v Speaker 3>until I think December twenty twenty four before it was

267
00:14:37.720 --> 00:14:42.879
<v Speaker 3>actually released because of some suspense behavior changing drama that

268
00:14:43.120 --> 00:14:46.840
<v Speaker 3>they were able to fix in collaboration with the community.

269
00:14:47.080 --> 00:14:49.840
<v Speaker 1>So yeah, right, what is suspense?

270
00:14:49.960 --> 00:14:51.399
<v Speaker 2>In some ways, you only know when you get it

271
00:14:51.440 --> 00:14:54.960
<v Speaker 2>out into the world and different devs beat on it

272
00:14:55.000 --> 00:14:57.320
<v Speaker 2>and do things too, and you're like, huh, didn't think

273
00:14:57.320 --> 00:14:57.600
<v Speaker 2>of that.

274
00:14:58.000 --> 00:15:02.360
<v Speaker 1>So suspense is a feature of components. So you can

275
00:15:02.440 --> 00:15:03.960
<v Speaker 1>suspend a component, is that it?

276
00:15:04.279 --> 00:15:04.440
<v Speaker 2>Ah?

277
00:15:04.799 --> 00:15:08.000
<v Speaker 3>Yeah, so it's you're going to suspend. I don't know

278
00:15:08.039 --> 00:15:10.519
<v Speaker 3>the exact definition, but you typically to suspend something that's

279
00:15:10.559 --> 00:15:12.759
<v Speaker 3>not ready yet. So it could be for lazy loading

280
00:15:12.879 --> 00:15:15.639
<v Speaker 3>or with server components, it would be a servi component

281
00:15:15.639 --> 00:15:17.279
<v Speaker 3>that's not ready yet.

282
00:15:17.480 --> 00:15:21.159
<v Speaker 1>Right, so instead of littering your code with boolean flags

283
00:15:21.480 --> 00:15:24.480
<v Speaker 1>you know, loaded loaded now no really loaded?

284
00:15:26.919 --> 00:15:30.840
<v Speaker 3>Yeah, suspenses. And the reason suspense is so great is

285
00:15:30.879 --> 00:15:33.639
<v Speaker 3>because it lets you define this fallback property so that

286
00:15:33.720 --> 00:15:37.519
<v Speaker 3>you can easily define your skeleton, your eye, all of that.

287
00:15:38.000 --> 00:15:40.759
<v Speaker 3>And yeah, it's a great pattern.

288
00:15:41.080 --> 00:15:42.840
<v Speaker 1>Yeah, that's pretty cool. And so I guess it was

289
00:15:43.159 --> 00:15:44.919
<v Speaker 1>really improved in nineteen.

290
00:15:45.200 --> 00:15:48.120
<v Speaker 3>Well, it works with server components. It really completes the

291
00:15:48.159 --> 00:15:49.120
<v Speaker 3>server component model.

292
00:15:49.240 --> 00:15:52.840
<v Speaker 2>Nice. Yeah, well, what's the fallback position if the server

293
00:15:52.879 --> 00:15:54.799
<v Speaker 2>component doesn't show up? Like this sounds like a pretty

294
00:15:54.799 --> 00:15:55.519
<v Speaker 2>tricky problem.

295
00:15:55.879 --> 00:15:58.519
<v Speaker 3>So, I mean, we didn't really talk about server components

296
00:15:58.559 --> 00:16:01.000
<v Speaker 3>that much yet. But yeah, when you're waiting, I mean

297
00:16:01.039 --> 00:16:02.279
<v Speaker 3>don't know, I don't know if you want to go

298
00:16:02.399 --> 00:16:07.000
<v Speaker 3>back a little bit, sure, Yeah, Well, server components can

299
00:16:07.039 --> 00:16:10.919
<v Speaker 3>be async, so when they're not ready, when they're still

300
00:16:11.000 --> 00:16:14.600
<v Speaker 3>running on the server, you can't show them, right, and

301
00:16:14.960 --> 00:16:17.960
<v Speaker 3>if you don't deal with that, you would be it

302
00:16:18.000 --> 00:16:20.320
<v Speaker 3>will be like this NPA behavior where you can't go

303
00:16:20.480 --> 00:16:24.600
<v Speaker 3>to the next page. So what you do is you

304
00:16:24.679 --> 00:16:27.840
<v Speaker 3>actually suspend or you wrap them with suspense, and then

305
00:16:27.879 --> 00:16:33.000
<v Speaker 3>you use streaming to stream in that those pieces of

306
00:16:33.919 --> 00:16:37.919
<v Speaker 3>the tree with that component with a fallback you.

307
00:16:37.919 --> 00:16:40.480
<v Speaker 1>I so is there a concept of pre rendering?

308
00:16:40.759 --> 00:16:44.399
<v Speaker 3>Oh? I mean it depends. I mean in a way,

309
00:16:44.679 --> 00:16:49.039
<v Speaker 3>server components are pre rendered because they're run on the server, right,

310
00:16:49.240 --> 00:16:51.919
<v Speaker 3>So it's kind of like SSR also, which is also

311
00:16:52.039 --> 00:16:53.200
<v Speaker 3>surrendering in that sense.

312
00:16:53.840 --> 00:16:57.679
<v Speaker 1>So while it's rendering, you can't access it, so it's suspended.

313
00:16:57.720 --> 00:16:58.480
<v Speaker 1>While it's rendering.

314
00:16:58.639 --> 00:17:00.799
<v Speaker 3>You would want to suspend it, yeah, so that you

315
00:17:00.840 --> 00:17:03.600
<v Speaker 3>can see something and the user would not be blocked

316
00:17:03.600 --> 00:17:04.640
<v Speaker 3>from going to your page.

317
00:17:04.759 --> 00:17:08.079
<v Speaker 1>Well okay, so so you the fallback is what you're

318
00:17:08.119 --> 00:17:10.319
<v Speaker 1>talking about, like a placeholder placeholder?

319
00:17:10.359 --> 00:17:11.119
<v Speaker 3>Yeah, placeholder?

320
00:17:11.240 --> 00:17:14.079
<v Speaker 2>Yeah, right, while you why at least show something while

321
00:17:14.119 --> 00:17:15.960
<v Speaker 2>you wait to load, or at least say hey, this

322
00:17:16.039 --> 00:17:18.599
<v Speaker 2>isn't isn't or what if it isn't coming like.

323
00:17:18.720 --> 00:17:22.480
<v Speaker 1>Right, nope, there's no button yet, or the button is disabled.

324
00:17:22.559 --> 00:17:23.160
<v Speaker 1>You gotta wait.

325
00:17:23.279 --> 00:17:27.240
<v Speaker 3>And if you've been on like any any good modern app,

326
00:17:27.279 --> 00:17:29.799
<v Speaker 3>you'll see lots of skeletons right all over. But if

327
00:17:29.799 --> 00:17:32.000
<v Speaker 3>they're good, you don't think about them that much. Right,

328
00:17:32.039 --> 00:17:34.480
<v Speaker 3>it just feels like, Okay, I'm just waiting for this.

329
00:17:34.559 --> 00:17:36.519
<v Speaker 3>So that's the goal, right. You want it to feel

330
00:17:36.559 --> 00:17:37.359
<v Speaker 3>like it's.

331
00:17:37.359 --> 00:17:39.279
<v Speaker 2>It's like a div tag. It's a block that's sort

332
00:17:39.279 --> 00:17:41.599
<v Speaker 2>of pulsing because it's waiting for something to load, Like

333
00:17:41.640 --> 00:17:44.319
<v Speaker 2>it gives you a visual indicator that something will happen here,

334
00:17:44.359 --> 00:17:46.039
<v Speaker 2>it's just not happened yet.

335
00:17:46.319 --> 00:17:48.720
<v Speaker 3>Okay, so that's definitely there.

336
00:17:48.799 --> 00:17:51.119
<v Speaker 2>Yeah, we're definitely playing this game of ACYNC all the

337
00:17:51.160 --> 00:17:54.279
<v Speaker 2>things so that you're not waiting lineally for each piece

338
00:17:54.319 --> 00:17:57.240
<v Speaker 2>and bits can load as needed. Like it is clever

339
00:17:57.400 --> 00:18:00.920
<v Speaker 2>that the trick is writing manageable code for that. Like

340
00:18:01.000 --> 00:18:04.039
<v Speaker 2>that to me is we want all this a Synchristess.

341
00:18:04.079 --> 00:18:07.039
<v Speaker 2>What we don't want is the debug nightmare of why

342
00:18:07.119 --> 00:18:09.359
<v Speaker 2>is this not behaving correctly? What happens when it comes

343
00:18:09.359 --> 00:18:12.400
<v Speaker 2>in a different order, and not having to own any

344
00:18:12.440 --> 00:18:16.920
<v Speaker 2>of that problem. Okay. So, and when we talked last time,

345
00:18:17.240 --> 00:18:19.480
<v Speaker 2>server components was brand new, and you did have some

346
00:18:19.559 --> 00:18:22.359
<v Speaker 2>warnings and stuff for us, so things are generally better. Like,

347
00:18:22.559 --> 00:18:24.519
<v Speaker 2>what do you see in server components at this point?

348
00:18:25.119 --> 00:18:29.680
<v Speaker 3>Well, when I started using them, server components were ready

349
00:18:29.839 --> 00:18:32.440
<v Speaker 3>in that sense, they've been actually, they've been stable since

350
00:18:33.359 --> 00:18:35.519
<v Speaker 3>I was on the show last time. However, all of

351
00:18:35.559 --> 00:18:39.440
<v Speaker 3>the APIs that make them more manageable and make them

352
00:18:39.920 --> 00:18:43.599
<v Speaker 3>work well in apps weren't because those kind of came

353
00:18:43.640 --> 00:18:46.759
<v Speaker 3>with nineteen, right, So that's what's changed. So now you

354
00:18:46.759 --> 00:18:51.440
<v Speaker 3>can actually build apps that feel good, not just you know,

355
00:18:51.720 --> 00:18:53.640
<v Speaker 3>Yankees server components, which was a little bit of the

356
00:18:53.720 --> 00:18:55.640
<v Speaker 3>vibe you got before because he didn't really know what

357
00:18:55.720 --> 00:18:57.640
<v Speaker 3>to do with them, how to handle them, how you

358
00:18:58.200 --> 00:18:59.960
<v Speaker 3>made performance apps, all of these things.

359
00:19:00.160 --> 00:19:02.559
<v Speaker 2>So it's really the UI side needed to catch up

360
00:19:02.599 --> 00:19:04.200
<v Speaker 2>with what server components could do for you.

361
00:19:04.400 --> 00:19:06.519
<v Speaker 3>I think. So. Yeah, And for sure the reacting was

362
00:19:06.559 --> 00:19:11.440
<v Speaker 3>planning this, but it wasn't really something. The docs weren't ready,

363
00:19:11.640 --> 00:19:13.440
<v Speaker 3>all of them. You didn't really know what you were

364
00:19:13.480 --> 00:19:14.160
<v Speaker 3>supposed to do.

365
00:19:15.079 --> 00:19:17.759
<v Speaker 2>So what are you supposed to do? How do I

366
00:19:17.799 --> 00:19:20.759
<v Speaker 2>refactor an existing React app to really take advantage of this?

367
00:19:20.839 --> 00:19:22.039
<v Speaker 2>Like the said, a lot of change.

368
00:19:22.119 --> 00:19:23.960
<v Speaker 3>It depends on what you mean by this. If you

369
00:19:24.000 --> 00:19:27.480
<v Speaker 3>mean server components, that's not really an easy thing to do.

370
00:19:28.599 --> 00:19:31.359
<v Speaker 3>But you can use React nineteen. That's all good. But

371
00:19:31.480 --> 00:19:34.319
<v Speaker 3>if you want to use server components, you need some

372
00:19:34.359 --> 00:19:35.440
<v Speaker 3>sort of framework for that.

373
00:19:35.599 --> 00:19:38.880
<v Speaker 1>Okay, so that's what the async UI and the streaming

374
00:19:39.119 --> 00:19:46.759
<v Speaker 1>comes in. Does that whole process of suspending rendering does

375
00:19:46.839 --> 00:19:50.359
<v Speaker 1>that all happen by default? Or do you have to say, hey,

376
00:19:50.400 --> 00:19:53.440
<v Speaker 1>I want this component, but I want it to be suspended,

377
00:19:53.480 --> 00:19:56.400
<v Speaker 1>and then say when it's not suspended, like, does it

378
00:19:56.519 --> 00:19:56.960
<v Speaker 1>just work?

379
00:19:57.400 --> 00:19:59.839
<v Speaker 3>You have to define it and it's a little bit

380
00:20:00.039 --> 00:20:02.160
<v Speaker 3>easy to mess it up if you don't know what

381
00:20:02.279 --> 00:20:06.920
<v Speaker 3>to do yet. I would say yeah. For example, in

382
00:20:07.119 --> 00:20:10.960
<v Speaker 3>next GS, which is like the most stable cervice component framework,

383
00:20:11.880 --> 00:20:15.319
<v Speaker 3>you're not really told when something is being awaited and

384
00:20:15.359 --> 00:20:17.599
<v Speaker 3>you don't have a fallback the way it is right now.

385
00:20:18.079 --> 00:20:20.039
<v Speaker 3>So you need to kind of learn to look for

386
00:20:20.119 --> 00:20:23.559
<v Speaker 3>where you're putting your ACYNC code and then define your

387
00:20:23.559 --> 00:20:24.880
<v Speaker 3>suspense boundaries yourself.

388
00:20:25.000 --> 00:20:26.720
<v Speaker 1>Is there a good reason for that? It seems like

389
00:20:26.799 --> 00:20:29.960
<v Speaker 1>plumbing code, but maybe because it doesn't always happen in

390
00:20:30.000 --> 00:20:30.640
<v Speaker 1>the same way.

391
00:20:32.119 --> 00:20:34.680
<v Speaker 3>I think it's because, I mean, there's you could say

392
00:20:34.759 --> 00:20:37.839
<v Speaker 3>that there's use cases where you don't want to have

393
00:20:37.880 --> 00:20:41.000
<v Speaker 3>a fallback, you want to block the UI before you

394
00:20:41.039 --> 00:20:44.519
<v Speaker 3>see something. But what next GS is doing right now

395
00:20:44.599 --> 00:20:47.559
<v Speaker 3>is innovating a lot on this actually, So they have

396
00:20:47.599 --> 00:20:52.200
<v Speaker 3>this new modes that will give you airs when you're

397
00:20:52.200 --> 00:20:55.200
<v Speaker 3>not providing fallbacks. So yeah, there's a lot of innovation

398
00:20:55.319 --> 00:21:01.799
<v Speaker 3>happening on how to make this developer experience also logical better.

399
00:21:01.920 --> 00:21:05.799
<v Speaker 1>Yeah, falling into the pit of success is a good thing. Yeah,

400
00:21:05.920 --> 00:21:08.319
<v Speaker 1>so so I guess, yeah, we've got to watch out

401
00:21:08.319 --> 00:21:11.720
<v Speaker 1>for that. But I'm sure the documentation since it's been

402
00:21:11.799 --> 00:21:15.799
<v Speaker 1>redone is a lot better about explaining how that works.

403
00:21:16.079 --> 00:21:16.440
<v Speaker 3>M M.

404
00:21:16.759 --> 00:21:19.359
<v Speaker 2>Definitely at least helping you with trying to do the

405
00:21:19.400 --> 00:21:22.200
<v Speaker 2>right things. But it also sounds like you don't just

406
00:21:22.279 --> 00:21:26.920
<v Speaker 2>retrofit React components server components in You've got to think

407
00:21:26.960 --> 00:21:28.759
<v Speaker 2>through the way your site works.

408
00:21:29.039 --> 00:21:31.200
<v Speaker 3>Yeah, and you would migrate to a framework if you're

409
00:21:31.200 --> 00:21:34.319
<v Speaker 3>not on one. So if you're in a create rect app,

410
00:21:34.359 --> 00:21:37.960
<v Speaker 3>speaking of create recD app is deprecated now, by the way,

411
00:21:38.039 --> 00:21:40.559
<v Speaker 3>so you shouldn't be using it before. You should definitely

412
00:21:40.599 --> 00:21:41.880
<v Speaker 3>not be using it now.

413
00:21:43.559 --> 00:21:44.839
<v Speaker 1>Can you say what it is? Again?

414
00:21:45.720 --> 00:21:47.359
<v Speaker 3>So create rerect app was.

415
00:21:47.400 --> 00:21:49.720
<v Speaker 1>Create rerect apprep.

416
00:21:49.759 --> 00:21:53.039
<v Speaker 3>It's the probably if you've built a React up that's

417
00:21:53.079 --> 00:21:56.720
<v Speaker 3>what you've used for like the past years, unless you've

418
00:21:56.720 --> 00:21:59.240
<v Speaker 3>been following along and you've been using it in the

419
00:21:59.400 --> 00:22:06.359
<v Speaker 3>in the time, it was like the first what do you.

420
00:22:06.279 --> 00:22:09.359
<v Speaker 1>Say, like template generator something.

421
00:22:09.119 --> 00:22:13.279
<v Speaker 3>Template generator, Yeah, for React as a framework, and it

422
00:22:13.319 --> 00:22:16.079
<v Speaker 3>hasn't been maintained for a long time. And then finally,

423
00:22:16.240 --> 00:22:20.680
<v Speaker 3>now that React nineteen was released, the community was like,

424
00:22:21.039 --> 00:22:24.119
<v Speaker 3>we need you guys to deprecate this because new devs

425
00:22:24.119 --> 00:22:26.319
<v Speaker 3>are still going to fall into this trap of using

426
00:22:26.359 --> 00:22:28.799
<v Speaker 3>it and it doesn't even work anymore, you know.

427
00:22:29.279 --> 00:22:31.880
<v Speaker 2>Okay, that's because the whole point we create React app

428
00:22:31.960 --> 00:22:34.279
<v Speaker 2>was like, it's your instant Hello world. Right, it's really

429
00:22:34.640 --> 00:22:37.720
<v Speaker 2>boo boo. Here you go running now, tweak it from here.

430
00:22:37.599 --> 00:22:40.599
<v Speaker 1>Like a visual studio template would mm hmmm. Yeah, So

431
00:22:40.759 --> 00:22:44.440
<v Speaker 1>is there an alternative one of those or yes?

432
00:22:45.960 --> 00:22:48.799
<v Speaker 3>So for a long time already you can you would

433
00:22:48.920 --> 00:22:52.559
<v Speaker 3>use vit, which is like the VIT next generation VI

434
00:22:53.319 --> 00:22:57.839
<v Speaker 3>the ite Okay, it's not an intuitive pronunciation.

435
00:22:58.880 --> 00:23:04.160
<v Speaker 1>Okay, VIT dev Yeah, like VITE, only different French for quick.

436
00:23:04.240 --> 00:23:06.599
<v Speaker 3>I think it's front yep, correct, that's what it is.

437
00:23:07.480 --> 00:23:09.519
<v Speaker 2>Nice, is it or is it VAT?

438
00:23:09.720 --> 00:23:15.799
<v Speaker 1>I'm just glancing at the documentation here. Yeah, scaffolding your

439
00:23:15.839 --> 00:23:21.519
<v Speaker 1>first VITT project or VAT maybe v maybe VAT.

440
00:23:21.480 --> 00:23:26.559
<v Speaker 3>Yeah, I don't think. Maybe some people know the proper pronunciation, but.

441
00:23:26.920 --> 00:23:30.119
<v Speaker 2>None of us are French, and being Canadian doesn't count.

442
00:23:30.240 --> 00:23:33.000
<v Speaker 2>It says on the docks that it's on the docks.

443
00:23:33.000 --> 00:23:34.599
<v Speaker 2>It says it's pronounced like VAT.

444
00:23:34.640 --> 00:23:36.640
<v Speaker 3>Okay, okay, then my bad.

445
00:23:37.039 --> 00:23:41.480
<v Speaker 1>But it looks I mean it's you use NPM and uh,

446
00:23:42.160 --> 00:23:45.000
<v Speaker 1>it looks pretty simple. And then there's some community templates too.

447
00:23:45.680 --> 00:23:49.960
<v Speaker 3>Yeah, it's a really great Bungler build tool and it's

448
00:23:50.079 --> 00:23:55.759
<v Speaker 3>created by the viegis community. I think I might be

449
00:23:55.759 --> 00:23:58.440
<v Speaker 3>saying some wrong thing. Sorry, that's not are already, that's

450
00:23:58.599 --> 00:24:01.400
<v Speaker 3>not entirely correct here. But it's been like ever since

451
00:24:01.640 --> 00:24:04.519
<v Speaker 3>maybe twenty twenty already, it's been like the default way

452
00:24:04.519 --> 00:24:07.039
<v Speaker 3>you should be creating a react at, but it hasn't

453
00:24:07.079 --> 00:24:10.519
<v Speaker 3>been communicated that clearly that this is the way we

454
00:24:10.559 --> 00:24:11.079
<v Speaker 3>do it now.

455
00:24:11.440 --> 00:24:14.319
<v Speaker 2>Nice. Yeah, it seems the relations between invite and views

456
00:24:14.720 --> 00:24:18.559
<v Speaker 2>or VAT and view is also VAT and react, which

457
00:24:18.599 --> 00:24:21.640
<v Speaker 2>is interesting. You keep wanting to paint these different stacks

458
00:24:21.640 --> 00:24:24.480
<v Speaker 2>as rivals and then they go and collaborate on tooling

459
00:24:24.599 --> 00:24:27.079
<v Speaker 2>and using the same thing. It's like, listen, not that

460
00:24:27.160 --> 00:24:29.759
<v Speaker 2>big of a rival really, So wait, you can use

461
00:24:29.839 --> 00:24:30.720
<v Speaker 2>VAT with view.

462
00:24:31.200 --> 00:24:33.319
<v Speaker 3>Yeah, and actually it can be used with like a

463
00:24:33.359 --> 00:24:37.440
<v Speaker 3>lot of things. And actually many of the newer generation

464
00:24:37.519 --> 00:24:42.960
<v Speaker 3>meta frameworks, like like Reactor out of v seven has

465
00:24:43.119 --> 00:24:46.799
<v Speaker 3>migrated to VEAT, So it's it's already like very big

466
00:24:46.880 --> 00:24:47.880
<v Speaker 3>in the framework world.

467
00:24:48.000 --> 00:24:48.319
<v Speaker 1>Wow.

468
00:24:48.880 --> 00:24:53.359
<v Speaker 2>Interesting, Yeah, it works with Angular, works with Yeah. It

469
00:24:53.440 --> 00:24:56.559
<v Speaker 2>seems like a front end to a build system, right,

470
00:24:56.640 --> 00:24:59.599
<v Speaker 2>whatever you want to build. That's really interesting, very cool.

471
00:24:59.640 --> 00:25:01.640
<v Speaker 2>I'll make I'll make your life easier. Here you go.

472
00:25:02.559 --> 00:25:04.279
<v Speaker 1>So this seems like a good time for a break.

473
00:25:04.319 --> 00:25:07.039
<v Speaker 1>We'll be right back after these very important messages. Stick around.

474
00:25:09.519 --> 00:25:12.240
<v Speaker 1>You know. Dot net six has officially reached the end

475
00:25:12.279 --> 00:25:15.480
<v Speaker 1>of support and now is the time to upgrade. Dot

476
00:25:15.559 --> 00:25:19.240
<v Speaker 1>Net eight is well supported on aws. Learn more at

477
00:25:19.240 --> 00:25:26.119
<v Speaker 1>aws dot Amazon dot com, slash dot net. And we're back.

478
00:25:26.240 --> 00:25:29.160
<v Speaker 1>It's dot net rocks. I'm Carl Franklin. That's Richard Campbell. Hey,

479
00:25:29.240 --> 00:25:32.920
<v Speaker 1>we're talking to our friend or Sharf about React and

480
00:25:33.039 --> 00:25:39.559
<v Speaker 1>React server components and next JS. So what's the difference

481
00:25:39.559 --> 00:25:46.240
<v Speaker 1>between NEXTJS and other frameworks. Major difference in terms of

482
00:25:46.279 --> 00:25:47.079
<v Speaker 1>how you use them.

483
00:25:47.160 --> 00:25:51.160
<v Speaker 3>So next gs is, I mean server components were developed

484
00:25:51.200 --> 00:25:54.799
<v Speaker 3>together with NEXTGS and nextgs is. Implementation of them is

485
00:25:54.880 --> 00:25:59.920
<v Speaker 3>sort of reacts idea of how they're supposed to be used, okay,

486
00:26:00.319 --> 00:26:03.519
<v Speaker 3>architecture Okay, but that's not the only way you can

487
00:26:03.599 --> 00:26:06.680
<v Speaker 3>use them. But in server components next you as server

488
00:26:06.759 --> 00:26:11.599
<v Speaker 3>components are everything is default server. So it's like server first, right,

489
00:26:11.960 --> 00:26:14.799
<v Speaker 3>which is why it's also like this entirely new mental

490
00:26:14.839 --> 00:26:16.680
<v Speaker 3>model for React developers.

491
00:26:18.039 --> 00:26:21.440
<v Speaker 1>Server first, meaning before you do any UI, you create

492
00:26:21.440 --> 00:26:24.720
<v Speaker 1>your server and you build out your UI from that.

493
00:26:25.200 --> 00:26:27.960
<v Speaker 3>Yeah, you're starting on the server, and you opt in

494
00:26:28.039 --> 00:26:31.720
<v Speaker 3>to the client whenever you need client features, okay.

495
00:26:31.480 --> 00:26:33.079
<v Speaker 2>Because who wants clients?

496
00:26:33.200 --> 00:26:36.799
<v Speaker 1>Honestly, Well, I guess what I'm getting at is I

497
00:26:36.839 --> 00:26:39.160
<v Speaker 1>can see like the server first being analogous to like

498
00:26:39.200 --> 00:26:43.079
<v Speaker 1>Blazer server, where you have your markup and your code

499
00:26:43.079 --> 00:26:45.480
<v Speaker 1>and it all just sort of munges together and goes

500
00:26:45.519 --> 00:26:50.400
<v Speaker 1>down to the client. Whereas you know, the traditional model

501
00:26:50.640 --> 00:26:53.799
<v Speaker 1>is you build an HTML file and you have some JavaScript,

502
00:26:53.880 --> 00:26:55.839
<v Speaker 1>You call the JavaScript to go to the server to

503
00:26:55.880 --> 00:26:57.640
<v Speaker 1>get some data, and then you bring it back into

504
00:26:57.680 --> 00:27:02.680
<v Speaker 1>the client. So with the next server first approach, you're

505
00:27:02.720 --> 00:27:05.519
<v Speaker 1>basically doing everything from the server. You're not building an

506
00:27:05.640 --> 00:27:09.039
<v Speaker 1>HTML file on the client and then going and making

507
00:27:09.119 --> 00:27:13.000
<v Speaker 1>calls to a server, right, yeah, the service the server

508
00:27:13.200 --> 00:27:14.279
<v Speaker 1>supplies the markup.

509
00:27:14.440 --> 00:27:16.279
<v Speaker 3>Everything starts from the server, and you will also be

510
00:27:16.279 --> 00:27:18.920
<v Speaker 3>fetching your data on the server and then you rather

511
00:27:19.160 --> 00:27:22.720
<v Speaker 3>pass it down if it needs to be available inside

512
00:27:22.839 --> 00:27:26.160
<v Speaker 3>something we call client components, right, which is and that's.

513
00:27:26.039 --> 00:27:30.400
<v Speaker 1>Also safe, Yeah, safer, because why are you exposing APIs

514
00:27:30.440 --> 00:27:34.359
<v Speaker 1>that require authorisation to a client browser.

515
00:27:34.480 --> 00:27:34.960
<v Speaker 3>Don't do that.

516
00:27:35.440 --> 00:27:37.160
<v Speaker 1>Yeah, don't do that. That's not good.

517
00:27:37.920 --> 00:27:39.480
<v Speaker 2>It's not that. Stop that.

518
00:27:39.680 --> 00:27:42.960
<v Speaker 1>Stop that. But that's how it was done for the

519
00:27:43.039 --> 00:27:45.279
<v Speaker 1>longest time, right, Oh yeah, for.

520
00:27:45.240 --> 00:27:47.400
<v Speaker 3>The longest time, you would always have some sort of

521
00:27:47.400 --> 00:27:50.880
<v Speaker 3>API in between your your client site React up because

522
00:27:50.960 --> 00:27:52.319
<v Speaker 3>you had to write.

523
00:27:52.119 --> 00:27:56.680
<v Speaker 2>Yeah right, yeah, what was the typical React back end

524
00:27:56.759 --> 00:27:59.240
<v Speaker 2>piece you would use before we got the server components?

525
00:28:00.160 --> 00:28:02.920
<v Speaker 3>Well, for well, I work at a consultancy and we're

526
00:28:02.920 --> 00:28:05.640
<v Speaker 3>still like some a lot of projects are still using

527
00:28:05.759 --> 00:28:08.200
<v Speaker 3>this old stack. You could say it's still relevant, but

528
00:28:08.240 --> 00:28:11.680
<v Speaker 3>that would be like React SPA with EAT and then

529
00:28:11.759 --> 00:28:13.960
<v Speaker 3>maybe done it WEBPI is something like that. That's like

530
00:28:13.960 --> 00:28:14.720
<v Speaker 3>the typical I.

531
00:28:15.079 --> 00:28:16.359
<v Speaker 2>Was thinking of remix or.

532
00:28:16.400 --> 00:28:18.400
<v Speaker 3>Well remix is also a meta framework, so they can

533
00:28:18.440 --> 00:28:20.240
<v Speaker 3>also do their own data fetching if they want to.

534
00:28:20.640 --> 00:28:24.839
<v Speaker 2>Right Like, it's just like next is the latest version.

535
00:28:24.880 --> 00:28:29.440
<v Speaker 2>But there were other solutions to the SPA approach of React.

536
00:28:29.640 --> 00:28:33.359
<v Speaker 2>This seems less spash, like you're basically asking the server

537
00:28:33.440 --> 00:28:34.559
<v Speaker 2>to send you mark out.

538
00:28:34.680 --> 00:28:37.400
<v Speaker 3>Yeah, and that's why it's a big mental shift because

539
00:28:37.400 --> 00:28:40.720
<v Speaker 3>it is way less spish, it's more it's more Yeah,

540
00:28:41.400 --> 00:28:43.799
<v Speaker 3>it's it's serve first. It's not really a SPA until

541
00:28:43.839 --> 00:28:44.559
<v Speaker 3>you make it a SPA.

542
00:28:44.680 --> 00:28:48.039
<v Speaker 1>Right to me, it's analogous to Blazer server, you know,

543
00:28:48.279 --> 00:28:53.160
<v Speaker 1>where the server just generates everything, the markup, the data, everything.

544
00:28:53.240 --> 00:28:55.680
<v Speaker 1>So there's no you know, code that needs to run

545
00:28:55.720 --> 00:28:59.559
<v Speaker 1>in the browser per se, unless there's something specific that

546
00:28:59.599 --> 00:29:00.319
<v Speaker 1>you have to run.

547
00:29:00.359 --> 00:29:02.759
<v Speaker 2>Because one of the things we liked about spas was

548
00:29:02.920 --> 00:29:06.640
<v Speaker 2>then you could have pieces of the page being reloaded

549
00:29:06.720 --> 00:29:08.359
<v Speaker 2>instead of a DIP and so forth. And I presume

550
00:29:08.400 --> 00:29:10.799
<v Speaker 2>you can still do that. It's just the original spot

551
00:29:11.039 --> 00:29:13.599
<v Speaker 2>says I'm going to download a bunch of UI, go

552
00:29:13.880 --> 00:29:16.640
<v Speaker 2>to the client that then has the code to call

553
00:29:16.720 --> 00:29:20.440
<v Speaker 2>to different APIs to populate bits on the page. Now

554
00:29:20.440 --> 00:29:22.640
<v Speaker 2>you're saying just fetch it from the server. Server will

555
00:29:22.680 --> 00:29:25.039
<v Speaker 2>render what give it what we need to render with,

556
00:29:25.440 --> 00:29:29.359
<v Speaker 2>and that might include asynchronous pieces to be loaded as well.

557
00:29:29.480 --> 00:29:33.279
<v Speaker 1>Yep, yep, yeah, that seems really cool.

558
00:29:33.319 --> 00:29:35.079
<v Speaker 2>I mean I come at this from a scaling perspective,

559
00:29:35.079 --> 00:29:37.240
<v Speaker 2>so I'm trying to figure out what's more resource intensive

560
00:29:37.279 --> 00:29:40.920
<v Speaker 2>to the server, you know, recognizing you know, what's the

561
00:29:40.960 --> 00:29:43.599
<v Speaker 2>server capable of. Although it's a cloud world now, like

562
00:29:43.799 --> 00:29:46.240
<v Speaker 2>that almost means that, you know, scaling means a different

563
00:29:46.279 --> 00:29:46.759
<v Speaker 2>thing today.

564
00:29:46.799 --> 00:29:48.720
<v Speaker 1>It's a button to push a slider.

565
00:29:48.759 --> 00:29:49.440
<v Speaker 2>It's a slider.

566
00:29:50.640 --> 00:29:52.599
<v Speaker 3>So when you're doing it on the server at least,

567
00:29:52.599 --> 00:29:54.839
<v Speaker 3>I mean, you don't have to, as you're saying, download

568
00:29:54.880 --> 00:29:57.200
<v Speaker 3>the code to fetch the API and get go all

569
00:29:57.240 --> 00:29:59.839
<v Speaker 3>the way back to you know, communicate with API, give

570
00:29:59.880 --> 00:30:04.440
<v Speaker 3>it back. You're skipping this like this long travel, I

571
00:30:04.440 --> 00:30:06.160
<v Speaker 3>guess because you're already just started.

572
00:30:06.640 --> 00:30:10.279
<v Speaker 2>Yeah, the first page load on a SPA socks. Yeah, right,

573
00:30:10.400 --> 00:30:12.880
<v Speaker 2>Like that's always the battle the later ones, because you've

574
00:30:12.880 --> 00:30:15.960
<v Speaker 2>got stuff cash get better. But we got to a

575
00:30:16.039 --> 00:30:18.079
<v Speaker 2>point where some of our sites where we're literally doing

576
00:30:18.119 --> 00:30:21.400
<v Speaker 2>a flat rendered page that then backloaded the SPA in

577
00:30:22.240 --> 00:30:23.839
<v Speaker 2>just so that your first page.

578
00:30:23.519 --> 00:30:26.000
<v Speaker 3>Was quick oh yeah, but.

579
00:30:26.000 --> 00:30:27.880
<v Speaker 2>It was literally an orphan page, like it was completely

580
00:30:27.920 --> 00:30:29.960
<v Speaker 2>different than everything else on the site because it was

581
00:30:29.960 --> 00:30:33.200
<v Speaker 2>all about get that landing page loaded fast so people

582
00:30:33.240 --> 00:30:34.119
<v Speaker 2>have a good experience.

583
00:30:34.319 --> 00:30:35.680
<v Speaker 1>It's the pre rendering thing.

584
00:30:37.440 --> 00:30:40.160
<v Speaker 2>It's a very convoluted way of thinking. But yeah, you

585
00:30:40.400 --> 00:30:43.079
<v Speaker 2>could see the I guide me. My brain is immediately

586
00:30:43.079 --> 00:30:45.720
<v Speaker 2>going to what's that going to mean for server resources?

587
00:30:46.160 --> 00:30:48.240
<v Speaker 2>It doesn't matter. I can just light up more functions.

588
00:30:49.319 --> 00:30:55.000
<v Speaker 1>So do you know how much memory per client is

589
00:30:55.160 --> 00:30:58.079
<v Speaker 1>used in reacts server components about?

590
00:30:58.279 --> 00:31:01.119
<v Speaker 3>I don't know that, but I do know that when

591
00:31:01.119 --> 00:31:04.000
<v Speaker 3>you're using the server, Actually it doesn't have to be

592
00:31:04.160 --> 00:31:07.240
<v Speaker 3>like the server that you're doing your dynamic stuff. It

593
00:31:07.240 --> 00:31:11.279
<v Speaker 3>can also be in the build So whatever resources you

594
00:31:12.079 --> 00:31:15.440
<v Speaker 3>that you're talking about here would be for your dynamic data. Right,

595
00:31:15.759 --> 00:31:17.720
<v Speaker 3>So if you have some sort of static stuff that

596
00:31:17.759 --> 00:31:20.119
<v Speaker 3>you don't need, so the things that make it a

597
00:31:20.200 --> 00:31:24.759
<v Speaker 3>dynamic will be like request headers or params or cookies,

598
00:31:24.799 --> 00:31:27.400
<v Speaker 3>all of that stuff. If a component doesn't use it,

599
00:31:27.400 --> 00:31:29.559
<v Speaker 3>it doesn't need to be rendered on the serve. It

600
00:31:29.559 --> 00:31:30.680
<v Speaker 3>can be in the build data.

601
00:31:30.759 --> 00:31:33.640
<v Speaker 1>That's you know, based on who the client is, right,

602
00:31:34.519 --> 00:31:34.799
<v Speaker 1>you know.

603
00:31:35.119 --> 00:31:36.559
<v Speaker 3>Yeah, correct, exactly?

604
00:31:36.960 --> 00:31:41.599
<v Speaker 1>Yeah, what would call state stateful stuff user state Yeah

605
00:31:42.640 --> 00:31:43.160
<v Speaker 1>sounds good.

606
00:31:43.240 --> 00:31:44.839
<v Speaker 2>Yeah, what does this deploy like?

607
00:31:44.839 --> 00:31:44.920
<v Speaker 1>Like?

608
00:31:45.000 --> 00:31:47.160
<v Speaker 2>How what am I setting up on the back end here?

609
00:31:47.279 --> 00:31:50.680
<v Speaker 2>Is this a set of functions in Azure or is

610
00:31:50.680 --> 00:31:54.680
<v Speaker 2>it a ask to come out in container sets?

611
00:31:54.720 --> 00:31:54.799
<v Speaker 3>Like?

612
00:31:54.839 --> 00:31:57.079
<v Speaker 2>What's this the back end? The deploy look like.

613
00:31:58.000 --> 00:32:00.359
<v Speaker 3>If you have I mean previously I try it with

614
00:32:00.480 --> 00:32:05.319
<v Speaker 3>app service, but right now our deployment is just no

615
00:32:05.440 --> 00:32:08.319
<v Speaker 3>j is dockra image and then containerize the application. That

616
00:32:08.440 --> 00:32:13.920
<v Speaker 3>works great. I think any anything, pretty much anything. And

617
00:32:13.960 --> 00:32:16.640
<v Speaker 3>it's actually a misconception that a lot of people think

618
00:32:16.640 --> 00:32:19.119
<v Speaker 3>that you have to use for sell and you don't

619
00:32:19.279 --> 00:32:22.519
<v Speaker 3>and the Libra robins you have to use Versell, which

620
00:32:22.599 --> 00:32:26.440
<v Speaker 3>is the versall the creator of NEXTJS right right, Oh, I.

621
00:32:26.400 --> 00:32:28.799
<v Speaker 1>See, so you can run it and Amazon, you can

622
00:32:28.880 --> 00:32:30.440
<v Speaker 1>run it in containers and run anywhere.

623
00:32:30.480 --> 00:32:32.440
<v Speaker 2>Yep, yep, yeah, yeah, there's no reason an the end,

624
00:32:32.480 --> 00:32:34.000
<v Speaker 2>you just need something that can run node right in

625
00:32:34.039 --> 00:32:35.599
<v Speaker 2>terms out just about everything and run node.

626
00:32:35.880 --> 00:32:36.519
<v Speaker 3>Yeah.

627
00:32:36.559 --> 00:32:39.119
<v Speaker 2>So yeah, you could easily easily rite in a container.

628
00:32:39.200 --> 00:32:42.000
<v Speaker 1>Is that the only misconception people might have about React

629
00:32:42.079 --> 00:32:44.480
<v Speaker 1>nineteen and React service components.

630
00:32:44.599 --> 00:32:48.039
<v Speaker 3>It's definitely a big one. Usually when I'm talking to

631
00:32:48.119 --> 00:32:51.720
<v Speaker 3>people sometimes they would say, like, what, you're deploying next

632
00:32:51.839 --> 00:32:54.440
<v Speaker 3>JS on Azure, How are you doing that? I don't.

633
00:32:54.480 --> 00:33:01.000
<v Speaker 3>I didn't think that's possible. So that's a big one.

634
00:32:58.400 --> 00:33:06.359
<v Speaker 3>And maybe another big one is about the compiler. So

635
00:33:06.400 --> 00:33:08.839
<v Speaker 3>it's been like a big thing that React compiler, which

636
00:33:08.839 --> 00:33:11.119
<v Speaker 3>is a whole other thing, is in React nineteen.

637
00:33:12.400 --> 00:33:16.039
<v Speaker 1>It's not beta, so there was no compiler before nineteen.

638
00:33:16.279 --> 00:33:19.359
<v Speaker 3>No compiler is new because it's a server thing. It's

639
00:33:19.359 --> 00:33:24.119
<v Speaker 3>an Zephyr project. It's not actually it's a client thing.

640
00:33:24.519 --> 00:33:24.880
<v Speaker 1>Really.

641
00:33:25.200 --> 00:33:28.039
<v Speaker 3>Yeah, it's like this whole other thing that has not

642
00:33:28.119 --> 00:33:31.519
<v Speaker 3>really that much to do with server components.

643
00:33:31.519 --> 00:33:35.559
<v Speaker 1>Interesting, So this is separate from the JavaScript engine in

644
00:33:35.599 --> 00:33:38.240
<v Speaker 1>the browser. What do we need a compiler on the

645
00:33:38.240 --> 00:33:38.720
<v Speaker 1>client for?

646
00:33:39.519 --> 00:33:43.519
<v Speaker 3>So in React, right, you're doing a lot of rerenders

647
00:33:44.039 --> 00:33:48.119
<v Speaker 3>and React doesn't use signals like some of the other

648
00:33:48.160 --> 00:33:52.680
<v Speaker 3>frameworks like Angler's got signals now right and solid JS.

649
00:33:52.720 --> 00:33:56.680
<v Speaker 3>So you're doing necessary rerenders and the compiler is kind

650
00:33:56.720 --> 00:33:59.559
<v Speaker 3>of here to fix that for you, so that your

651
00:33:59.680 --> 00:34:01.920
<v Speaker 3>code is memoirs automatically.

652
00:34:02.039 --> 00:34:06.400
<v Speaker 1>Okay, So is it analogous to just taking messages that

653
00:34:06.440 --> 00:34:09.360
<v Speaker 1>are like, you know, upload this div with this content

654
00:34:10.800 --> 00:34:13.079
<v Speaker 1>or you know, change this list of stuff to this

655
00:34:14.280 --> 00:34:16.840
<v Speaker 1>just in specific components on the page.

656
00:34:16.920 --> 00:34:20.519
<v Speaker 3>It will I'm actually I'm an expert on the compiler.

657
00:34:20.559 --> 00:34:23.079
<v Speaker 3>I just know it's a common misconception, but it will

658
00:34:23.119 --> 00:34:27.519
<v Speaker 3>do your use memmo use callback stuff. Kind of it's

659
00:34:27.559 --> 00:34:30.400
<v Speaker 3>a different way of doing it, but it will substitute

660
00:34:30.400 --> 00:34:34.480
<v Speaker 3>whatever extra code you would add to add momorization for you,

661
00:34:34.519 --> 00:34:36.519
<v Speaker 3>so you don't have to add it. Okay, So skipping

662
00:34:36.960 --> 00:34:43.719
<v Speaker 3>skipping unnecessary rerenders and caching or memorizing heavy computations, is.

663
00:34:43.679 --> 00:34:47.320
<v Speaker 1>There still work to do Unreact server components? Is there

664
00:34:47.400 --> 00:34:49.320
<v Speaker 1>still stuff on your wish list?

665
00:34:50.440 --> 00:34:54.000
<v Speaker 3>Well, there is a lot of things happening actually still

666
00:34:54.039 --> 00:34:57.960
<v Speaker 3>because again the next year is implementation is one one approach.

667
00:34:58.599 --> 00:35:01.400
<v Speaker 3>You have other frameworks that have kind of been emerging

668
00:35:02.119 --> 00:35:06.079
<v Speaker 3>recently with their own dots on how to deal with

669
00:35:06.119 --> 00:35:10.760
<v Speaker 3>server components. So maybe you know, well, you know remix, right,

670
00:35:10.920 --> 00:35:17.559
<v Speaker 3>you said remix Remix has now been or I guess

671
00:35:17.599 --> 00:35:20.679
<v Speaker 3>renamed or been migrated to Reactor out of v seven

672
00:35:20.800 --> 00:35:22.679
<v Speaker 3>or did you have you heard of that yet?

673
00:35:23.079 --> 00:35:23.480
<v Speaker 2>React?

674
00:35:23.480 --> 00:35:24.119
<v Speaker 1>What seven?

675
00:35:24.280 --> 00:35:25.599
<v Speaker 3>React router v seven?

676
00:35:26.000 --> 00:35:28.800
<v Speaker 1>Router v seven So React router is like.

677
00:35:28.760 --> 00:35:32.440
<v Speaker 3>The biggest React library, right, and Remix is built on

678
00:35:32.480 --> 00:35:37.079
<v Speaker 3>top of it, same creator. Now it's been merged. This

679
00:35:37.119 --> 00:35:40.119
<v Speaker 3>is a pretty big deal actually for those millions of

680
00:35:40.800 --> 00:35:41.880
<v Speaker 3>React apps out there.

681
00:35:42.679 --> 00:35:48.599
<v Speaker 1>So Remix became React router v seven. Is that what happened? Yeah,

682
00:35:48.679 --> 00:35:52.360
<v Speaker 1>kind of Yeah, Yeah, everything you love about remix back

683
00:35:52.400 --> 00:35:57.239
<v Speaker 1>into React router proper. So they're encouraging all Remix v

684
00:35:57.320 --> 00:35:59.800
<v Speaker 1>two users to upgrade the reactor outer v seven.

685
00:36:00.079 --> 00:36:00.280
<v Speaker 3>Yeah.

686
00:36:00.280 --> 00:36:02.639
<v Speaker 1>It says for the majority of the React ecosystem that

687
00:36:02.679 --> 00:36:05.119
<v Speaker 1>has been around for the last ten years, we believe

688
00:36:05.199 --> 00:36:07.199
<v Speaker 1>React Router B seven will be the smoothest way to

689
00:36:07.199 --> 00:36:10.880
<v Speaker 1>bridge the gap between React eighteen and nineteen. Oh that's interesting.

690
00:36:11.840 --> 00:36:15.320
<v Speaker 1>So if you have React eighteen with remix and you

691
00:36:15.360 --> 00:36:18.280
<v Speaker 1>want to move to nineteen using React router v seven,

692
00:36:18.360 --> 00:36:18.679
<v Speaker 1>that's the.

693
00:36:18.599 --> 00:36:19.039
<v Speaker 2>Way to go.

694
00:36:19.400 --> 00:36:21.800
<v Speaker 3>Yep. And also going from reactor out of B six

695
00:36:22.119 --> 00:36:26.400
<v Speaker 3>and kind of incrementally adopting Ahmeda frameworks features, which is

696
00:36:26.480 --> 00:36:30.400
<v Speaker 3>amazing because that's not always so easy as with if

697
00:36:30.440 --> 00:36:31.760
<v Speaker 3>you worse to do it with the next ye just

698
00:36:31.800 --> 00:36:34.519
<v Speaker 3>app router, it's not like that. So it's a pretty

699
00:36:34.639 --> 00:36:35.280
<v Speaker 3>pretty big deal.

700
00:36:35.559 --> 00:36:37.000
<v Speaker 1>Yeah, yeah, seems like it.

701
00:36:37.480 --> 00:36:42.559
<v Speaker 2>Yeah, and definitely feels like the ecosystem trying to consolidate

702
00:36:42.599 --> 00:36:47.000
<v Speaker 2>into a few more standard approaches. I grabbed a link

703
00:36:47.039 --> 00:36:49.719
<v Speaker 2>off of Microsoft learned about running next JS since Azure

704
00:36:49.719 --> 00:36:53.000
<v Speaker 2>static web apps, and it reminds me of things like

705
00:36:53.320 --> 00:36:55.880
<v Speaker 2>making word Press run on Windows, Like just because you

706
00:36:56.039 --> 00:36:58.599
<v Speaker 2>can doesn't mean you should.

707
00:36:59.320 --> 00:37:02.199
<v Speaker 3>I actually encounter someone who had been doing that and

708
00:37:02.400 --> 00:37:07.000
<v Speaker 3>don't do that. I think they've done this. I don't

709
00:37:07.039 --> 00:37:10.679
<v Speaker 3>know this, but I think that they have this docks

710
00:37:10.719 --> 00:37:13.079
<v Speaker 3>on it. But it's not supposed to really be done

711
00:37:13.159 --> 00:37:15.920
<v Speaker 3>this way. I just remember the person who tried it

712
00:37:15.960 --> 00:37:17.360
<v Speaker 3>and it was just not something.

713
00:37:18.280 --> 00:37:20.400
<v Speaker 2>I mean, what is the like you said, it is

714
00:37:20.400 --> 00:37:24.360
<v Speaker 2>the typical react to play with versll because that's the

715
00:37:24.679 --> 00:37:26.440
<v Speaker 2>end to end sort of we know it works, all

716
00:37:26.440 --> 00:37:28.840
<v Speaker 2>the docks exist, Like that's easier. What do you or

717
00:37:29.039 --> 00:37:31.719
<v Speaker 2>what are the all sort of known good alternatives that

718
00:37:31.760 --> 00:37:33.280
<v Speaker 2>you're going to get decent support for?

719
00:37:34.280 --> 00:37:39.719
<v Speaker 3>Alternative for versall or yeah, there's a lot. I know

720
00:37:39.760 --> 00:37:42.840
<v Speaker 3>a lot of people deploy on netfly cloud flair right

721
00:37:43.119 --> 00:37:48.760
<v Speaker 3>right in ws Azure, But at least for your own projects,

722
00:37:48.880 --> 00:37:50.599
<v Speaker 3>versael is just so smooth, right.

723
00:37:50.599 --> 00:37:53.719
<v Speaker 1>Right, so the experience is smoother just because they own

724
00:37:53.719 --> 00:37:55.960
<v Speaker 1>the whole stack. Is that the Is that the idea?

725
00:37:57.199 --> 00:37:59.519
<v Speaker 3>Yeah, but they also support other frameworks, by the way,

726
00:37:59.599 --> 00:38:01.960
<v Speaker 3>not just but you're.

727
00:38:01.840 --> 00:38:04.440
<v Speaker 2>Dealing with a with a customer and they are primarily

728
00:38:04.519 --> 00:38:06.880
<v Speaker 2>an Azure tenant. You want to run this an Azure

729
00:38:06.960 --> 00:38:09.559
<v Speaker 2>It sounds like the way to go is is containers,

730
00:38:09.639 --> 00:38:10.079
<v Speaker 2>is Docker.

731
00:38:11.039 --> 00:38:11.760
<v Speaker 3>That's what we see.

732
00:38:11.800 --> 00:38:15.480
<v Speaker 2>That's well, that's the well documented strategy deploying React. I

733
00:38:15.519 --> 00:38:17.559
<v Speaker 2>mean node runs and Azure functions. I just don't that

734
00:38:17.639 --> 00:38:19.920
<v Speaker 2>I'd want to try and implement it this way because

735
00:38:19.920 --> 00:38:22.239
<v Speaker 2>it is kind of odd, right, You're going to be

736
00:38:22.280 --> 00:38:25.280
<v Speaker 2>by yourself if you do this. Yeah, though, just trying

737
00:38:25.320 --> 00:38:27.440
<v Speaker 2>to get you know, there's always these perfect well you

738
00:38:27.480 --> 00:38:30.559
<v Speaker 2>could do that, but you'd be all alone if you

739
00:38:30.639 --> 00:38:33.599
<v Speaker 2>did so.

740
00:38:33.880 --> 00:38:36.039
<v Speaker 1>Again, when I asked you, what's on your wish list?

741
00:38:36.159 --> 00:38:38.119
<v Speaker 1>You said what they were doing. That's really great. So

742
00:38:38.199 --> 00:38:39.920
<v Speaker 1>what's on your actual wish list?

743
00:38:40.119 --> 00:38:42.559
<v Speaker 3>Well? Actually I got kind of derailed here, but what

744
00:38:42.599 --> 00:38:45.360
<v Speaker 3>I was going to say was that retch out of

745
00:38:45.440 --> 00:38:48.800
<v Speaker 3>the seven is also getting server components in a whole

746
00:38:48.800 --> 00:38:49.400
<v Speaker 3>different way.

747
00:38:49.599 --> 00:38:51.599
<v Speaker 2>Oh, it's so good thing.

748
00:38:51.920 --> 00:38:55.159
<v Speaker 3>It depends if you don't like the server first approach. Right, Yeah,

749
00:38:55.199 --> 00:38:58.039
<v Speaker 3>there's and there's another one. Ten stack Start is thinking

750
00:38:58.079 --> 00:39:01.519
<v Speaker 3>of server components. So base things are happening right in

751
00:39:01.639 --> 00:39:04.440
<v Speaker 3>different approaches, not just the server first approach.

752
00:39:04.559 --> 00:39:06.920
<v Speaker 1>Okay, so I guess this was on your wish list

753
00:39:06.960 --> 00:39:07.800
<v Speaker 1>and now it's happening.

754
00:39:09.000 --> 00:39:12.039
<v Speaker 3>I wouldn't. I mean, I already worked with the app

755
00:39:12.119 --> 00:39:14.239
<v Speaker 3>router for such a long time. I like it. Yeah,

756
00:39:14.280 --> 00:39:17.840
<v Speaker 3>but I'm I would be happy that there's other ways

757
00:39:17.840 --> 00:39:18.639
<v Speaker 3>to do it as well.

758
00:39:18.599 --> 00:39:19.519
<v Speaker 1>Other ways to do it.

759
00:39:19.840 --> 00:39:22.239
<v Speaker 2>So what we call this the router first approach versus

760
00:39:22.280 --> 00:39:23.800
<v Speaker 2>the server verst approach.

761
00:39:24.199 --> 00:39:29.079
<v Speaker 3>It's more like a client first I guess. But you

762
00:39:29.119 --> 00:39:32.920
<v Speaker 3>can return server components from loaders, right, which is kind

763
00:39:32.960 --> 00:39:33.920
<v Speaker 3>of yeah.

764
00:39:33.960 --> 00:39:36.360
<v Speaker 1>So your turn server components and then run them in

765
00:39:36.360 --> 00:39:36.800
<v Speaker 1>the client.

766
00:39:37.840 --> 00:39:43.719
<v Speaker 3>Your return it's well you return. It's like returning data,

767
00:39:43.840 --> 00:39:44.760
<v Speaker 3>but you're actually.

768
00:39:44.480 --> 00:39:46.880
<v Speaker 1>Returning so it's returning the markup.

769
00:39:47.039 --> 00:39:48.599
<v Speaker 3>Yeah right, in a way, so.

770
00:39:48.519 --> 00:39:51.440
<v Speaker 2>The router invokes the server component to write it to.

771
00:39:51.400 --> 00:39:52.000
<v Speaker 3>You in a way.

772
00:39:52.079 --> 00:39:54.440
<v Speaker 1>Yeah, it doesn't have the code behind it, but just

773
00:39:54.519 --> 00:39:56.679
<v Speaker 1>the markup that's the result of running the code.

774
00:39:56.840 --> 00:39:59.320
<v Speaker 2>Got it. You are sort of client first instance. You're

775
00:39:59.320 --> 00:40:02.679
<v Speaker 2>loading a router then invokes different server components that send

776
00:40:02.719 --> 00:40:04.679
<v Speaker 2>down the markup that rents the page.

777
00:40:04.920 --> 00:40:07.199
<v Speaker 1>So that's different so it's a middleman, and I guess

778
00:40:07.239 --> 00:40:11.199
<v Speaker 1>that's why the you know, moving from eighteen to nineteen

779
00:40:11.320 --> 00:40:14.039
<v Speaker 1>is going to be easier with that because you're you've

780
00:40:14.039 --> 00:40:17.960
<v Speaker 1>already got client centric code calling into the server, so

781
00:40:18.719 --> 00:40:20.800
<v Speaker 1>you know you're just changing in the middleman.

782
00:40:21.079 --> 00:40:22.840
<v Speaker 3>So yes, if you were to answer the question how

783
00:40:22.840 --> 00:40:26.519
<v Speaker 3>do you opt into server components, probably the path would

784
00:40:26.559 --> 00:40:29.639
<v Speaker 3>be go from your client side app to reactor out

785
00:40:29.639 --> 00:40:32.960
<v Speaker 3>of you seven, enable the meta framework features, wait for

786
00:40:33.000 --> 00:40:37.159
<v Speaker 3>server components, return server components. That's kind of the incremental

787
00:40:37.159 --> 00:40:39.480
<v Speaker 3>way there. If you're not going to prod.

788
00:40:40.199 --> 00:40:43.800
<v Speaker 2>It strikes me the next JS server components approaches a

789
00:40:43.800 --> 00:40:45.400
<v Speaker 2>greenfield approach. It's a rethink.

790
00:40:45.480 --> 00:40:47.960
<v Speaker 1>Yeah, greenfield. Yeah, that's what I was thinking.

791
00:40:50.480 --> 00:40:52.760
<v Speaker 2>Yeah, where this is much more brown field. Get some

792
00:40:52.800 --> 00:40:56.199
<v Speaker 2>of those capabilities your existing stuff keeps working here, you

793
00:40:56.239 --> 00:40:58.320
<v Speaker 2>know you're bridging. Yeah, that's fair.

794
00:40:58.400 --> 00:40:59.320
<v Speaker 3>That's why it's the big deal.

795
00:41:00.440 --> 00:41:00.800
<v Speaker 1>Very good.

796
00:41:00.880 --> 00:41:02.760
<v Speaker 2>Definitely make your life a heck of a lot easier.

797
00:41:03.039 --> 00:41:06.920
<v Speaker 1>Yeah, it has productivity gone up with V nineteen.

798
00:41:07.119 --> 00:41:10.039
<v Speaker 3>For you, uh, for me, yeah, because I know how

799
00:41:10.079 --> 00:41:13.440
<v Speaker 3>to use this stuff. I think if you don't, if

800
00:41:13.480 --> 00:41:15.920
<v Speaker 3>you didn't catch up to nineteen, it's hard to see

801
00:41:16.079 --> 00:41:19.559
<v Speaker 3>why you would need the new hooks because some of

802
00:41:19.559 --> 00:41:21.679
<v Speaker 3>them are useful for clients, but a lot of them

803
00:41:21.679 --> 00:41:25.159
<v Speaker 3>are for like server they're documented in the next year

804
00:41:25.199 --> 00:41:28.639
<v Speaker 3>stocks for example, in a certain way, there's not enough

805
00:41:28.679 --> 00:41:33.159
<v Speaker 3>examples for the client something like that. So I'm definitely productive.

806
00:41:33.159 --> 00:41:36.880
<v Speaker 3>I see the uses for all the new stuff. And

807
00:41:37.000 --> 00:41:40.239
<v Speaker 3>also some of the new features like this use hook

808
00:41:40.599 --> 00:41:44.440
<v Speaker 3>is for server components and cash api is for server companes.

809
00:41:44.440 --> 00:41:47.400
<v Speaker 3>So there's things that I'm using a lot to improve

810
00:41:47.440 --> 00:41:49.639
<v Speaker 3>my performance of that building.

811
00:41:51.199 --> 00:41:56.199
<v Speaker 1>Well, that's great. Yeah, is there anything we haven't covered

812
00:41:56.440 --> 00:41:57.480
<v Speaker 1>that you want to talk about?

813
00:41:58.719 --> 00:42:02.719
<v Speaker 3>We have a look here, maybe like like an RC

814
00:42:03.000 --> 00:42:04.880
<v Speaker 3>one year later. So this was kind of Yeah, I'm

815
00:42:04.920 --> 00:42:06.880
<v Speaker 3>still using it. I'm still it still works for me,

816
00:42:06.960 --> 00:42:12.119
<v Speaker 3>you know. But actually the State of React twenty twenty

817
00:42:12.159 --> 00:42:16.840
<v Speaker 3>four survey says that sixty percent still didn't try it.

818
00:42:17.199 --> 00:42:20.280
<v Speaker 3>Of the of the response still didn't try server components.

819
00:42:20.480 --> 00:42:22.719
<v Speaker 3>Interesting and yeah, that's very interesting.

820
00:42:24.400 --> 00:42:27.559
<v Speaker 1>Yeah, client side programmers like their client side.

821
00:42:27.400 --> 00:42:29.840
<v Speaker 3>And it's hard to get into right because you cannot

822
00:42:29.920 --> 00:42:33.559
<v Speaker 3>just opt in right. And also of the some of

823
00:42:33.599 --> 00:42:38.079
<v Speaker 3>the people that did try it or twenty percent found

824
00:42:38.079 --> 00:42:40.960
<v Speaker 3>it to be a pain point of the new APIs,

825
00:42:41.039 --> 00:42:44.400
<v Speaker 3>So it's still not you know, doesn't still have a

826
00:42:44.519 --> 00:42:48.800
<v Speaker 3>very positive what can you say, vibe around it?

827
00:42:50.320 --> 00:42:52.280
<v Speaker 2>Do you think it's the ACNC side of things? Like,

828
00:42:52.320 --> 00:42:54.039
<v Speaker 2>it's just hard to think that way if you're not

829
00:42:54.159 --> 00:42:54.639
<v Speaker 2>used to it.

830
00:42:54.719 --> 00:42:57.320
<v Speaker 3>I think it's a big mental shift. It's a learning curve,

831
00:42:57.480 --> 00:42:59.079
<v Speaker 3>and it's you have to kind of do it on

832
00:42:59.119 --> 00:43:00.920
<v Speaker 3>your free time if you don't use it at work.

833
00:43:01.039 --> 00:43:03.679
<v Speaker 3>So it's a very big it's a big jump.

834
00:43:03.880 --> 00:43:06.039
<v Speaker 1>Yeah. I was going to say there's probably less incentive

835
00:43:06.119 --> 00:43:09.159
<v Speaker 1>for somebody who's maintaining or working on a project at

836
00:43:09.199 --> 00:43:13.280
<v Speaker 1>a company YEP that isn't planning to move to service

837
00:43:13.320 --> 00:43:15.320
<v Speaker 1>side components because it's a big rewrite.

838
00:43:15.400 --> 00:43:18.519
<v Speaker 2>Well, no customer asks for this, right, Like, this is

839
00:43:18.519 --> 00:43:20.639
<v Speaker 2>not a customer's like, oh I wish we had server components.

840
00:43:20.639 --> 00:43:21.960
<v Speaker 2>They don't care, right exactly.

841
00:43:22.119 --> 00:43:25.960
<v Speaker 1>But a consultant, you know, who's got multiple clients and

842
00:43:26.119 --> 00:43:28.079
<v Speaker 1>is waiting for the next client to come along and say,

843
00:43:28.079 --> 00:43:29.679
<v Speaker 1>we need a website. What are we going to do?

844
00:43:30.400 --> 00:43:34.159
<v Speaker 1>That's when you want to whip out the nineteen server components.

845
00:43:34.360 --> 00:43:37.760
<v Speaker 3>Yeah, because if you have like this new project, a

846
00:43:37.800 --> 00:43:40.239
<v Speaker 3>lot of apps are just okay, let's pick next to

847
00:43:40.320 --> 00:43:42.840
<v Speaker 3>us and someone. Companies even have that as their default

848
00:43:43.119 --> 00:43:48.400
<v Speaker 3>app stack, right, So it's inevitable that at some point

849
00:43:48.480 --> 00:43:51.079
<v Speaker 3>you're probably going to encounter it if if your work

850
00:43:51.199 --> 00:43:54.559
<v Speaker 3>is using it, right, And there's lots of big apps

851
00:43:54.599 --> 00:43:57.239
<v Speaker 3>like PayPal, New York Public Library, And we have this

852
00:43:57.360 --> 00:44:04.239
<v Speaker 3>huge e commerce in our electronics sales, will you say

853
00:44:04.280 --> 00:44:07.559
<v Speaker 3>company in the nordis called Elchap, which is like all

854
00:44:07.639 --> 00:44:10.800
<v Speaker 3>on at prouder end of our sell and it's a

855
00:44:10.840 --> 00:44:11.760
<v Speaker 3>big success.

856
00:44:11.400 --> 00:44:14.519
<v Speaker 2>Story, right, but it's also not something you moved anywhere

857
00:44:14.559 --> 00:44:19.239
<v Speaker 2>easily much less why Like, what is the business case here?

858
00:44:19.679 --> 00:44:22.440
<v Speaker 2>Is it? I want our faster website. I want it

859
00:44:22.480 --> 00:44:24.960
<v Speaker 2>more maintainable, Like what's the thing that customer is going

860
00:44:25.000 --> 00:44:26.920
<v Speaker 2>to want? They're like, I'm really grad we made that move.

861
00:44:27.239 --> 00:44:30.840
<v Speaker 3>So e commerce is I mean speed performance? That's always

862
00:44:30.880 --> 00:44:34.400
<v Speaker 3>been our sales focus or next just focus. That's their

863
00:44:34.800 --> 00:44:36.519
<v Speaker 3>that's what they're always optimizing for.

864
00:44:36.760 --> 00:44:39.599
<v Speaker 2>Yeah, so all that psychosis we've always had about time

865
00:44:39.639 --> 00:44:42.000
<v Speaker 2>to first bite, like how quickly can you get the

866
00:44:42.000 --> 00:44:44.440
<v Speaker 2>page in front of people so that they don't switch away?

867
00:44:45.360 --> 00:44:48.519
<v Speaker 2>Everything stays snappy and async is better for that because

868
00:44:48.599 --> 00:44:50.559
<v Speaker 2>you don't get hung up on the realities of the

869
00:44:50.599 --> 00:44:53.159
<v Speaker 2>Internet where some packet gets lost and the whole page

870
00:44:53.199 --> 00:44:57.119
<v Speaker 2>is stalled. Oh, I appreciate that. That's the customer requests,

871
00:44:57.159 --> 00:44:58.639
<v Speaker 2>can we make it faster? And it's like, yeah, we

872
00:44:58.639 --> 00:44:59.880
<v Speaker 2>can reengineer it this way.

873
00:45:00.039 --> 00:45:03.760
<v Speaker 3>Yeah, making it fast, definitely, that's that's easy.

874
00:45:03.800 --> 00:45:03.960
<v Speaker 4>Pick.

875
00:45:05.119 --> 00:45:06.800
<v Speaker 2>Yeah, it's just a question of whether it's true. Like

876
00:45:06.840 --> 00:45:09.599
<v Speaker 2>the great thing about doing a refactor like this is

877
00:45:09.800 --> 00:45:11.360
<v Speaker 2>you'll leave us alone for three months. It is going

878
00:45:11.400 --> 00:45:11.960
<v Speaker 2>to take a while.

879
00:45:13.440 --> 00:45:16.800
<v Speaker 3>Yeah. I think it took like, I don't know many

880
00:45:16.880 --> 00:45:19.000
<v Speaker 3>months for the l shapre rite and that was from

881
00:45:19.039 --> 00:45:24.599
<v Speaker 3>Angular actually, so it was like the biggest hall. So

882
00:45:24.639 --> 00:45:26.840
<v Speaker 3>they rewrote Angular angularly next.

883
00:45:26.960 --> 00:45:29.039
<v Speaker 2>Woo, there's a case study for you.

884
00:45:29.239 --> 00:45:31.760
<v Speaker 3>Yeah Angular next Yeah.

885
00:45:31.760 --> 00:45:34.760
<v Speaker 2>Yeah, oy boy, Yeah, that is a big jump.

886
00:45:34.800 --> 00:45:36.880
<v Speaker 1>Do the View developers throw stones at you?

887
00:45:37.679 --> 00:45:40.000
<v Speaker 3>They have their own thing. I think View developers seem

888
00:45:40.039 --> 00:45:42.199
<v Speaker 3>pretty happy with you, that's my impression.

889
00:45:42.440 --> 00:45:44.320
<v Speaker 2>Yeah. I don't know.

890
00:45:44.400 --> 00:45:46.760
<v Speaker 1>We we like to stir up hat in discontent where

891
00:45:46.760 --> 00:45:47.519
<v Speaker 1>it doesn't exist.

892
00:45:47.639 --> 00:45:51.679
<v Speaker 2>So yeah, hey, you know what everybody has pain.

893
00:45:52.400 --> 00:45:55.440
<v Speaker 3>I can tell you. The View developers were very unhappy

894
00:45:55.519 --> 00:45:59.719
<v Speaker 3>when the React team deprecated create Recked app and did

895
00:45:59.800 --> 00:46:04.880
<v Speaker 3>not mentioned it as the primary way to replace it,

896
00:46:05.000 --> 00:46:07.760
<v Speaker 3>but the community changed that. So you had some new

897
00:46:07.880 --> 00:46:09.920
<v Speaker 3>developers who were a part of that.

898
00:46:10.039 --> 00:46:11.960
<v Speaker 2>Did they have a different idea of where to go

899
00:46:12.079 --> 00:46:12.960
<v Speaker 2>besides VAT?

900
00:46:13.480 --> 00:46:16.199
<v Speaker 3>I mean, for a long time, the framework, the docs

901
00:46:16.199 --> 00:46:19.039
<v Speaker 3>have said next or frameworks. They've been encouraging frameworks and

902
00:46:19.079 --> 00:46:23.239
<v Speaker 3>they still do. Yeah, that's just the thing. They encourage frameworks.

903
00:46:23.280 --> 00:46:26.440
<v Speaker 3>They think that you should use a framework unless you,

904
00:46:26.480 --> 00:46:29.039
<v Speaker 3>for some reason decide not to. But that shouldn't be

905
00:46:29.119 --> 00:46:30.920
<v Speaker 3>the default. The default should be a framework. That's what

906
00:46:30.960 --> 00:46:31.920
<v Speaker 3>the dogs lead you to.

907
00:46:32.239 --> 00:46:35.199
<v Speaker 2>Right So, and actually most people, like you know, actually

908
00:46:35.280 --> 00:46:37.679
<v Speaker 2>VATS an easier way to go. It gets me up

909
00:46:37.719 --> 00:46:38.159
<v Speaker 2>and running.

910
00:46:38.239 --> 00:46:40.599
<v Speaker 3>In a lot of cases, it could be and that's

911
00:46:40.639 --> 00:46:42.519
<v Speaker 3>that's the reason for the community to push back.

912
00:46:42.599 --> 00:46:43.199
<v Speaker 2>That's interesting.

913
00:46:43.239 --> 00:46:46.639
<v Speaker 1>So react as a Facebook slash meta thing, is there

914
00:46:46.800 --> 00:46:51.800
<v Speaker 1>any indication that they have moved everything over to nineteen

915
00:46:51.920 --> 00:46:55.239
<v Speaker 1>or they're going to I mean, I can't imagine going

916
00:46:56.159 --> 00:47:00.079
<v Speaker 1>from a previous model to that, as you know, as

917
00:47:00.119 --> 00:47:01.360
<v Speaker 1>big as Facebook.

918
00:47:01.039 --> 00:47:05.840
<v Speaker 3>Is, I don't know about that exactly if they're using it,

919
00:47:06.119 --> 00:47:08.960
<v Speaker 3>but I do know that they're using the compiler in

920
00:47:09.000 --> 00:47:12.119
<v Speaker 3>their internal apps like Instagram, So that's I guess a bigger,

921
00:47:12.440 --> 00:47:15.360
<v Speaker 3>better metric for what they're actually building that they're using

922
00:47:15.400 --> 00:47:16.360
<v Speaker 3>for themselves.

923
00:47:16.960 --> 00:47:18.920
<v Speaker 2>Yeah, well that's always been the claim to fame. Right,

924
00:47:18.920 --> 00:47:21.119
<v Speaker 2>this is how we build Facebook, so you can use

925
00:47:21.159 --> 00:47:22.320
<v Speaker 2>it too, Right, if.

926
00:47:22.199 --> 00:47:26.559
<v Speaker 1>We can if Facebook doesn't crash, europp won't Right.

927
00:47:29.239 --> 00:47:31.280
<v Speaker 2>Was that great story where they locked themselves out of

928
00:47:31.320 --> 00:47:35.000
<v Speaker 2>their own data center with some security there's assisted men's

929
00:47:35.000 --> 00:47:37.320
<v Speaker 2>story about literally they had to take an angle grinder

930
00:47:37.360 --> 00:47:39.119
<v Speaker 2>to a door to get into a data center because

931
00:47:39.159 --> 00:47:42.480
<v Speaker 2>somebody had whoa had shut down a key account that

932
00:47:42.519 --> 00:47:46.280
<v Speaker 2>didn't allow that took out the door controls. Oh my

933
00:47:46.639 --> 00:47:48.559
<v Speaker 2>fun stories the hardware.

934
00:47:48.920 --> 00:47:51.679
<v Speaker 1>Well, I guess the door controls weren't that good if

935
00:47:51.719 --> 00:47:54.199
<v Speaker 1>you could take a saws all to it and cut

936
00:47:54.239 --> 00:47:54.559
<v Speaker 1>it out.

937
00:47:54.880 --> 00:47:56.519
<v Speaker 2>Apparently it took a whole day, so I think it

938
00:47:56.559 --> 00:47:59.320
<v Speaker 2>was pretty good. Like everything will eventually fail if you

939
00:47:59.360 --> 00:48:01.280
<v Speaker 2>try hard enough. But then I guess you're right. Yeah,

940
00:48:01.360 --> 00:48:04.280
<v Speaker 2>fort there it's like we can't get into the data center,

941
00:48:04.320 --> 00:48:08.519
<v Speaker 2>both digitally or physically. Okay, yeah, this looks like a

942
00:48:08.519 --> 00:48:11.119
<v Speaker 2>big important version. Like you said, four years coming, that's

943
00:48:11.159 --> 00:48:13.000
<v Speaker 2>a long time in our world.

944
00:48:13.159 --> 00:48:16.880
<v Speaker 3>Yep, there's stuff for everyone. If you didn't like check

945
00:48:16.920 --> 00:48:19.920
<v Speaker 3>it out yet you should, especially the improvement section even

946
00:48:19.920 --> 00:48:21.639
<v Speaker 3>if you're a client set up. There's like a lot

947
00:48:21.639 --> 00:48:25.800
<v Speaker 3>of things there that you might need, like pre loading

948
00:48:27.280 --> 00:48:32.079
<v Speaker 3>CSS or other resources. And there's like acing script support

949
00:48:32.280 --> 00:48:38.239
<v Speaker 3>with priority hydration air improvements for those of us who

950
00:48:38.239 --> 00:48:42.719
<v Speaker 3>have experienced that, so you can actually see what is happening. Nice,

951
00:48:42.960 --> 00:48:45.079
<v Speaker 3>there's a lot air handling out. There's a lot of

952
00:48:45.119 --> 00:48:48.119
<v Speaker 3>like improvements that actually matter for you even though you're

953
00:48:48.119 --> 00:48:49.599
<v Speaker 3>not using service components.

954
00:48:49.719 --> 00:48:50.119
<v Speaker 2>That's good.

955
00:48:50.159 --> 00:48:52.559
<v Speaker 1>Well, I imagine our listeners will have more questions than

956
00:48:52.559 --> 00:48:56.559
<v Speaker 1>we do since we're not daily React users. But but

957
00:48:56.960 --> 00:48:59.800
<v Speaker 1>so this would be great, you know, for to leave

958
00:48:59.800 --> 00:49:03.199
<v Speaker 1>a comment on the website and you know, if you

959
00:49:03.239 --> 00:49:04.599
<v Speaker 1>have any questions.

960
00:49:05.960 --> 00:49:08.719
<v Speaker 2>For Aurora. Yeah, and where can folks find you.

961
00:49:08.679 --> 00:49:13.559
<v Speaker 3>A XUS food? I'm still there. I works for me

962
00:49:13.679 --> 00:49:15.960
<v Speaker 3>to communicate with people there, and I have a blog

963
00:49:16.000 --> 00:49:19.119
<v Speaker 3>if you want to like read stuff. But for communicating

964
00:49:19.119 --> 00:49:20.519
<v Speaker 3>probably extort Twitter.

965
00:49:20.840 --> 00:49:22.440
<v Speaker 2>Awesome, very good.

966
00:49:22.480 --> 00:49:24.599
<v Speaker 1>Well, thanks, it's been great talking to you again.

967
00:49:24.760 --> 00:49:26.320
<v Speaker 3>Thank you, Thank you for having me back.

968
00:49:26.440 --> 00:49:28.519
<v Speaker 1>All right, and we'll talk to you next time on

969
00:49:28.639 --> 00:49:29.519
<v Speaker 1>dot net Bros.

970
00:49:49.960 --> 00:49:52.639
<v Speaker 4>Dot net Rocks is brought to you by Franklin's Net

971
00:49:52.760 --> 00:49:56.679
<v Speaker 4>and produced by Pop Studios, a full service audio, video

972
00:49:56.800 --> 00:50:00.880
<v Speaker 4>and post production facility located physically in New in Connecticut,

973
00:50:01.119 --> 00:50:05.920
<v Speaker 4>and of course in the cloud online at pwop dot com.

974
00:50:06.119 --> 00:50:08.280
<v Speaker 4>Visit our website at d O T N E t

975
00:50:08.480 --> 00:50:12.519
<v Speaker 4>R O c k S dot com for RSS feeds, downloads,

976
00:50:12.679 --> 00:50:16.360
<v Speaker 4>mobile apps, comments, and access to the full archives going

977
00:50:16.400 --> 00:50:19.760
<v Speaker 4>back to show number one, recorded in September two thousand

978
00:50:19.800 --> 00:50:22.440
<v Speaker 4>and two. And make sure you check out our sponsors.

979
00:50:22.599 --> 00:50:25.639
<v Speaker 4>They keep us in business. Now, go write some code.

980
00:50:25.960 --> 00:50:26.719
<v Speaker 1>See you next time.

981
00:50:27.639 --> 00:50:29.480
<v Speaker 2>You got J middle Vans

982
00:50:31.519 --> 00:50:31.559
<v Speaker 3>And
