1
00:00:05,240 --> 00:00:08,720
Speaker 1: Hey, Welcome to Adventures in Anglar, the podcast where we

2
00:00:08,800 --> 00:00:12,039
keep you updated on all things Angular related. This show

3
00:00:12,119 --> 00:00:15,160
is produced by two companies, Top and Devs and Onvoid.

4
00:00:15,480 --> 00:00:17,480
Top anddves is where we great Top and Devs to

5
00:00:17,519 --> 00:00:20,039
get top and pay and recognition. We're working on interesting

6
00:00:20,079 --> 00:00:24,839
problems and making meaningful community contributions. And Onvoid provides remote

7
00:00:24,879 --> 00:00:29,079
design and software development services on the most client friendly

8
00:00:29,160 --> 00:00:32,640
business model. The clients only pay after the tests are

9
00:00:32,679 --> 00:00:37,560
delivered and approved. In today's episode, we will talk about

10
00:00:37,759 --> 00:00:41,719
what is new in Angular eighteen and we will also

11
00:00:42,039 --> 00:00:44,799
just briefly mentioned because we don't really have a lot

12
00:00:44,840 --> 00:00:47,679
of debt about it yet. We're also going to mention

13
00:00:47,759 --> 00:00:52,000
a bit about Angular eighteen point one. My name is

14
00:00:52,079 --> 00:00:54,960
Lucas Paganini. Your hosts in the podcast. Joining me in

15
00:00:54,960 --> 00:00:59,000
today's episode are the also hosts Arman Vardenian.

16
00:01:00,119 --> 00:01:02,880
Speaker 2: Hello, everyone, Finally back to the podcast.

17
00:01:04,959 --> 00:01:12,120
Speaker 1: Subrad Mischa, Hey, Hey, and our very special guest, which

18
00:01:13,760 --> 00:01:18,120
according to her is not that much just a Google developer,

19
00:01:18,159 --> 00:01:24,079
expert in Angler and a software freelancer, Rakia Ben Sassy.

20
00:01:25,239 --> 00:01:29,920
Speaker 3: Hi everyone, and thanks for having me. Maybe you I

21
00:01:29,959 --> 00:01:35,239
said just because my early background was actually I was

22
00:01:36,439 --> 00:01:39,879
at the beginning of my career Java developer and after

23
00:01:41,159 --> 00:01:44,400
over a decade I became a JdE, which was not

24
00:01:45,359 --> 00:01:50,519
the main maybe expectees or main focus in my career.

25
00:01:51,400 --> 00:01:55,200
Speaker 4: But thanks anyway, never is, never is.

26
00:01:55,239 --> 00:01:57,480
Speaker 1: Thank you for your time, thank you for being here,

27
00:01:58,079 --> 00:02:04,159
and well let's get to it. So there are many

28
00:02:04,519 --> 00:02:10,800
things that were released on Anglar version eighteen, but I

29
00:02:10,800 --> 00:02:13,840
would like to know, Rakia, from your point of view,

30
00:02:14,400 --> 00:02:17,400
what are the most relevant ones and then we can

31
00:02:17,439 --> 00:02:18,080
start from there.

32
00:02:19,960 --> 00:02:23,639
Speaker 4: So for me, maybe not. In the it was.

33
00:02:25,400 --> 00:02:28,159
Speaker 3: Sance a while the featured the failable and they was

34
00:02:28,280 --> 00:02:31,199
very happy to see that it has reached a more

35
00:02:32,240 --> 00:02:36,960
stable face in the VAGIN eighteen and it was also

36
00:02:37,240 --> 00:02:42,000
amazing how companies like built dot com have reached an

37
00:02:42,039 --> 00:02:42,800
improvement in.

38
00:02:44,400 --> 00:02:45,960
Speaker 4: The bundle size.

39
00:02:47,000 --> 00:02:53,840
Speaker 3: With fifty percent thanks to the to using this feature

40
00:02:53,919 --> 00:02:58,000
the failible. Besides this, I'm also excited about the improvement

41
00:02:58,240 --> 00:03:03,120
toward the use of the development of zone less angle

42
00:03:03,319 --> 00:03:11,960
application and which will be hopefully with the use of signal,

43
00:03:12,319 --> 00:03:16,120
will let us avoid a lot of struggle with the

44
00:03:16,199 --> 00:03:22,360
change detection, especially when the applications goes more complicated.

45
00:03:23,719 --> 00:03:30,000
Speaker 1: Yeah, yes, okay, So a couple of very interesting subjects

46
00:03:30,759 --> 00:03:34,120
if if that's okay with you guys, I would rather

47
00:03:34,280 --> 00:03:37,159
start with zoneless because I think there's a lot of

48
00:03:37,319 --> 00:03:38,000
hype in.

49
00:03:37,919 --> 00:03:39,840
Speaker 2: There and it's the start of the show.

50
00:03:40,719 --> 00:03:43,800
Speaker 1: Yes, yes, a lot of vipe and a lot of

51
00:03:43,800 --> 00:03:49,479
people haven't really tried the new experimental zoneless support yet,

52
00:03:50,360 --> 00:03:54,039
And well, I guess we can first start with what

53
00:03:54,240 --> 00:04:00,080
are the uh, maybe the drawbacks that aren't clear to

54
00:04:00,080 --> 00:04:02,879
to those that want that tries a less Maybe there

55
00:04:02,879 --> 00:04:05,840
are things that they don't know that would be problems

56
00:04:05,879 --> 00:04:07,280
if they actually did try it.

57
00:04:09,960 --> 00:04:16,040
Speaker 3: I think that the change detection topic in general looks

58
00:04:16,120 --> 00:04:22,720
like a monster maybe. And also when we need to

59
00:04:22,839 --> 00:04:26,439
go away from zone, we need to get our hands

60
00:04:26,519 --> 00:04:33,319
dirties with the angular conflict for Angular Jason, and yeah,

61
00:04:33,319 --> 00:04:35,800
we need to take care about a lot of things.

62
00:04:37,600 --> 00:04:38,319
Speaker 4: This is just.

63
00:04:38,399 --> 00:04:45,680
Speaker 3: My my my thought on that topic. And maybe a

64
00:04:45,720 --> 00:04:50,759
lot of developer don't know how how component which are

65
00:04:50,920 --> 00:04:55,319
using on push change detection, how they will be impacted

66
00:04:55,319 --> 00:05:00,360
by this and the other components, and if if they

67
00:05:00,439 --> 00:05:04,680
have to migrate everything to signal or not and so on.

68
00:05:05,879 --> 00:05:10,160
So I think everyone needs to feel more comfortable and

69
00:05:10,839 --> 00:05:19,480
have more confidence before they can start on this issue,

70
00:05:20,959 --> 00:05:25,519
what's your idea about all your thought maybe aman or subad.

71
00:05:27,240 --> 00:05:31,800
Speaker 5: I think personally that the community is gonna be sweet

72
00:05:32,160 --> 00:05:36,120
for a while because if you have been developing with

73
00:05:36,199 --> 00:05:40,000
Angular for a while and you haven't paid attention to

74
00:05:40,040 --> 00:05:42,439
what change detection is, you.

75
00:05:42,399 --> 00:05:44,439
Speaker 2: Don't really need to optimize it.

76
00:05:44,519 --> 00:05:47,079
Speaker 5: If you don't care, right, you can just build your

77
00:05:47,120 --> 00:05:50,879
software and it will work fine. I guess in the

78
00:05:50,959 --> 00:05:53,839
end of the day, if you don't know about zone

79
00:05:53,920 --> 00:05:56,360
less and one day it's a less become the standard,

80
00:05:56,800 --> 00:05:59,959
then you're gonna hate it because why do I need

81
00:06:00,079 --> 00:06:02,839
the application works fine? Why do I need to switch

82
00:06:02,839 --> 00:06:05,839
to the orble signals? Blah blah blah. But if you

83
00:06:05,959 --> 00:06:11,000
have been paying attention and you I don't know encounter

84
00:06:11,160 --> 00:06:14,920
like the the hated expression has check changed after it

85
00:06:14,920 --> 00:06:17,600
has been checked error read, and you've been trying to

86
00:06:17,639 --> 00:06:19,240
optimize everything and so on and so.

87
00:06:19,199 --> 00:06:23,560
Speaker 2: On, you probably already took some steps in the.

88
00:06:23,519 --> 00:06:27,920
Speaker 5: Direction of zoneless, for example using signals right, because switching

89
00:06:27,959 --> 00:06:29,160
to signals isn't.

90
00:06:28,920 --> 00:06:31,279
Speaker 2: That hard at the end of the day.

91
00:06:32,160 --> 00:06:34,800
Speaker 5: And now if you know that for you, it's gonna

92
00:06:34,800 --> 00:06:38,120
be an exciting feature. So people are again gonna be

93
00:06:38,240 --> 00:06:41,800
splitting in like two different camps. But what I like

94
00:06:41,879 --> 00:06:44,759
about the way that the team does it is that

95
00:06:44,519 --> 00:06:48,040
that kind of rolling really slowly with it. Okay, now

96
00:06:48,079 --> 00:06:53,199
we have some experimental support for zoneless. Maybe in the

97
00:06:53,240 --> 00:06:56,879
next release we will get some upgrades.

98
00:06:58,319 --> 00:06:58,800
Speaker 2: I don't know.

99
00:06:59,160 --> 00:07:04,480
Speaker 5: It also depends on the library, you know, maintainers, because

100
00:07:04,680 --> 00:07:07,800
you know someoneys can break libraries that don't kind of

101
00:07:08,040 --> 00:07:11,600
work with it fine, and there's lots lots.

102
00:07:11,439 --> 00:07:12,600
Speaker 2: That's consider.

103
00:07:13,720 --> 00:07:17,160
Speaker 3: Well. One expression came to my mind now, So it

104
00:07:17,240 --> 00:07:21,879
was so it was about the on push change detection.

105
00:07:22,199 --> 00:07:26,680
So whenever any developer needs to or think or want

106
00:07:26,720 --> 00:07:30,040
to use the on push change detection, they should be

107
00:07:30,079 --> 00:07:33,600
aware of the code design, and they should be aware

108
00:07:33,680 --> 00:07:38,079
of the immutability issue and so on. So I think

109
00:07:38,120 --> 00:07:42,360
that also for me, as any angle like developer, I

110
00:07:42,439 --> 00:07:47,839
need to be aware what should what should I take

111
00:07:47,920 --> 00:07:51,560
care of on my applications code design when I have.

112
00:07:51,639 --> 00:07:52,480
Speaker 4: To use zones?

113
00:07:52,680 --> 00:07:56,720
Speaker 3: What should they change in my code design? Should they act?

114
00:07:57,839 --> 00:08:01,360
So that's it's about the code design and how much

115
00:08:01,360 --> 00:08:03,319
should I reflect in my application.

116
00:08:04,319 --> 00:08:08,160
Speaker 6: Yeah, I was just thinking the same thing like this

117
00:08:08,360 --> 00:08:11,160
joone less will for focus like people will focus more

118
00:08:11,199 --> 00:08:16,959
who already have on pushing detection strategy on or maybe

119
00:08:17,720 --> 00:08:21,160
maybe if they care a lot about how it how

120
00:08:21,160 --> 00:08:24,680
to change detection works and they will like be eagerly

121
00:08:24,759 --> 00:08:27,439
waiting for this change to go full on. Maybe they

122
00:08:27,439 --> 00:08:31,600
are doing some experimentation in their deb environment with the

123
00:08:31,600 --> 00:08:35,759
experimental feature. Yeah, at the end, I think how ANGELA

124
00:08:35,840 --> 00:08:40,240
might goes is as it backward compatible. It's just like

125
00:08:40,320 --> 00:08:43,600
when everything goes onless. It just works, so you don't

126
00:08:43,639 --> 00:08:48,320
need to worry much about how the jone lists how

127
00:08:48,519 --> 00:08:52,919
to handle it. But yeah, if you're doing on post,

128
00:08:52,960 --> 00:08:55,000
then you are in a good direction.

129
00:08:57,480 --> 00:09:00,840
Speaker 2: Well if you are like uh, thinking about it.

130
00:09:01,320 --> 00:09:05,240
Speaker 5: Actually, just migrating to some one lists is quite simple

131
00:09:05,320 --> 00:09:07,840
in the sense that you just you know, you say,

132
00:09:07,840 --> 00:09:11,320
it provides a lie education, removes zones, and it's.

133
00:09:11,320 --> 00:09:11,879
Speaker 2: Kind of fine.

134
00:09:14,559 --> 00:09:19,919
Speaker 5: If you have already using the on push strategy, you

135
00:09:20,200 --> 00:09:22,159
also probably will be fine. But the thing is, we

136
00:09:22,240 --> 00:09:25,519
don't really know the symptoms of this disease yet because

137
00:09:25,799 --> 00:09:30,159
when people have tried it experimentally, obviously no one uses

138
00:09:30,320 --> 00:09:35,519
this on a production application to really know where they can.

139
00:09:35,480 --> 00:09:36,759
Speaker 2: Have bugs or whatever.

140
00:09:38,279 --> 00:09:40,759
Speaker 5: Like I have a personal website I build with with anger,

141
00:09:40,879 --> 00:09:43,759
I put like experimental zone lists on it, but it's

142
00:09:43,879 --> 00:09:46,039
really irrelevant apps.

143
00:09:45,919 --> 00:09:50,120
Speaker 2: Like it's not doing anything complex, right, And.

144
00:09:51,919 --> 00:09:55,159
Speaker 5: That's why it's kind of hard to create content about

145
00:09:55,279 --> 00:09:57,600
z on list right now, because what are you gonna

146
00:09:57,600 --> 00:10:00,440
say about it. Okay, use this function and remove zone

147
00:10:00,679 --> 00:10:06,360
just from not one whatever, and then you're like, Okay,

148
00:10:06,799 --> 00:10:10,200
it's experimental, don't try it, and then it's over. What

149
00:10:10,440 --> 00:10:14,440
I would really love to discuss is what's kind of

150
00:10:14,519 --> 00:10:17,200
going on internally, what we know about it, because the

151
00:10:17,399 --> 00:10:20,799
people on the team were like very vocal about it.

152
00:10:20,960 --> 00:10:24,559
They even shared like the roadmap, right, I think I

153
00:10:24,639 --> 00:10:27,759
can pull up road map from on somewhere. I'm not

154
00:10:27,840 --> 00:10:29,000
sure though that I can find it.

155
00:10:29,879 --> 00:10:34,679
Speaker 1: Yeah, I mean, I think what you guys said about

156
00:10:34,960 --> 00:10:39,120
libraries is probably the main thing that I don't think

157
00:10:39,200 --> 00:10:42,240
people are realizing. It's not just a matter of oh,

158
00:10:42,279 --> 00:10:44,639
I'm starting a new project, so I'm gonna go zoneless

159
00:10:45,200 --> 00:10:48,600
because then I can just start zoneless from the from

160
00:10:48,679 --> 00:10:52,399
the geck go. But are the libraries the head that

161
00:10:52,519 --> 00:10:56,600
you want to use in your project also supporting zoneless,

162
00:10:56,799 --> 00:11:01,879
because otherwise it's just not going to work. So it's

163
00:11:02,679 --> 00:11:05,960
it's tricky, you know, because at the at one hand,

164
00:11:06,279 --> 00:11:09,320
you want to start using it, at.

165
00:11:09,279 --> 00:11:11,200
Speaker 7: Least I do, but.

166
00:11:13,159 --> 00:11:16,720
Speaker 1: There are just so many other pieces that just don't

167
00:11:16,919 --> 00:11:23,639
feel stable enough yet that I'm not even sure if

168
00:11:24,480 --> 00:11:28,279
if it makes sense to use it at all, Like

169
00:11:28,440 --> 00:11:31,720
unless you're a library author and you're just you want

170
00:11:31,840 --> 00:11:35,919
to make your code work with that new standard, then sure,

171
00:11:36,399 --> 00:11:40,399
But for people that are writing applications, I'm not sure

172
00:11:40,759 --> 00:11:43,480
if it's the right time for that.

173
00:11:46,279 --> 00:11:51,000
Speaker 3: Absolutely, you put to the table avery important point. It's

174
00:11:51,159 --> 00:11:54,440
just like when upgrading it's i'll tell you one of

175
00:11:54,519 --> 00:12:00,639
the hood when well, some projects didn't upgrade to higher

176
00:12:00,799 --> 00:12:04,080
Angular versions because they use a lot of library that

177
00:12:04,320 --> 00:12:07,639
are not ready for the new Angular version.

178
00:12:08,320 --> 00:12:11,320
Speaker 4: This is one point and the other points it's not.

179
00:12:13,240 --> 00:12:13,679
Speaker 7: Stable.

180
00:12:13,960 --> 00:12:19,200
Speaker 3: Some parts are in developer mode. And for me for example,

181
00:12:19,320 --> 00:12:25,600
as maybe poor or someone who has the decision to

182
00:12:27,360 --> 00:12:31,559
add new features to the backlog and to the to

183
00:12:31,720 --> 00:12:34,679
the planning of our experience, I need to be aware

184
00:12:34,799 --> 00:12:38,440
of the business value. It's not when I have a

185
00:12:38,480 --> 00:12:40,159
lot of other features and so on.

186
00:12:40,600 --> 00:12:41,960
Speaker 4: What can I win from it?

187
00:12:42,120 --> 00:12:44,799
Speaker 3: And can I give it a higher priority so that

188
00:12:44,960 --> 00:12:48,639
my developers will spend more time with it, or it's

189
00:12:48,799 --> 00:12:50,960
not the right time for it.

190
00:12:53,240 --> 00:12:56,919
Speaker 1: And also If you look at the official blog post

191
00:12:57,080 --> 00:13:01,840
when Angular EIGHTEAM was released, it was written by Minko.

192
00:13:02,639 --> 00:13:07,639
And when it comes to defining too to announcing right

193
00:13:07,759 --> 00:13:13,240
the new experimental change detection, one thing that he mentions

194
00:13:13,679 --> 00:13:21,000
is improving composability for micro front ends and interoperability with

195
00:13:21,240 --> 00:13:27,120
other frameworks. I think that's really interesting, Like what does

196
00:13:27,240 --> 00:13:32,879
he mean by interoperability with other frameworks? How does zoneless

197
00:13:33,519 --> 00:13:39,240
make Angular more inter interoperable with react or view or whatever,

198
00:13:39,799 --> 00:13:42,360
and even for micro front and front ends for that matter.

199
00:13:43,120 --> 00:13:45,200
Speaker 4: Very good question wants.

200
00:13:47,279 --> 00:13:54,440
Speaker 7: Answer I have. I have a small opinion because outside

201
00:13:54,519 --> 00:13:56,399
library and.

202
00:13:56,440 --> 00:14:00,480
Speaker 6: Then having other places, if you're combining that with for

203
00:14:00,639 --> 00:14:02,799
any micro front ten and you need to have the.

204
00:14:04,720 --> 00:14:06,519
Speaker 7: Running in your in your bunt.

205
00:14:06,639 --> 00:14:10,440
Speaker 6: Maybe if you're doing subside or our client side, then

206
00:14:10,759 --> 00:14:14,639
you were removing the jone and having having the signals

207
00:14:14,720 --> 00:14:19,600
we change the text and everything reduced wait from the

208
00:14:20,759 --> 00:14:23,559
from the micro service. Like first of all, if you're

209
00:14:23,639 --> 00:14:27,519
using the micro service one was with react ones.

210
00:14:30,799 --> 00:14:31,399
Speaker 1: But yeah.

211
00:14:33,120 --> 00:14:38,360
Speaker 2: And yes maybe maybe.

212
00:14:41,120 --> 00:14:44,600
Speaker 1: Super I'm sorry, but your audio in the middle started

213
00:14:44,679 --> 00:14:48,799
to get weird, Like you was sometimes really really good

214
00:14:48,919 --> 00:14:51,360
and sometimes I couldn't hear you.

215
00:14:52,519 --> 00:14:55,440
Speaker 2: Okay, good.

216
00:14:55,559 --> 00:14:57,480
Speaker 5: Now it is.

217
00:14:57,919 --> 00:15:00,799
Speaker 1: It still seems like it's oscillating a bit, but it

218
00:15:01,200 --> 00:15:03,559
is good at this particular moment.

219
00:15:04,519 --> 00:15:07,360
Speaker 6: Yeah, So what I was saying is as the bundle,

220
00:15:07,919 --> 00:15:11,639
so you don't just will be removed from the bundle.

221
00:15:12,440 --> 00:15:15,399
So now you have less load on an overall application.

222
00:15:15,720 --> 00:15:20,600
Maybe it's sub side outline sight and then that that's

223
00:15:20,679 --> 00:15:23,919
how you you can combin you React and Angular and

224
00:15:24,879 --> 00:15:26,399
run together in.

225
00:15:26,480 --> 00:15:29,840
Speaker 7: The project at a single single a single host.

226
00:15:30,799 --> 00:15:37,200
Speaker 1: Oh so it's just a matter of lass of lass polyphils.

227
00:15:36,960 --> 00:15:38,559
Speaker 2: On one point.

228
00:15:39,080 --> 00:15:39,720
Speaker 6: One of the points.

229
00:15:39,759 --> 00:15:43,080
Speaker 5: I can have the bigger point to this because I

230
00:15:43,200 --> 00:15:44,879
worked with Angular elements.

231
00:15:45,639 --> 00:15:47,720
Speaker 2: Everyone knows that. Yeah, and.

232
00:15:49,840 --> 00:15:54,240
Speaker 5: You know when you put it in another application, everything

233
00:15:54,320 --> 00:15:58,159
in your custom element is wrapped inside zone JS.

234
00:15:59,320 --> 00:16:01,159
Speaker 2: Only your top level.

235
00:16:02,519 --> 00:16:07,600
Speaker 5: Components is kind of allowed to emit events or receive

236
00:16:07,720 --> 00:16:10,759
attributes from the top down and so on, and it's

237
00:16:10,840 --> 00:16:15,840
really hard to interact with that stuff. You also, because

238
00:16:15,879 --> 00:16:21,360
of zone jays, you also get poly filled a think

239
00:16:21,480 --> 00:16:26,000
weight and aside the bundle issue, that actually means that

240
00:16:26,080 --> 00:16:31,399
you have two different ways of how your fetch requests work.

241
00:16:32,039 --> 00:16:36,559
Right if you are using acinkaweight in your Angular components,

242
00:16:36,720 --> 00:16:39,679
which I personally think you shouldn't you should stick to

243
00:16:39,799 --> 00:16:43,600
observables and so on. But again it's framework. It supports

244
00:16:43,639 --> 00:16:46,960
you writing a think weight and if you do that

245
00:16:47,919 --> 00:16:53,879
you can get problems if you're using service workers for example. Right,

246
00:16:55,000 --> 00:16:57,759
So there are two more issues, like the issue with

247
00:16:57,879 --> 00:17:01,360
web components. You can't just treat them as HTML elements

248
00:17:01,639 --> 00:17:03,960
because they're wrapped inside zone jes and there are lots

249
00:17:03,960 --> 00:17:07,160
of stuff going on and and that's an issue because

250
00:17:07,200 --> 00:17:10,200
it's kind of marketed as well the customers Tamil element,

251
00:17:10,319 --> 00:17:12,920
but not really when you built it with Angular.

252
00:17:13,839 --> 00:17:16,240
Speaker 2: And the other one is this zone patching.

253
00:17:16,640 --> 00:17:19,079
Speaker 5: There is a bunch of stuff, you know, going on,

254
00:17:20,119 --> 00:17:23,279
and it can really mess up when you sort of

255
00:17:23,359 --> 00:17:27,519
combine it with the other technology is working on the

256
00:17:27,559 --> 00:17:28,000
same page.

257
00:17:28,079 --> 00:17:30,279
Speaker 2: Like I don't have to go far. You can have

258
00:17:30,400 --> 00:17:31,559
jquerry on your page.

259
00:17:31,920 --> 00:17:34,079
Speaker 5: You know, like eighty percent of the web still has

260
00:17:34,160 --> 00:17:37,440
jquerry And if you build let's say a visible component

261
00:17:37,519 --> 00:17:40,960
and put there with Angular zone is can probably mess

262
00:17:41,079 --> 00:17:44,640
up if you use like jQuery plugins that work with

263
00:17:45,160 --> 00:17:47,240
azing stuff because there.

264
00:17:46,880 --> 00:17:49,799
Speaker 2: Are a bunch of plugs. You have no idea where

265
00:17:49,799 --> 00:17:50,559
you're components.

266
00:17:50,599 --> 00:17:54,839
Speaker 5: Beings is kind of a big wrapper that isn't part

267
00:17:54,920 --> 00:17:57,319
of the framework, and it sort of is a barrier

268
00:17:57,680 --> 00:18:02,119
for the outside the world. So also keep in mind,

269
00:18:02,400 --> 00:18:05,920
you know, you will get way more awesome error messages

270
00:18:06,359 --> 00:18:07,480
if anything goes wrong.

271
00:18:07,799 --> 00:18:10,400
Speaker 2: But they improved it for pits.

272
00:18:10,559 --> 00:18:13,880
Speaker 5: With zone, but still there's only just as so much

273
00:18:13,960 --> 00:18:16,559
as you can do about it without zone it will

274
00:18:16,599 --> 00:18:19,319
be just for a clear stake of what happened and

275
00:18:19,440 --> 00:18:20,079
what did.

276
00:18:20,160 --> 00:18:21,599
Speaker 2: Happen got ya.

277
00:18:21,720 --> 00:18:25,200
Speaker 1: So it's kind of like a matter of how scoped

278
00:18:25,599 --> 00:18:28,759
can a component be, And with zone JS it can't

279
00:18:28,799 --> 00:18:32,599
be very scope because zone js itself patches a lot

280
00:18:33,079 --> 00:18:38,119
of global objects, right, so if you rely on it,

281
00:18:38,559 --> 00:18:41,559
even if you're using Angular elements and creating a microfront

282
00:18:41,640 --> 00:18:45,920
and you're still patching a lot of global elements. So

283
00:18:46,079 --> 00:18:48,119
if you go on zoleless then you don't have that.

284
00:18:48,279 --> 00:18:49,519
That's interesting good point.

285
00:18:49,799 --> 00:18:53,960
Speaker 5: If you bring an Angular component into some other application,

286
00:18:54,599 --> 00:18:57,759
you are bringing stuff that is interfering with the window.

287
00:18:57,839 --> 00:18:59,680
Of course, use the symbols and stuff and so on,

288
00:19:00,079 --> 00:19:05,599
but still like your set time out calls are getting patched, okay,

289
00:19:06,480 --> 00:19:08,759
because it listens to racing events like.

290
00:19:08,839 --> 00:19:12,319
Speaker 2: That, you know, performed change detention and so on and yep,

291
00:19:12,640 --> 00:19:14,319
you know, is it a very good idea.

292
00:19:16,960 --> 00:19:20,680
Speaker 3: I think it's an interesting point. I have actually walked

293
00:19:20,720 --> 00:19:22,279
in the past with microphone tents.

294
00:19:22,920 --> 00:19:28,519
Speaker 4: We had also so a communication between those microphone tents,

295
00:19:28,599 --> 00:19:31,839
and we had the global state of global stock for

296
00:19:32,000 --> 00:19:36,359
all of them. But honestly, I don't remember any problem

297
00:19:36,519 --> 00:19:38,799
that I have seen and that I can say, oh,

298
00:19:38,960 --> 00:19:41,799
that problem could be solved now with the.

299
00:19:42,480 --> 00:19:46,359
Speaker 3: Zone less so we had at the time and g

300
00:19:46,599 --> 00:19:55,240
excess as a state management library. But yeah, maybe it

301
00:19:55,359 --> 00:19:59,720
depends from from app to app and from which features

302
00:20:00,240 --> 00:20:07,279
are they. But maybe this intego bullet and the probability

303
00:20:07,400 --> 00:20:12,559
issue could be maybe better explained with concrete examples that

304
00:20:12,720 --> 00:20:13,680
we can show.

305
00:20:14,559 --> 00:20:16,720
Speaker 4: So this is the problem and how it will be

306
00:20:17,240 --> 00:20:17,559
sort of.

307
00:20:20,279 --> 00:20:22,359
Speaker 2: Trust me, no one has ever had that issue. We

308
00:20:22,519 --> 00:20:23,759
just like to pretend in the kid.

309
00:20:24,599 --> 00:20:30,279
Speaker 5: Yeah, because obviously there is hypothetically an issue that can

310
00:20:30,400 --> 00:20:34,680
arise with all those records. But for starters, not very

311
00:20:34,759 --> 00:20:40,000
many people do micro frontas at all, and not very

312
00:20:40,039 --> 00:20:41,480
many people do microphones as were.

313
00:20:41,519 --> 00:20:46,200
Speaker 2: Angular, So it's just a good improvement. It's just not

314
00:20:46,279 --> 00:20:47,279
the main selling point.

315
00:20:47,319 --> 00:20:50,720
Speaker 5: I would sayless, it's great for a bunch of other

316
00:20:50,839 --> 00:20:54,559
stuff and microfonts is just yeah, okay, if you had

317
00:20:54,599 --> 00:20:57,839
any problems there, you probably don't have them now, Okay.

318
00:20:58,200 --> 00:21:04,079
Speaker 3: That's like maybe as a problem that we see often

319
00:21:04,279 --> 00:21:08,839
is that when when you change are not detected, you

320
00:21:09,880 --> 00:21:14,680
you try this CD change detection reference and so on,

321
00:21:14,920 --> 00:21:20,240
and you try a lot of workarounds and maybe a

322
00:21:20,319 --> 00:21:24,039
bit of deity ways, and you feel that it's very

323
00:21:24,119 --> 00:21:28,559
hard to detect the change and you have no clue

324
00:21:29,119 --> 00:21:34,480
why it's not detected though, although you have already considered

325
00:21:34,640 --> 00:21:39,559
the immutability issue and so on. I don't know if

326
00:21:39,640 --> 00:21:42,559
this is one of the main issues that could be

327
00:21:42,720 --> 00:21:43,640
solved with zones.

328
00:21:44,920 --> 00:21:47,640
Speaker 6: I think it will be solved with signal introducing signal,

329
00:21:47,759 --> 00:21:50,640
because I think when people started using signal and on

330
00:21:50,839 --> 00:21:54,319
push the kind of no need to.

331
00:21:56,039 --> 00:22:00,880
Speaker 7: About you just reference and all.

332
00:22:01,039 --> 00:22:05,839
Speaker 6: So I think combinedly, slowly, when we'll have the un

333
00:22:05,920 --> 00:22:09,559
less release with if you see like three four release

334
00:22:09,640 --> 00:22:13,200
back from sixteen small features and combinedly it will help

335
00:22:13,240 --> 00:22:14,359
a lot in the future.

336
00:22:16,480 --> 00:22:19,319
Speaker 2: Actually sorry, but I really would love to at the

337
00:22:19,400 --> 00:22:24,000
point that this new change detection is actually already in.

338
00:22:24,079 --> 00:22:28,039
Speaker 5: The framework and it's kind of stable and it just

339
00:22:28,240 --> 00:22:32,160
works now in parallel with zone. Okay, so now if

340
00:22:32,240 --> 00:22:37,920
you update signals, well, updating a signal is a synchronous action, right,

341
00:22:39,000 --> 00:22:42,240
and in Angular with Zone, we know that the updates

342
00:22:42,359 --> 00:22:44,759
the UI only happened with a thing stuff right, so

343
00:22:44,960 --> 00:22:47,559
set time out, I don't know, promises results and so.

344
00:22:48,039 --> 00:22:51,440
But now you have signals which update synchronously, and with

345
00:22:51,599 --> 00:22:54,680
this new change, detention is already baked in version eighteen.

346
00:22:55,759 --> 00:22:59,480
It will update the UI independent from zone JS. Okay,

347
00:23:00,119 --> 00:23:03,640
you can just end to provide zoneless whatever to say.

348
00:23:03,720 --> 00:23:07,559
Speaker 2: Okay, I don't. It's a less at all for no scenarios.

349
00:23:08,279 --> 00:23:10,920
Speaker 5: Potentially, if you are only using signals, like if you

350
00:23:11,079 --> 00:23:13,359
begin a new application and you say to yourself, okay,

351
00:23:13,359 --> 00:23:17,640
I'm just gonna use signals everywhere, then you probably should

352
00:23:17,680 --> 00:23:23,480
be fine because detecting if a signal has changed.

353
00:23:24,880 --> 00:23:25,559
Speaker 2: Is the way.

354
00:23:25,799 --> 00:23:30,920
Speaker 5: Simpler tasks, right than patching APIs listening to them, listening

355
00:23:30,960 --> 00:23:33,960
to some application rev teg blah blah blah whatever we

356
00:23:34,039 --> 00:23:38,079
have with Zone Now, signals are part of Angular, so

357
00:23:38,240 --> 00:23:42,519
they can easily notify that, okay, my value has changed

358
00:23:42,559 --> 00:23:45,599
if you have to updated. I think I don't remember

359
00:23:45,640 --> 00:23:48,039
who was it on Twitter? But it was really shortened

360
00:23:48,559 --> 00:23:53,359
beautiful explanation. Now, with signals and zoneless, you can think

361
00:23:53,400 --> 00:23:57,960
of the template as being wrapped in an effect of

362
00:23:58,079 --> 00:24:01,559
a signal, and it kind of makes sense.

363
00:24:01,599 --> 00:24:03,160
Speaker 2: Signals would just like with the.

364
00:24:03,119 --> 00:24:06,200
Speaker 5: Effect, signals will say, okay, I've changed update this part

365
00:24:06,319 --> 00:24:10,200
of the UHY. And so of course classical change detection

366
00:24:10,640 --> 00:24:13,160
will just continue to work as it used to. It

367
00:24:13,240 --> 00:24:16,720
will just become granular change detection. Yourself is not changing that.

368
00:24:16,880 --> 00:24:20,000
That's not important for us onsors. The scheduling of change

369
00:24:20,000 --> 00:24:20,960
detection is changing.

370
00:24:24,519 --> 00:24:29,000
Speaker 1: Yep, good point. All right, let's move on to some

371
00:24:29,240 --> 00:24:32,119
of the other stuff that we had on Angular eighteen.

372
00:24:32,720 --> 00:24:40,920
So besides zoneless, what else that is interesting there is

373
00:24:41,119 --> 00:24:42,640
to talk about?

374
00:24:44,519 --> 00:24:46,680
Speaker 4: I think the content.

375
00:24:48,599 --> 00:24:52,240
Speaker 3: Yeah, that's a nice feature actually, especially when we have

376
00:24:53,440 --> 00:24:58,359
some shaped content and it allows me, for example, to

377
00:24:59,000 --> 00:25:02,960
avoid some doub gated code and also to have some

378
00:25:04,480 --> 00:25:09,880
maybe to deliver some content for some some some hosting

379
00:25:10,000 --> 00:25:12,359
component out of the book that they don't need to

380
00:25:13,440 --> 00:25:14,759
push it to.

381
00:25:16,400 --> 00:25:16,839
Speaker 4: Deliver it.

382
00:25:19,240 --> 00:25:22,680
Speaker 1: Yes, that is that is very interesting. It's a it's

383
00:25:22,720 --> 00:25:27,880
a nice quality of life improvement. It's it's doable in

384
00:25:28,039 --> 00:25:31,240
previous versions of Angler, but it's just ugly, like I

385
00:25:31,400 --> 00:25:35,400
have this little snippet of code that you create a

386
00:25:35,559 --> 00:25:39,799
wrapper element around the empty space and then you check

387
00:25:40,039 --> 00:25:43,240
if the inner ATML is empty or not. It's like

388
00:25:43,960 --> 00:25:46,440
you look at it and you think, I don't really

389
00:25:46,559 --> 00:25:50,680
want to write that, but that is actually the safest

390
00:25:50,720 --> 00:25:54,319
way to do this operation. So it's good that now

391
00:25:54,359 --> 00:25:59,359
we can have default fallback content for for energy content.

392
00:25:59,599 --> 00:26:02,559
There's a lot of other things that were experimental or

393
00:26:03,039 --> 00:26:08,240
not experimental, but developer preview and became stable. But I

394
00:26:08,319 --> 00:26:12,039
think the other major thing was actually server side rendering

395
00:26:12,799 --> 00:26:17,319
updates and updates to hydration, event replay. There was a

396
00:26:17,400 --> 00:26:19,960
lot of things around that area.

397
00:26:21,279 --> 00:26:26,279
Speaker 5: I really love, say, seeing the updates to service side rendering,

398
00:26:26,480 --> 00:26:29,559
and I don't care for them in the sense that

399
00:26:30,599 --> 00:26:33,359
I've never actually developed a service side rendering app. We

400
00:26:33,519 --> 00:26:36,359
have like enterprise projects and none of the clients care

401
00:26:36,440 --> 00:26:39,640
about you know, loading times, LCP and.

402
00:26:39,799 --> 00:26:40,680
Speaker 2: All of that stuff.

403
00:26:41,079 --> 00:26:44,319
Speaker 5: But I hate React and I hated that they were

404
00:26:44,440 --> 00:26:46,880
so ahead on the server side story.

405
00:26:47,599 --> 00:26:49,559
Speaker 2: And at least now we're kind of getting back.

406
00:26:49,599 --> 00:26:55,240
Speaker 5: Also, it works kind of fine, although I have encoverned

407
00:26:55,400 --> 00:26:58,480
problems with hydration when I tried a bunch of stuff

408
00:26:58,640 --> 00:27:02,759
on my personal side project, and but but but it's

409
00:27:02,799 --> 00:27:06,000
so very good. It's so very good, and improvements are nice.

410
00:27:06,039 --> 00:27:07,400
I love even to play.

411
00:27:09,599 --> 00:27:14,079
Speaker 3: Yeah, it's a great uh, A good step toward the

412
00:27:15,279 --> 00:27:19,359
interactivity and improvement for the user experience and also avoiding

413
00:27:19,519 --> 00:27:23,359
that the user will feel a bit blocked. Everything is

414
00:27:23,519 --> 00:27:27,599
ready on the on the UI, which could be frustrating

415
00:27:27,839 --> 00:27:29,559
or will lead.

416
00:27:29,480 --> 00:27:30,319
Speaker 4: Maybe to lose some.

417
00:27:32,200 --> 00:27:39,519
Speaker 3: Some business value, especially for very big applications. Maybe even

418
00:27:39,599 --> 00:27:43,279
if they are not handed they are not server side handled,

419
00:27:43,400 --> 00:27:47,079
but maybe they use the high bugget approach with the

420
00:27:47,240 --> 00:27:51,359
mix between s S and the cs A, they could

421
00:27:51,440 --> 00:27:54,400
also benefit from this new feature.

422
00:27:58,000 --> 00:28:03,480
Speaker 5: It's also a step towards resumeability in the future and

423
00:28:03,839 --> 00:28:09,119
the partial iteration too, which is something they I think.

424
00:28:09,319 --> 00:28:14,599
We had another episode with Jess k Yanuk if I

425
00:28:14,680 --> 00:28:18,920
remember correctly, and she was working on the partial liberation

426
00:28:19,079 --> 00:28:23,319
story right, and there were lots of great promises and

427
00:28:23,640 --> 00:28:26,519
it's nice to see them, you know, roll out all

428
00:28:26,559 --> 00:28:28,680
of that stuff really exciting.

429
00:28:29,519 --> 00:28:32,680
Speaker 1: Yes, yes, a lot of things in there. I have

430
00:28:33,319 --> 00:28:38,000
actually built a service side render website which was my

431
00:28:38,599 --> 00:28:42,279
own website actually because it was a blog and I

432
00:28:42,400 --> 00:28:46,720
wanted a good SEO. Then I did service side rendering

433
00:28:46,799 --> 00:28:51,799
on it. And what I think I mentioned this once

434
00:28:51,839 --> 00:28:53,519
in the past, but it's not something that I talk

435
00:28:53,559 --> 00:28:57,240
about a lot, is when I did service side rendering

436
00:28:57,880 --> 00:29:00,079
was on Angular version.

437
00:29:00,839 --> 00:29:01,759
Speaker 7: Four or five.

438
00:29:02,079 --> 00:29:05,559
Speaker 1: I think the first time that I looked Yeah, yeah,

439
00:29:06,279 --> 00:29:11,079
it was very in the early stages. It wasn't even

440
00:29:11,200 --> 00:29:15,799
called like SSR. It was just Angler universal and the

441
00:29:15,960 --> 00:29:17,759
dogs were just an existent.

442
00:29:19,599 --> 00:29:21,119
Speaker 2: It was so tough.

443
00:29:21,559 --> 00:29:26,640
Speaker 1: I remember that when I got this right, and as

444
00:29:26,680 --> 00:29:30,240
soon as I got it right, it started popping up

445
00:29:30,400 --> 00:29:33,680
more articles about how to do it, and part of

446
00:29:33,759 --> 00:29:37,400
me was just thinking, Ah, when I did, it was

447
00:29:37,519 --> 00:29:42,839
so much harder. But it's also good. You know that

448
00:29:42,920 --> 00:29:46,480
the community has evolved so much. It was so painful

449
00:29:46,599 --> 00:29:50,000
at that time to do anything with service side rendering.

450
00:29:50,319 --> 00:29:52,480
And I said Angler four or five, but I'm not

451
00:29:52,720 --> 00:29:55,240
entirely sure if that was it. Maybe it was Angler six.

452
00:29:55,519 --> 00:29:58,200
I just know that it was very very early stages

453
00:29:58,680 --> 00:30:02,559
and there was no doc mentation whatsoever about it. I

454
00:30:02,680 --> 00:30:07,000
remember that was even a person writing a book about it,

455
00:30:07,279 --> 00:30:10,880
but the book never got completed, and I was like

456
00:30:11,039 --> 00:30:14,240
closely watching and waiting for the book to be ready,

457
00:30:15,200 --> 00:30:17,079
and I was able to do it, and the book

458
00:30:17,200 --> 00:30:20,759
was still not already, But yeah, those were the early

459
00:30:20,920 --> 00:30:25,519
stages and we're in a so much better position nowadays.

460
00:30:25,920 --> 00:30:28,279
The fact that you can just do an engine you

461
00:30:29,079 --> 00:30:32,640
and the CLI asks you if you want to do SSR,

462
00:30:33,240 --> 00:30:38,119
that's huge, you know. That really does make it easier

463
00:30:38,359 --> 00:30:41,559
for anyone starting a project to use SSR. Also, some

464
00:30:41,720 --> 00:30:48,079
meta frameworks like analog. Yes, Analog makes it very very easy.

465
00:30:49,240 --> 00:30:54,039
I haven't really used Analog myself, so I can't speak

466
00:30:54,599 --> 00:30:57,200
too much about the developer experience, but I have read

467
00:30:57,240 --> 00:31:00,400
their dogs and I know that's one of the points

468
00:31:00,440 --> 00:31:01,119
that they address.

469
00:31:01,200 --> 00:31:06,880
Speaker 6: So yeah, I think the yes, Sorry please, I was

470
00:31:06,960 --> 00:31:10,480
saying with server side rendering, with the pre rendering as well,

471
00:31:10,559 --> 00:31:15,559
like the SSC, I think the combining, as you said before,

472
00:31:15,680 --> 00:31:20,559
like combining both, uh makes sense for a lot of

473
00:31:20,680 --> 00:31:25,640
development maybe, but I think I was just remembering my

474
00:31:25,799 --> 00:31:31,640
current workflow. We're using Lacto for server side rendering, but

475
00:31:31,960 --> 00:31:35,920
still like for a micro funtained point of view, it

476
00:31:36,039 --> 00:31:40,440
makes sense to to make a lot of sense to

477
00:31:40,599 --> 00:31:45,039
make server side rendering then for enterprise application. Mostly for

478
00:31:45,160 --> 00:31:49,720
the enterprise application you have enterprise user who has quite

479
00:31:49,960 --> 00:31:55,400
fast Internet and also the scope of the application will

480
00:31:55,440 --> 00:31:59,440
be smaller. So so maybe it's better to go with

481
00:31:59,680 --> 00:32:03,920
clients set rendering and with maybe some some preloading stuff.

482
00:32:04,799 --> 00:32:08,720
Speaker 3: I find the hybrid approach also very interesting because maybe

483
00:32:08,799 --> 00:32:11,920
at the beginning we when we think about s SA,

484
00:32:12,079 --> 00:32:13,640
we think about static websites.

485
00:32:13,720 --> 00:32:15,680
Speaker 4: But the hybrid approach.

486
00:32:15,400 --> 00:32:21,119
Speaker 3: Will is a new will give a new chance maybe

487
00:32:21,279 --> 00:32:25,519
or an opportunity for enti rise applications to use also

488
00:32:25,680 --> 00:32:29,000
s S. But we need to decide which parts where

489
00:32:29,160 --> 00:32:33,599
there is for example, no dynamic or real time change

490
00:32:33,720 --> 00:32:36,960
in the dome and so on, those parts could be

491
00:32:37,240 --> 00:32:41,480
sell side grander and the other paths so we'll be

492
00:32:41,599 --> 00:32:45,640
client side grander. And which will be a plus or

493
00:32:46,680 --> 00:32:51,359
an improvement for big scale or large scale applications.

494
00:32:52,079 --> 00:32:55,039
Speaker 6: Yeah, I think as we all here, one thing just

495
00:32:55,160 --> 00:32:59,119
popped to my mind, like maybe maybe it's an off topic,

496
00:32:59,240 --> 00:33:04,279
but how support someone is starting a new application, how

497
00:33:04,400 --> 00:33:08,880
they would decide uh they would a side or CLI

498
00:33:08,920 --> 00:33:11,799
inside if the S the se O is not a

499
00:33:12,960 --> 00:33:15,319
big thing for them, any any thoughts?

500
00:33:16,319 --> 00:33:16,960
Speaker 4: Is it a question?

501
00:33:17,519 --> 00:33:17,680
Speaker 7: Yeah?

502
00:33:19,000 --> 00:33:23,279
Speaker 3: So for example, for example, let's say that they have

503
00:33:25,039 --> 00:33:29,240
maybe a big ecomers application and they have for example,

504
00:33:29,680 --> 00:33:34,480
one of my pages are frequent asked questions. This page

505
00:33:35,000 --> 00:33:38,279
is a kind of static page I can use as

506
00:33:38,319 --> 00:33:42,359
a se for this kind of question or for privacy.

507
00:33:42,680 --> 00:33:46,720
And I don't know such informations for the users, but

508
00:33:46,920 --> 00:33:52,039
let's say that they have some other views. For example,

509
00:33:52,119 --> 00:33:54,799
I have worked once in an application where we had

510
00:33:56,880 --> 00:34:02,920
an editor and the and the applications where the users

511
00:34:03,039 --> 00:34:09,400
could dissect a message so they can select some parts

512
00:34:09,480 --> 00:34:12,559
of the message and extract them as the fields, and

513
00:34:13,159 --> 00:34:18,599
we were actually generating dom elements in depending on the

514
00:34:18,679 --> 00:34:22,880
user interactions. For such kind of features, I cannot use

515
00:34:23,559 --> 00:34:26,079
because the dome will be changed in real time and

516
00:34:26,320 --> 00:34:30,599
it will depend on the user interactions. That's why I

517
00:34:30,719 --> 00:34:36,199
need to be more careful which pages which I am

518
00:34:36,320 --> 00:34:41,599
sure they will stay as they no matter how the

519
00:34:41,679 --> 00:34:45,760
user interacted with them, and which parts will be changed

520
00:34:46,519 --> 00:34:50,360
like for example, I don't know, shopping card, it will

521
00:34:50,440 --> 00:34:59,039
definitely change and show new items and so on or Yeah,

522
00:35:00,760 --> 00:35:06,440
this is just a simplification for how to differentiate between

523
00:35:06,480 --> 00:35:10,159
what is more oriented to as a small audiences.

524
00:35:12,079 --> 00:35:17,000
Speaker 5: I think one maybe a rule of sumbook be Obviously,

525
00:35:17,079 --> 00:35:20,239
this is a business question. If you're building building a

526
00:35:20,320 --> 00:35:24,039
big I don't know, collection of blogs or something, or

527
00:35:24,119 --> 00:35:27,519
a big platform that people use like social media.

528
00:35:27,599 --> 00:35:30,559
Speaker 2: Obviously you need SSR so that people can load your

529
00:35:31,400 --> 00:35:32,679
happen as fast as you can.

530
00:35:33,239 --> 00:35:35,320
Speaker 5: And of course, on the other side, if you're building

531
00:35:35,440 --> 00:35:40,119
like some I don't know, enterprise grade for instance, we

532
00:35:40,199 --> 00:35:44,119
want to build a dashboard for you know, for months

533
00:35:44,199 --> 00:35:47,360
on the dogs that we're working with some paperwork when

534
00:35:47,519 --> 00:35:51,800
loading stuff on the ship, and this is like their job.

535
00:35:51,880 --> 00:35:55,159
They open this app every day and it's cashed on

536
00:35:55,320 --> 00:35:58,159
their I don't know. They use iPads for instance, to

537
00:35:58,239 --> 00:36:01,719
open that one app, and you don't think think about

538
00:36:01,920 --> 00:36:02,639
SSR there.

539
00:36:03,440 --> 00:36:06,280
Speaker 2: So if you know your business case is kind of

540
00:36:06,320 --> 00:36:07,119
easy to decide.

541
00:36:07,159 --> 00:36:11,239
Speaker 8: But if you are not sure if at one point

542
00:36:11,360 --> 00:36:15,039
you will have to have like SSR or not, maybe

543
00:36:15,079 --> 00:36:16,960
if you're just starting the app, it might be a

544
00:36:17,000 --> 00:36:19,639
good idea to just start with SSR.

545
00:36:19,960 --> 00:36:23,519
Speaker 2: Because mostly you won't have to change a lot in general.

546
00:36:23,760 --> 00:36:25,760
But if you already have a big app, switching to

547
00:36:25,800 --> 00:36:29,159
as SR will probably pick up some problems.

548
00:36:30,800 --> 00:36:32,920
Speaker 5: Not that bad obviously, but if you just start in

549
00:36:33,000 --> 00:36:36,480
the SSR, I mean, I don't think it will do

550
00:36:36,679 --> 00:36:38,679
much harm to you. At the end of the day,

551
00:36:38,719 --> 00:36:42,599
you will just develop a round. If you're not doing

552
00:36:42,760 --> 00:36:45,559
like complex dom manipulations. Even if you are doing there

553
00:36:45,599 --> 00:36:48,920
are always like these new functions right after render, after

554
00:36:49,000 --> 00:36:52,119
next lender. You can just rap that stuff. It's always

555
00:36:52,199 --> 00:36:55,480
easier to do that when you're beginning to code instead

556
00:36:55,519 --> 00:37:00,519
of like refactoring it. Still if you're definitely rer app

557
00:37:00,840 --> 00:37:04,000
is just going to be used, you know, like a job,

558
00:37:04,400 --> 00:37:08,199
like an enterprise that then you probably don't need SR

559
00:37:08,320 --> 00:37:12,440
and you will never need sor if that client wants

560
00:37:12,480 --> 00:37:15,199
something you know, public facing, they will probably just want

561
00:37:15,239 --> 00:37:18,840
a new app, not just one page in your enterprise

562
00:37:18,880 --> 00:37:20,920
app puper facing something.

563
00:37:22,440 --> 00:37:28,599
Speaker 3: So we need actually to consider the dome change and

564
00:37:28,800 --> 00:37:32,840
the dome structure, how complex is it and the CEO

565
00:37:33,360 --> 00:37:35,519
how important is it for our app?

566
00:37:35,960 --> 00:37:40,599
Speaker 4: And also the how important for us? Is it more

567
00:37:40,639 --> 00:37:41,280
important for.

568
00:37:41,400 --> 00:37:45,079
Speaker 3: Us that the user will see as quickly as possible

569
00:37:45,199 --> 00:37:48,960
something on the page or that they could be interacted

570
00:37:49,239 --> 00:37:53,000
as quickly as possible, Because with SSL, the user can

571
00:37:53,119 --> 00:37:58,079
see something, but they can't interact until everything will be available,

572
00:37:58,599 --> 00:38:02,719
all the javas, gift and or the events and so on.

573
00:38:03,360 --> 00:38:09,559
So there is an improvement. The time to introduction is

574
00:38:09,880 --> 00:38:13,960
could be slower than C said, but the low the

575
00:38:15,480 --> 00:38:17,960
they can see something quickly, but they can interact with it.

576
00:38:18,360 --> 00:38:22,719
It depends on the applications and on the which kind

577
00:38:22,760 --> 00:38:28,199
of application we are talking about. For some big applications

578
00:38:28,320 --> 00:38:35,599
or some companies, even a delay of maybe yeah, five milliseconds,

579
00:38:35,880 --> 00:38:40,400
I don't yeah, or ten milliseconds could cost them something.

580
00:38:40,880 --> 00:38:44,840
For other applications, it's not so bad to have such

581
00:38:44,880 --> 00:38:46,519
a delay or yeah, it's.

582
00:38:46,400 --> 00:38:48,920
Speaker 6: Also makes sense, like I was just thinking about for

583
00:38:49,079 --> 00:38:53,679
a new startup they're starting up, because if they're starting

584
00:38:53,719 --> 00:38:57,159
with they need to delude a lot of things which

585
00:38:57,239 --> 00:39:00,119
is not related to angle or maybe then it to

586
00:39:00,800 --> 00:39:03,559
deal with the server, how it's handling, how much traffic

587
00:39:03,639 --> 00:39:06,440
it should help because with the clients and rendering, they

588
00:39:06,480 --> 00:39:09,800
are just serving the file maybe from a cian or something.

589
00:39:10,760 --> 00:39:13,679
Speaker 7: But now you need to do a lot of things

590
00:39:13,760 --> 00:39:16,679
you need to you event loopleaques.

591
00:39:16,800 --> 00:39:18,360
Speaker 6: I think a lot of things at that in the

592
00:39:18,440 --> 00:39:22,960
server which you need to we need to know about

593
00:39:23,320 --> 00:39:29,400
if your application might get motorfic. Yeah, so those things

594
00:39:29,480 --> 00:39:33,039
we keep in mind, and Doss says, yeah, I think

595
00:39:33,079 --> 00:39:36,000
we can come back to the topic.

596
00:39:36,920 --> 00:39:44,039
Speaker 1: Yeah, all right, there are still way too many things

597
00:39:44,159 --> 00:39:47,000
to talk about, and we haven't even touched on eighteen

598
00:39:47,039 --> 00:39:52,440
point one, which was released like hours ago, and just

599
00:39:52,599 --> 00:39:57,840
introduce an entirely new operator. But at the same time,

600
00:39:58,960 --> 00:40:03,920
we time really really flew by, and we're already spoken

601
00:40:04,079 --> 00:40:08,559
for forty minutes before we start wrapping up, I want

602
00:40:08,599 --> 00:40:12,119
to make sure that we cover cases that maybe we

603
00:40:12,239 --> 00:40:17,800
didn't talk about that but that might be relevant for Rakia. So, Rakia,

604
00:40:17,960 --> 00:40:21,880
is there anything that we haven't touched on yet? And

605
00:40:22,119 --> 00:40:25,400
perhaps you think that we should like something that is

606
00:40:25,480 --> 00:40:29,119
important enough and we haven't touched So that's kind of

607
00:40:29,159 --> 00:40:31,320
like a catch all question.

608
00:40:32,880 --> 00:40:38,679
Speaker 3: Maybe the improvement in the film's API, the new event

609
00:40:38,840 --> 00:40:43,800
subscribe that would so now we can subscribe and touch

610
00:40:43,920 --> 00:40:47,639
events like Westing events, statos event touched event and value

611
00:40:47,760 --> 00:40:53,119
change event, which is the kind of more refinement in

612
00:40:53,280 --> 00:40:55,199
the film's API.

613
00:40:55,840 --> 00:40:59,800
Speaker 1: Yes, so that specifically, just to make it clear for

614
00:40:59,880 --> 00:41:04,960
the audience, is is it more than just a new

615
00:41:05,119 --> 00:41:08,519
property that was exposed in the form control in the

616
00:41:08,599 --> 00:41:13,639
abstract control or is it because from my understanding that

617
00:41:13,840 --> 00:41:17,599
was it right? It's a new observable that is exposed

618
00:41:18,199 --> 00:41:20,920
and allows you to listen to all sorts of events

619
00:41:21,519 --> 00:41:25,119
that a form that an abstract control can trigger. Is

620
00:41:25,159 --> 00:41:25,599
that correct?

621
00:41:25,840 --> 00:41:26,039
Speaker 5: Yeah?

622
00:41:26,440 --> 00:41:34,880
Speaker 1: Okay, I gotta be honest, I'm still questioning the value

623
00:41:35,000 --> 00:41:38,000
of it. Like I see this as a very good

624
00:41:38,119 --> 00:41:45,320
quality of life improvement, But I didn't saw that announcement

625
00:41:45,440 --> 00:41:49,800
and thought, okay, let me rewrite that component to use that.

626
00:41:50,119 --> 00:41:53,599
You know, it was just okay, we already have that

627
00:41:53,960 --> 00:41:57,800
because we already have the separated observables, right, so we

628
00:41:57,920 --> 00:42:04,360
can listen to the the status changes, and we could

629
00:42:04,599 --> 00:42:10,280
listen to I mean or am I wrong on this?

630
00:42:10,519 --> 00:42:13,840
Like we we already had observables for that, right, they

631
00:42:14,000 --> 00:42:17,119
just weren't unified in a single observable.

632
00:42:19,519 --> 00:42:24,400
Speaker 3: So I think maybe the value of this new improvement

633
00:42:24,639 --> 00:42:29,639
or new observable, it's very well depends on which kind

634
00:42:29,719 --> 00:42:34,039
of components or your I or features we have, because

635
00:42:34,159 --> 00:42:38,239
it will not be relevant the same way for every

636
00:42:39,159 --> 00:42:41,400
farm fields or for every.

637
00:42:42,800 --> 00:42:43,280
Speaker 4: Elements.

638
00:42:44,079 --> 00:42:46,880
Speaker 3: So me too, I have I haven't refacted with anything

639
00:42:47,199 --> 00:42:51,639
in my God in order to use this feature. But

640
00:42:51,840 --> 00:42:56,400
in the past I have seen some some or I

641
00:42:56,480 --> 00:43:00,360
have worked with some components with the DOM and the

642
00:43:00,519 --> 00:43:03,360
events are a bit complex, and there were a lot

643
00:43:03,400 --> 00:43:09,199
of ticky use the interactions that we should catch, and

644
00:43:09,360 --> 00:43:13,360
so one maybe for such kind of applications, this kind

645
00:43:13,440 --> 00:43:16,920
of uh, observable will be more relevant and it will

646
00:43:17,079 --> 00:43:19,239
have more value.

647
00:43:20,039 --> 00:43:24,119
Speaker 1: It makes sense, makes sense. I actually have not had

648
00:43:24,199 --> 00:43:27,639
such cases so to me, I was still wondering about

649
00:43:29,440 --> 00:43:33,280
what was the big value delivered by that feature. But

650
00:43:34,119 --> 00:43:39,079
that that does make sense with your explanation. Interesting. Cool, okay,

651
00:43:40,119 --> 00:43:42,840
Rman super How about you guys, anything you'd like to

652
00:43:43,039 --> 00:43:44,239
mention before you wrap up?

653
00:43:45,159 --> 00:43:49,159
Speaker 7: Yeah, I think you think much from my say they

654
00:43:49,280 --> 00:43:50,880
have fun. Guys have fun.

655
00:43:51,119 --> 00:43:57,760
Speaker 2: That's yeah, all.

656
00:43:57,719 --> 00:44:02,800
Speaker 1: Right, okay, so let's start wrapping up. Let's just do

657
00:44:02,880 --> 00:44:06,920
a quick round of promos, and well, let's start with

658
00:44:08,079 --> 00:44:11,360
with Armen. So Armen, what have you been up to?

659
00:44:13,199 --> 00:44:13,320
Speaker 7: Oh?

660
00:44:13,400 --> 00:44:17,320
Speaker 5: Well, as much as on the previous episodes, I'm gonna

661
00:44:17,559 --> 00:44:19,840
promote my book Modern Angular.

662
00:44:21,039 --> 00:44:22,159
Speaker 2: I have some updates on it.

663
00:44:23,920 --> 00:44:27,000
Speaker 5: Like five months ago, it went into early access so

664
00:44:27,039 --> 00:44:30,159
it could read some of the chapters. Now actually all

665
00:44:30,199 --> 00:44:33,000
of the chapters are available, but it's still not the

666
00:44:33,199 --> 00:44:36,679
final final version of the book. But the book is

667
00:44:36,719 --> 00:44:41,360
in production, is being a copy edited right now. Hopefully

668
00:44:41,480 --> 00:44:44,039
in several weeks it will go into print and that

669
00:44:44,199 --> 00:44:48,280
will be the final release of the book. So, of course,

670
00:44:48,320 --> 00:44:53,440
as I'm super excited about it and our today's topic

671
00:44:53,760 --> 00:44:57,480
is actually the reason that the book took a bit

672
00:44:57,800 --> 00:45:01,639
longer because when we we're close to finishing it off,

673
00:45:02,000 --> 00:45:06,239
we realize that in like six weeks the new Angular

674
00:45:06,360 --> 00:45:11,480
version will come out and probably render the book kind

675
00:45:11,519 --> 00:45:16,639
of obsolete on print, and we decided to hold a

676
00:45:16,719 --> 00:45:20,480
bit to wait to see the version finally come out.

677
00:45:20,719 --> 00:45:24,880
So this is actually because of that reason, the most

678
00:45:25,039 --> 00:45:30,440
up to date Angular book right now kind of not

679
00:45:30,599 --> 00:45:33,559
anymore after today because we now have like lead directive

680
00:45:33,639 --> 00:45:36,559
and so on in Angular eighteen point one, but it's

681
00:45:36,679 --> 00:45:38,320
not really the big stuff.

682
00:45:39,559 --> 00:45:42,000
Speaker 2: So the book covers everything that we start.

683
00:45:41,840 --> 00:45:45,840
Speaker 5: Getting after IVY essentially, so you have standalone components, how

684
00:45:45,920 --> 00:45:50,239
to migrate to them, you have better argues, support, dependency,

685
00:45:50,280 --> 00:45:56,239
injection changes everything, SSR improvements and unit testing, everything that

686
00:45:56,480 --> 00:46:00,239
we have new in the framework. And the book is

687
00:46:00,519 --> 00:46:05,440
following like a project building formats in the sense that

688
00:46:05,559 --> 00:46:08,920
we build an enterprise app with the book, you can

689
00:46:09,000 --> 00:46:14,800
code along and all the features sort of explained in

690
00:46:14,880 --> 00:46:17,360
the chapters are also done in specific formats.

691
00:46:17,400 --> 00:46:20,519
Speaker 2: So first we introduce like a problem that we had.

692
00:46:20,599 --> 00:46:24,320
Speaker 5: Previously, we introduced the solution on a new project and

693
00:46:24,400 --> 00:46:26,800
the one that we're developing, and then all the final

694
00:46:26,920 --> 00:46:30,920
parts of the chapters also have guides on migration, how

695
00:46:31,000 --> 00:46:33,719
you can migrate to send a long components, how it

696
00:46:33,760 --> 00:46:37,000
can migrate to using the inject function, and like the

697
00:46:37,119 --> 00:46:40,880
new guards and resolvers and whatever you have and so on.

698
00:46:40,960 --> 00:46:42,360
Speaker 2: How it can migrate to SSR.

699
00:46:43,679 --> 00:46:46,920
Speaker 5: So yeah, it's sort of the handbook for anyone who

700
00:46:47,079 --> 00:46:49,719
has not been up to speak with the improvements in

701
00:46:49,800 --> 00:46:54,199
Angular and wants to quickly learn what's doing the framework

702
00:46:54,280 --> 00:46:57,639
and how they can sort of set their projects up

703
00:46:57,719 --> 00:46:59,239
to use all the modern features.

704
00:47:00,000 --> 00:47:04,519
Speaker 2: Oh yeah, that's my book. I hope if anyone decides

705
00:47:04,559 --> 00:47:07,400
to buy it that it is help to you.

706
00:47:08,239 --> 00:47:13,519
Speaker 1: Awesome, awesome, all right, And just what's the name of

707
00:47:13,599 --> 00:47:15,840
it again, just so that people can search for it.

708
00:47:16,440 --> 00:47:17,880
Speaker 2: It's called modern Angular.

709
00:47:18,440 --> 00:47:23,760
Speaker 1: Essentially, we have okay, Modern Angler by Arman Vardinia. Cool

710
00:47:25,119 --> 00:47:27,880
and well. On my end, I'm just going to promote

711
00:47:27,960 --> 00:47:30,400
the two companies that produce this show, So Top and

712
00:47:30,440 --> 00:47:33,639
Doves produces a lot of other podcasts, not just about Angler,

713
00:47:33,719 --> 00:47:36,679
so if you're interested in that, I'm also actually hosting

714
00:47:36,760 --> 00:47:42,159
the React show. I do love Angler more, but I

715
00:47:42,280 --> 00:47:45,360
also know about reacts, so I also host that show,

716
00:47:46,480 --> 00:47:48,960
and there are many others as well, so if you're

717
00:47:49,039 --> 00:47:51,480
interested in other subjects, be sure to check out all

718
00:47:51,519 --> 00:47:54,719
the podcasts available and on top and doves and on Void,

719
00:47:55,320 --> 00:47:59,320
which some people might not know exactly how to type it,

720
00:47:59,480 --> 00:48:03,920
but it's with un so u n Void. And the

721
00:48:04,239 --> 00:48:08,519
difference between onvoid and other software development agencies is that

722
00:48:09,119 --> 00:48:11,840
in general, when you try to hire developers, they always work,

723
00:48:11,960 --> 00:48:17,079
they always high, they always charged hourly, and that's not

724
00:48:17,320 --> 00:48:19,679
very client friendly because you never really know how much

725
00:48:19,800 --> 00:48:23,079
is going to take and if there are over times,

726
00:48:23,400 --> 00:48:26,559
you just keep wondering like is this taking longer because

727
00:48:27,079 --> 00:48:30,639
the person is is just taking longer to get paid more,

728
00:48:30,960 --> 00:48:34,159
or is it like really it really makes sense that

729
00:48:34,199 --> 00:48:37,719
it's taken longer. There's always this question and it's just

730
00:48:37,840 --> 00:48:42,840
frustrating for clients. So Onvoid fixes that by agreeing on

731
00:48:43,000 --> 00:48:46,400
the prices per tasth with the clients beforehand, and the

732
00:48:46,480 --> 00:48:49,519
clients only pay after dissts are delivered and approved, so

733
00:48:49,639 --> 00:48:53,079
the clients also can do quality control to make sure

734
00:48:53,159 --> 00:48:56,679
that what is delivered is up to their quality standards

735
00:48:56,760 --> 00:49:00,840
before it actually becomes available. So it's extremely client friendly

736
00:49:01,719 --> 00:49:03,679
and yeah, so be sure interested in that be sure

737
00:49:03,760 --> 00:49:06,000
to check out you n v o I d on

738
00:49:06,159 --> 00:49:09,800
void dot com. This is going to be my text

739
00:49:10,000 --> 00:49:11,480
for today, Rack.

740
00:49:11,559 --> 00:49:12,360
Speaker 7: Yeah, how about you?

741
00:49:13,679 --> 00:49:15,639
Speaker 4: Okay, thanks for the opportunity.

742
00:49:15,760 --> 00:49:21,760
Speaker 3: First, so I'm actually building the community with my which

743
00:49:21,960 --> 00:49:23,719
was started with my medium blog.

744
00:49:23,840 --> 00:49:25,000
Speaker 4: I have reached today.

745
00:49:26,599 --> 00:49:30,360
Speaker 3: One hundred eighty eight articles I think on Medium and

746
00:49:30,880 --> 00:49:32,360
you have also YouTube channel.

747
00:49:32,519 --> 00:49:37,280
Speaker 4: I will invite you guys to join it and subscribe to.

748
00:49:37,360 --> 00:49:38,480
Speaker 1: It, and.

749
00:49:40,039 --> 00:49:44,599
Speaker 3: Maybe for everyone who would like to build the web

750
00:49:44,679 --> 00:49:49,760
performance muscles, I will invite them to join over thirty

751
00:49:49,840 --> 00:49:53,480
one case students and en roll on my udimi video

752
00:49:53,519 --> 00:49:58,400
coals about web perform Master and web performance from noves

753
00:49:58,440 --> 00:50:04,159
to Expect and my second m vidals which was published

754
00:50:04,400 --> 00:50:09,000
on April. There are also the over three k students

755
00:50:10,440 --> 00:50:13,639
and he is a bonus for everyone who would like

756
00:50:13,719 --> 00:50:15,960
to get the chance to get those courses for free.

757
00:50:16,800 --> 00:50:17,679
Speaker 4: You can join my.

758
00:50:19,199 --> 00:50:24,800
Speaker 3: Newsletter because I check their free access to my video courses.

759
00:50:25,400 --> 00:50:30,840
So my newsletter is Rakia Ben Sasi together written without

760
00:50:31,519 --> 00:50:35,880
Rakiah Ben Sasi Ben Sasi dot substack dot com.

761
00:50:37,000 --> 00:50:40,159
Speaker 1: And that's awesome, awesome, thank you, thank you.

762
00:50:42,920 --> 00:50:43,320
Speaker 2: How about you?

763
00:50:43,840 --> 00:50:46,920
Speaker 6: Yeah, I would like to promote my channel is who

764
00:50:47,000 --> 00:50:50,840
is fun of heuristic. So I'm not putting much content now,

765
00:50:50,960 --> 00:50:56,199
but I'm trying to be motivated again and start putting it.

766
00:50:56,280 --> 00:51:00,480
But we have some good content in the past. Please

767
00:51:00,519 --> 00:51:01,079
go tack.

768
00:51:02,159 --> 00:51:05,920
Speaker 1: Okay, all right, guys, Thank you so much for those

769
00:51:06,000 --> 00:51:08,599
listening to us. Thank you for stacking up until the

770
00:51:08,760 --> 00:51:11,320
end of a great week, and I will see you

771
00:51:11,400 --> 00:51:12,000
in the next one.

