WEBVTT
1
00:00:06.480 --> 00:00:11.080
Hey everybody, Welcome back to another
episode of JavaScript Jabber. This week,
2
00:00:11.119 --> 00:00:16.679
on our panel, we have Steve
Edwards to borrow from a j Yo yo
3
00:00:16.800 --> 00:00:21.399
Yo, coming after coming at you
from a cloudy and cool Portland after having
4
00:00:21.440 --> 00:00:26.199
been in Arizona, sonny and warm
last week. Right, I'm Charles Maxwood
5
00:00:26.239 --> 00:00:29.879
from Top Endez. Yeah, it
was rainy last week here, but looks
6
00:00:29.879 --> 00:00:33.640
like it's going to be a nice
day today. So we have a special
7
00:00:33.679 --> 00:00:37.399
guest this week. We have Santosh. I don't know if we have your
8
00:00:37.479 --> 00:00:41.280
last name anywhere where I can see
it. You gonna introduce yourself and let
9
00:00:41.280 --> 00:00:45.159
people know who you are and why
we're excited to have you here. My
10
00:00:45.280 --> 00:00:49.280
name is and I live in Germany, so I live near Hamburg. I
11
00:00:49.359 --> 00:00:52.799
keep killing people that I live in
Hamburg, but it's it's a life because
12
00:00:53.039 --> 00:00:58.240
that's the net. So people in
Hamburg so and I put it on.
13
00:00:59.039 --> 00:01:03.359
So I'm seen as of the engineer
that's too honest. And I'm involved in
14
00:01:03.399 --> 00:01:07.840
mertical communities, so I'm developer expert
for Angula. I'm also a get up
15
00:01:07.840 --> 00:01:14.079
Star and I'm also part of an
X Champions program which is a program MANX.
16
00:01:14.599 --> 00:01:18.120
And I'm also co founded for a
community so we learn. We run
17
00:01:18.159 --> 00:01:22.239
a committee called This is Learning and
This is Tech Talks the podcasts, which
18
00:01:22.239 --> 00:01:26.280
we do generally. Uh, we
have been doing it for a year now
19
00:01:26.879 --> 00:01:30.120
and that's what that's what I do. And you might have seen me from
20
00:01:30.159 --> 00:01:36.319
the active and I'm just so much
active there, very cool. Well,
21
00:01:37.599 --> 00:01:38.959
the topic I have in front of
us, and this might be a little
22
00:01:38.959 --> 00:01:44.439
provocative for some people, is why
why Angular is the best framework for you?
23
00:01:45.280 --> 00:01:49.280
And uh, yeah, I think
just to get us started. It
24
00:01:49.319 --> 00:01:55.879
seems like React as kind of the
one that far and away people are adopting,
25
00:01:57.040 --> 00:02:00.799
and so are you. I guess
what I'm asking is are you putting
26
00:02:00.799 --> 00:02:05.599
forward that that's a mistake or just
not as good a decision as you could
27
00:02:05.599 --> 00:02:09.199
make if you go for Angular.
And I'm just here to share my point
28
00:02:09.199 --> 00:02:15.599
of view bi Angular as best pay
Yeah, I mean generally it's like uppe
29
00:02:15.840 --> 00:02:22.680
that you you to decide what what
is best for you by Okay, So
30
00:02:22.719 --> 00:02:27.199
why should people use Angular then?
Because I know Steve does view. Just
31
00:02:27.240 --> 00:02:31.919
to give a little background, and
I've done I've kind of played with them
32
00:02:31.919 --> 00:02:38.520
all and I've mostly settled on Stimulus, which isn't a surprise if you're into
33
00:02:38.719 --> 00:02:43.879
Ruby on rails. So yeah,
you might get a little pushback here or
34
00:02:43.919 --> 00:02:46.719
there because neither of us use Angular
on a regular basis. For what it's
35
00:02:46.719 --> 00:02:51.800
worth all throwing this caveat that I
did start out with Angular, but it's
36
00:02:51.919 --> 00:02:54.919
what is now Angular JSS, Angular
one, whatever you want to call the
37
00:02:54.919 --> 00:03:00.400
the first version. So I never
I switched twitched over Review at the time
38
00:03:00.479 --> 00:03:07.360
that it was rewritten into Angular too, you know, and on for various
39
00:03:07.400 --> 00:03:10.240
reasons you know that we can discuss. But so I wasn't. That was
40
00:03:10.280 --> 00:03:20.199
my Angler was my my initial step
into JavaScript coding on the front end most
41
00:03:20.199 --> 00:03:23.039
people because it was one of the
earliest framework, right, I mean it
42
00:03:23.319 --> 00:03:25.680
came even before Yeah, so most
of the people were doing Angler jays and
43
00:03:25.719 --> 00:03:30.520
then Angler two came in, which
is the current Angler which we are to
44
00:03:30.520 --> 00:03:34.520
talk about. Angler jas is now
end of the least end of light,
45
00:03:34.719 --> 00:03:38.960
so it's not even supported by Angler
officially, but I think there are few
46
00:03:39.000 --> 00:03:45.680
companies who were supporting long term support. But that's another thing. So it's
47
00:03:45.719 --> 00:03:50.960
like started around Angler two when people
started moving away from Angler jas to the
48
00:03:51.000 --> 00:03:54.560
frameworks. I mean that was I
would say, yeah, that was very
49
00:03:54.960 --> 00:04:00.599
hard time even for the framework because
there are multiple things. Right, when
50
00:04:00.639 --> 00:04:03.400
Angler two came, Anger team said
they are going to rewrite it in typescript,
51
00:04:03.439 --> 00:04:06.919
and not many people were fan of
typescript. So if you if you
52
00:04:08.120 --> 00:04:11.560
all remember, like Typetrip, Angler
was the first tramwork to actually bet on
53
00:04:11.599 --> 00:04:15.079
typescript. They said, yeah,
they will rewrite everything in typescript. And
54
00:04:15.079 --> 00:04:19.360
then Microsoft cattal like good, good
packing. They even like wrote a blog
55
00:04:19.399 --> 00:04:25.480
post three years ago that Google team, our Angler team was a big support
56
00:04:25.600 --> 00:04:30.160
behind the success because no one was
trying to adopt it, but they did.
57
00:04:30.519 --> 00:04:34.839
They're oute of big enterprise framework using
type script and it's it's been used
58
00:04:34.879 --> 00:04:40.279
now by millions of developers. So
that was the early start. And of
59
00:04:40.319 --> 00:04:45.519
course there was no path. I
mean the another issue was Angler JAS to
60
00:04:45.639 --> 00:04:47.959
Angler two. Okay, there was
there was no migration path. So everyone's
61
00:04:47.959 --> 00:04:54.160
scared, like what happens tomorrow,
right, I mean if once like Angler
62
00:04:54.240 --> 00:04:57.560
jas is officially dead, how we
will able we will be able to migrate
63
00:04:57.560 --> 00:05:00.560
to Angler or the new version?
There was no clear But of course now
64
00:05:00.639 --> 00:05:05.839
there is a there's a guy,
there's a great like anglers who angled it
65
00:05:05.959 --> 00:05:12.879
up and it's available now, but
that was the time. Actually there was
66
00:05:12.920 --> 00:05:16.279
some bad decisions, I would say, which which costed like big panic in
67
00:05:16.319 --> 00:05:24.000
the community, even the people who
were using Yeah, I remember we were
68
00:05:24.040 --> 00:05:28.959
talking to So I was one of
the people that started and hosted for a
69
00:05:29.000 --> 00:05:32.240
long time the Adventures in Angular podcast. That was your first podcast I ever
70
00:05:32.279 --> 00:05:36.240
started listening to check with Adventures and
Angler, Okay, yeah, and so
71
00:05:36.319 --> 00:05:43.360
we were talking to Mishkoh and a
bunch of the other people that were involved
72
00:05:43.360 --> 00:05:46.439
in a lot of that. Yeah, there was a lot of anxiety at
73
00:05:46.480 --> 00:05:49.639
the time over you know, where
Angler was going to end up. And
74
00:05:50.040 --> 00:05:54.920
yeah, they made the cutover to
type script. Initially, they were trying
75
00:05:54.959 --> 00:06:00.680
to come up with their own uh
script that you know, transpiled to JavaScript
76
00:06:00.680 --> 00:06:06.319
that was similar to typescript, and
I guess they got what they wanted from
77
00:06:06.360 --> 00:06:11.120
the typeescripts team and made that transition. But yeah, so at this point,
78
00:06:12.600 --> 00:06:15.079
yeah, Angler is much more modern. It has a lot of other
79
00:06:15.079 --> 00:06:18.120
things going for it. But yeah, anyway, it was just an interesting
80
00:06:18.160 --> 00:06:23.600
time to be involved in that.
So that was it was like the same
81
00:06:23.720 --> 00:06:27.079
time I started like two Gangla Jays
around winning fifteen. I mean I was
82
00:06:27.160 --> 00:06:31.560
laid into the ecosystem of course,
and then twenty seventeen at the Angler four
83
00:06:31.639 --> 00:06:34.560
game, that's when I when I
picked it up. So of because I
84
00:06:34.600 --> 00:06:38.759
was lucky not to get into Angler
two. I know a lot of people
85
00:06:38.839 --> 00:06:44.720
were actually frustrated with every like breaking
changes with a u RC and everything.
86
00:06:44.759 --> 00:06:47.160
I just keep hearing the study and
then it makes it like, oh and
87
00:06:47.319 --> 00:06:51.199
I decided not to jump in trite
into it, like when Anglo two was
88
00:06:51.240 --> 00:06:55.959
going on. So what is it
about Angler that you think makes it a
89
00:06:56.000 --> 00:06:59.639
great choice? Yeah, I mean
there are so many things, right,
90
00:06:59.680 --> 00:07:02.319
I mean, first, of course, the current state of Angler. So
91
00:07:02.399 --> 00:07:06.199
if you see, like of course, there was a time when people thought,
92
00:07:06.199 --> 00:07:09.879
okay, Angler is going to be
dead. Angler is not going moving
93
00:07:09.959 --> 00:07:15.680
forward, like there are no new
features, even like they're not I mean
94
00:07:15.920 --> 00:07:18.000
even they are not listening to the
to the community. I mean, if
95
00:07:18.000 --> 00:07:23.000
you if you go to the open
issues, they were like like two top
96
00:07:23.040 --> 00:07:27.519
most voted issues which were still open
for after four years, and everyone was
97
00:07:27.560 --> 00:07:30.839
frustrated when the even the community was
like bait of fun ansious again that what's
98
00:07:30.879 --> 00:07:35.519
what's going to happen? And then
came Hangler fourteen. So Angler fourteen as
99
00:07:35.560 --> 00:07:42.360
were all all this new features or
the team actually started pushing so many new
100
00:07:42.360 --> 00:07:47.560
things, and I think they they
we keep hearing about Angler renaissance, right,
101
00:07:48.079 --> 00:07:53.680
and that's what happened. So after
Angler fourteen, Angler started moving into
102
00:07:53.680 --> 00:07:59.399
different directions. They started listening to
the community. So most of the top
103
00:07:59.519 --> 00:08:03.040
vote features are actually fixed now,
I mean they're they're already being used by
104
00:08:03.120 --> 00:08:09.000
people. And uh, I would
say, uh, the kind of shift
105
00:08:09.399 --> 00:08:13.120
which Angler has taken. For example, Angler modules, Like there was a
106
00:08:13.199 --> 00:08:18.160
there was a time that we everyone
who was actually teaching Angler or learning Angler
107
00:08:18.199 --> 00:08:24.480
they had to actually word and learn
about Angler modules like what what are modules?
108
00:08:24.680 --> 00:08:28.360
And now with that, after Angler
fourteen, team decided to actually remove
109
00:08:28.399 --> 00:08:31.519
it, like they said, okay, let's make it optional. So they
110
00:08:31.519 --> 00:08:39.080
started removing the headaches or I would
say the most important Uh, not most
111
00:08:39.080 --> 00:08:43.840
important, but I would say most
complicated things like which which you need to
112
00:08:43.120 --> 00:08:48.240
understand before jumping into Angler. They
started removing those blocks. For example,
113
00:08:48.240 --> 00:08:54.320
they made Angler models option. Okay, they started making uh, some changes
114
00:08:54.360 --> 00:08:58.600
to talk to more functional program For
example, not everyone is more comfortable writing
115
00:08:58.600 --> 00:09:03.720
classes in type script. So for
example, guards Angler guards, they used
116
00:09:03.759 --> 00:09:07.679
to be all classes. Now they
are functions which enabled like there are a
117
00:09:07.679 --> 00:09:11.279
few changes or there isn't there are
new functions which enabled most some of the
118
00:09:11.320 --> 00:09:16.559
library offers to actually adopt functional approach. One of the librares I think maxim
119
00:09:16.600 --> 00:09:22.000
meno is jeris, which is for
state management. So they started, Yeah,
120
00:09:22.120 --> 00:09:26.360
so they started moving most of the
code to functional approach to make it
121
00:09:26.440 --> 00:09:33.200
like more pre more more easy to
write. So apart from that, of
122
00:09:33.240 --> 00:09:37.679
course, now let's talk about SSR. There was like a long period of
123
00:09:37.679 --> 00:09:41.159
time where Angler's team said, okay, they are not going to do SSR,
124
00:09:41.240 --> 00:09:43.200
right, I mean, they're not
going to support SSR. And then
125
00:09:43.519 --> 00:09:48.759
community came and wrote Angular Universal.
Yeah, so Anglo Universal was something which
126
00:09:48.799 --> 00:09:54.000
was driving SSSR for a longer rift. And now Anglar team has actually adopted
127
00:09:54.039 --> 00:09:58.679
that Angler USL as part of the
Angler package itself itself. It's called Angular
128
00:09:58.759 --> 00:10:03.000
s are now and the team is
focusing more on SSR, so they're trying
129
00:10:03.039 --> 00:10:07.360
to give better experience when you're using
SSR, so partial iteration is there.
130
00:10:07.879 --> 00:10:13.279
And now they are trying to merch
Angler with another framework called wiz, which
131
00:10:13.399 --> 00:10:18.360
was actually an internal framework within Google. So it's like this is just announced
132
00:10:18.440 --> 00:10:24.639
at Chicon this year that they're going
to do it to make SSR more better
133
00:10:24.679 --> 00:10:30.440
met Angular so they have partial iteration, and of course there will be like
134
00:10:30.799 --> 00:10:35.039
more pandular label change fiction which is
also coming with a Angular. So those
135
00:10:35.080 --> 00:10:41.919
are the things which makes I would
say Angler as best framework for you right
136
00:10:41.960 --> 00:10:48.080
now because they are actually adopting new
features making learning framework more more more more
137
00:10:48.080 --> 00:10:52.000
easy to you, Like they are
moving all the complicated things more complicated concepts.
138
00:10:52.519 --> 00:10:56.960
Yeah, we can talk about more. Yeah, it's it's funny because
139
00:10:56.000 --> 00:10:58.519
you're talking about a lot of these
things. I mean, I remember when
140
00:10:58.600 --> 00:11:03.399
n GR came out, Remember when
Angular Universal came out. You know,
141
00:11:03.519 --> 00:11:09.240
we're talking to you know, the
guys behind all that work. And yeah,
142
00:11:09.360 --> 00:11:13.840
it seems like a lot of these
things though anymore just kind of on
143
00:11:13.000 --> 00:11:18.440
par with what people expect from a
modern framework, right. I mean View
144
00:11:18.519 --> 00:11:22.120
has a lot of these same kinds
of options, don't they, Steve and
145
00:11:22.240 --> 00:11:26.200
few X and View. I don't
know how you do SSR with View,
146
00:11:26.240 --> 00:11:28.240
but yeah, well there's next.
I mean you have a you know,
147
00:11:28.759 --> 00:11:33.600
like next or next. I believe
Angeler has a meta framework quote unquote don't
148
00:11:33.639 --> 00:11:39.320
they analog now? So I think
Spelly has been. I don't know.
149
00:11:39.720 --> 00:11:43.000
I haven't heard from anything from the
True brand it's been working on Analog has
150
00:11:43.000 --> 00:11:48.559
any Yeah, so Analog is the
meta framebook. Which so let me ask
151
00:11:48.600 --> 00:11:52.440
you one question. You know one
of the like I said, apologize,
152
00:11:52.440 --> 00:11:58.879
I haven't really worked in Angular two
x on one of the features that View
153
00:12:00.120 --> 00:12:07.000
has that I consistently hear from people
who have moved to View from Angular react
154
00:12:07.159 --> 00:12:11.720
or. You know, your framework
of choice is the single file templates component
155
00:12:11.120 --> 00:12:18.679
functionality in that you know, basically
you have your template function same with you
156
00:12:18.799 --> 00:12:22.519
two or View three or's just straight
HTML, right, You're not having to
157
00:12:24.279 --> 00:12:26.919
put backticks around thing to make sure
your quotes are you know, just right
158
00:12:28.000 --> 00:12:30.879
so it can interpret it. It's
just very easy to read. And then
159
00:12:30.879 --> 00:12:35.679
you plug in any of your attributes
and your directives and classes and stuff as
160
00:12:35.759 --> 00:12:41.120
regular HTML, which makes it easier
for a designer to work with. Now
161
00:12:41.159 --> 00:12:45.279
I'm reading the Angular docs and I
don't see that capability. I might be
162
00:12:45.320 --> 00:12:50.679
missing it because I haven't been studying. So how does Angular make the templating
163
00:12:50.759 --> 00:12:58.240
portion easy? So if a single
component is something which is not heavily an
164
00:12:58.240 --> 00:13:03.480
angle of it, so Angler's generally
whenever you start a new project us in
165
00:13:03.559 --> 00:13:07.480
CLN, so you have to put
strap and component. So you put strap
166
00:13:07.519 --> 00:13:11.000
and root component and then bin root
component. You can render anything and temperate
167
00:13:11.080 --> 00:13:13.679
is nothing, but you can actually
there are two options. So you can
168
00:13:13.799 --> 00:13:18.480
create an estimate file and you can
provide it to the component class that okay,
169
00:13:18.519 --> 00:13:22.120
this is the temperate and where you
will have all the estimate files.
170
00:13:22.759 --> 00:13:26.120
Or you can just write it between
the deepestrict file itself, so you have
171
00:13:26.200 --> 00:13:30.360
something called template as a string,
so you can just say back takes and
172
00:13:30.360 --> 00:13:35.039
then you can start writing your estimal. So it's it's different from others like
173
00:13:35.080 --> 00:13:39.399
for example React as ASIX of course
who has dot move file which is where
174
00:13:39.440 --> 00:13:43.519
you can write all the things.
But Angle it is like plain STML,
175
00:13:43.559 --> 00:13:46.399
so you can just write estimate file
and start writing your stment up with the
176
00:13:46.440 --> 00:13:54.000
help of some of the template functionality
which is provided by Angle. If you
177
00:13:54.000 --> 00:13:56.120
need SEFC, if you need sec
you should give it. Try to analog
178
00:13:56.440 --> 00:14:00.879
because they are trying to fill in
this gap, so they're go adop like
179
00:14:01.039 --> 00:14:07.200
all this features, which is widely
asked for but by by the by the
180
00:14:07.200 --> 00:14:11.759
divelopers who are coming from background of
food, right, so they are like
181
00:14:11.879 --> 00:14:16.519
thinking about to the secs. So
yes, it's availability a handle just I
182
00:14:16.559 --> 00:14:20.960
think you can go and write out
with the current rings. Now with those
183
00:14:22.000 --> 00:14:26.519
templates, are you also have a
CSS handle? Is that something that's in
184
00:14:26.519 --> 00:14:30.919
a separate file that you would import
into your component then, or is that
185
00:14:31.039 --> 00:14:35.000
something that you can do like a
style bark or something like that inside of
186
00:14:35.000 --> 00:14:39.080
your component. Both the options are
available if you want. You can do
187
00:14:39.120 --> 00:14:43.120
it in line with style styles property, so you can just say okats the
188
00:14:43.159 --> 00:14:46.360
stiles and then you can write your
in line spies. Or if you want
189
00:14:46.360 --> 00:14:50.000
a cess file to be a separate
file, you can define it as a
190
00:14:50.039 --> 00:14:54.559
string same as your st piles.
Right, so you can create as a
191
00:14:54.799 --> 00:14:58.559
CS file or stats file what I
when you're using ale supports everything, so
192
00:14:58.960 --> 00:15:01.519
you can just define create that file
and just give a path so it will
193
00:15:01.559 --> 00:15:07.679
just work. But it's a second
file outside of your component. Is that
194
00:15:07.759 --> 00:15:11.600
right? You can do both.
I mean when you can do like within
195
00:15:11.639 --> 00:15:15.799
your types too file, you can
say stye and then you can start writing
196
00:15:15.840 --> 00:15:20.200
in a string, but it's a
string with backticks around it type of exactly.
197
00:15:20.279 --> 00:15:26.159
Yeah, okay, can the CSS
be scoped to a particular component or
198
00:15:26.200 --> 00:15:33.240
is it always necessarily global? So
good thing about Angler's FIFA. So whenever
199
00:15:33.279 --> 00:15:37.320
you create a new component like scoped
to the current component. So whenever you
200
00:15:37.399 --> 00:15:41.720
like create a new new anglerpiplication and
you run it and you try to inspect
201
00:15:41.840 --> 00:15:45.799
any component and you see the stie
so that you will find something called energy
202
00:15:45.799 --> 00:15:50.679
content uppended with this. So it
makes sure that yours, like stye sets,
203
00:15:50.679 --> 00:15:54.399
are not leaking globally. You can
also make it devlople globally. It's
204
00:15:54.440 --> 00:15:58.639
up so it's like it's it's it
gives you control to you bite fall.
205
00:15:58.679 --> 00:16:03.559
It's a was wrapped inside the component
so it doesn't lead. But if you
206
00:16:03.600 --> 00:16:07.840
want to, you can just make
it available everywhere. That's possible, basically
207
00:16:07.840 --> 00:16:12.080
overwriting global school. Now, how
does Angular handle or what are the options
208
00:16:12.159 --> 00:16:18.360
for state management? Is that something
that's built in that comes by default?
209
00:16:18.519 --> 00:16:22.879
You know View has view actually actually
with View three IT'SPNA. Now is the
210
00:16:22.879 --> 00:16:27.840
default state management tool for View three? Uh? Is there are like multiple
211
00:16:27.879 --> 00:16:30.919
options for options you want to use? Or is there a default that's built
212
00:16:30.919 --> 00:16:33.960
into Angular or at least maybe one
that's recommended. How does that work?
213
00:16:36.679 --> 00:16:41.480
Question? Because this necessary we can
really talk about signals like signals and everywhere
214
00:16:41.519 --> 00:16:47.240
now. So Angler adopted signals to
versions pack so Angly sixteen they make it
215
00:16:47.639 --> 00:16:52.320
make it as an experimental so you
know the signals, the whole signals idea
216
00:16:53.120 --> 00:16:59.279
that camelong back, but like more
people started not adopting it after solid Chase
217
00:16:59.360 --> 00:17:03.039
came up with the solution. Right, and now signals are adopted by a
218
00:17:03.120 --> 00:17:07.839
woof. It's adopted by Swelt and
Angler Oswald, so one of the framework
219
00:17:07.880 --> 00:17:11.440
which adopted signals, so to make
the state management easier. Right, So
220
00:17:11.480 --> 00:17:15.200
earlier we had multiple options, so
we had RHAS which was where you can
221
00:17:15.200 --> 00:17:18.519
actually write your own so if you
want to write create your own store,
222
00:17:18.720 --> 00:17:23.839
you can do it using RHAS.
Then people, more people from the community,
223
00:17:23.880 --> 00:17:27.799
they created their own solution as I
was taken to DUHS and GIS like
224
00:17:27.960 --> 00:17:33.519
was one of the early library which
is widely used, so it's like one
225
00:17:33.519 --> 00:17:38.599
of one out of six application in
production users. NGX. Then we have
226
00:17:38.759 --> 00:17:44.960
NJXS, which also is pretty good
state management framework. And I think there
227
00:17:45.000 --> 00:17:51.079
are a few more like which are
mean I haven't used any any other,
228
00:17:51.119 --> 00:17:55.480
but there are a few more which
exists. But it comes I wanted to
229
00:17:55.480 --> 00:18:00.559
make the state management thing easier because
why you should always reach out to managemental
230
00:18:00.599 --> 00:18:04.279
ability, maybe sometimes you don't need
it, and that's why they introduce signals
231
00:18:04.279 --> 00:18:07.440
now. So if you want to
make your state management easier, now you
232
00:18:07.440 --> 00:18:12.039
can actually start adopting signals as well. And signals can live anywhere like it
233
00:18:12.119 --> 00:18:15.519
can be it's it can just leave
outside your file lege. So for example,
234
00:18:15.599 --> 00:18:19.160
Steve Husa that you are coming from
who you are already familiar with Pinion
235
00:18:19.599 --> 00:18:25.119
which users signals actually in kind of
signals? I mean, I don't know
236
00:18:25.640 --> 00:18:30.000
is it still using proxy or it
uses signals. But a good thing out
237
00:18:30.000 --> 00:18:34.160
of this all new implementation which channel
it did? Signals are going to be
238
00:18:34.200 --> 00:18:40.480
part of JavaScript now, so it's
it's actually being implemented as part of Java's
239
00:18:40.480 --> 00:18:45.119
specification. So now all frameworks have
like most of the frameworks have agreed that
240
00:18:45.200 --> 00:18:51.039
they need signals because they are using
it. So Ryan Carnea from solid Chas
241
00:18:51.119 --> 00:18:56.799
he has been what he was the
main person behind driving all this and soon
242
00:18:56.920 --> 00:19:00.359
like it will be available in your
browser. So that's that's the future.
243
00:19:00.359 --> 00:19:06.640
I think I think everyone will be
using signals interest everyone. That's a pretty
244
00:19:06.720 --> 00:19:11.799
it's a pretty big state because because
it's part of specification, right, that's
245
00:19:11.799 --> 00:19:17.240
what. Because it's available in new
browser now, So even though it's avaliable
246
00:19:17.240 --> 00:19:19.559
to everyone, and I think most
primworks are already using it apart from react
247
00:19:19.839 --> 00:19:23.519
and until unless they come with some
come up with some solution. But I
248
00:19:23.559 --> 00:19:30.200
think, uh, yeah, all
the frameworks are actually already on signals or
249
00:19:30.519 --> 00:19:33.000
give it, give it intake because
if you say the act not to react,
250
00:19:33.039 --> 00:19:38.279
but PDIAC already uses signals as but
so all the cool kids are using
251
00:19:38.319 --> 00:19:42.599
signals. Huh is that it exactly? Yeah, I've heard about it,
252
00:19:42.720 --> 00:19:48.279
and I know my buddy Eric Hanschad
uh did a video with signals in view
253
00:19:48.319 --> 00:19:52.400
and uh, I'm not a big, you know, under the hood guy
254
00:19:52.880 --> 00:19:56.039
normally, but from reading about it, it's it's pretty simmar of the proxies.
255
00:19:56.440 --> 00:20:02.279
If I'm understanding correctly, there the
reuses for me for handling reactivity because
256
00:20:02.319 --> 00:20:06.079
you mentioned r x JAS and you
know, Chuck. To be honest,
257
00:20:06.119 --> 00:20:08.480
I always have flashbacks of some of
the other podcasters Ward and John where they
258
00:20:08.480 --> 00:20:14.400
were talking about r x JAS and
they dived right in without explaining what observables
259
00:20:14.440 --> 00:20:17.440
were. And it took me a
while to get my head around it.
260
00:20:18.319 --> 00:20:23.119
But are you basically saying that observables
is state management, because when I asked
261
00:20:23.119 --> 00:20:27.400
about state management, you brought up
r X. JAS was the solution for
262
00:20:27.440 --> 00:20:30.880
a long long time. So because
I'm had first class support for our XS,
263
00:20:32.160 --> 00:20:37.000
so every everything was observable. For
example, if I'm working with the
264
00:20:37.079 --> 00:20:41.079
rounter, I mean, so every
event is nothing but an observable. If
265
00:20:40.960 --> 00:20:45.640
I'm working with that's THEDP, so
it's nothing but an observable. So it
266
00:20:45.680 --> 00:20:48.759
was like they had like first class
support from Davon and that's why the women
267
00:20:48.799 --> 00:20:53.079
started like building the solution around XS. So if you see nng X,
268
00:20:53.880 --> 00:21:00.480
which which I mentioned, it was
nothing but like HGS plus that's and it
269
00:21:00.559 --> 00:21:06.119
was just around it. But now
as we have signals, so NJ also
270
00:21:06.160 --> 00:21:08.920
came up with a new left city
called JAIC signals, which is nothing but
271
00:21:10.000 --> 00:21:14.200
state management using signals. So to
the end developer, then, is the
272
00:21:14.319 --> 00:21:18.400
use of signals versus observables? Is
it pretty transparent or is it a change
273
00:21:18.440 --> 00:21:22.759
that you have to make in your
in your front end code to and how
274
00:21:22.799 --> 00:21:27.880
you work with them. Actually,
that's it's a very good question because right
275
00:21:27.920 --> 00:21:33.039
now community is very h I mean
there are things which are to be very
276
00:21:33.039 --> 00:21:37.480
complicated, for example, but I
just had a pretty good use case,
277
00:21:37.519 --> 00:21:40.359
right, so very bad. You
have events like where you want steam of
278
00:21:40.440 --> 00:21:42.160
data, you should go with that
exagist but most of the time you don't
279
00:21:42.160 --> 00:21:48.279
need it. Right on why you
need a continuous stream of data in your
280
00:21:48.319 --> 00:21:52.759
front And of course there are use
cases but not always. And that's where
281
00:21:52.799 --> 00:21:56.319
actually people wanted some easy solution,
right, and the signals fills that gap.
282
00:21:56.359 --> 00:22:00.920
But now you have to move,
like you have to change your mindset
283
00:22:02.039 --> 00:22:04.799
from using rx as to signals.
That's complicated because a lot of developers are
284
00:22:04.799 --> 00:22:11.000
still confused, like where should your
data fitching go? Right? I mean
285
00:22:11.119 --> 00:22:12.960
you have to at least you have
to face the data at some point.
286
00:22:14.000 --> 00:22:18.319
It's time, right, And that's
where things are like I think this is
287
00:22:18.359 --> 00:22:22.359
something which will which will be easy
or not easy, but it will be
288
00:22:22.400 --> 00:22:26.200
easy to understand for the developers.
After some people or most of the enterprises
289
00:22:26.240 --> 00:22:30.599
like enterprises start adopting signals, and
they come up with the use cases where
290
00:22:30.640 --> 00:22:34.599
they needed signals and where they don't
need it signals. Right now, it's
291
00:22:34.640 --> 00:22:41.920
like most of the team members from
Angler team and the g d community and
292
00:22:42.200 --> 00:22:45.839
some of the people who have already
worked on signals, they're trying to teach
293
00:22:45.920 --> 00:22:51.240
people that how we use signals.
But it's it's it's good to The adoption
294
00:22:51.319 --> 00:22:52.599
part is going to take some time
here. As you said, yes,
295
00:22:52.640 --> 00:22:56.160
there are people like even I was
confused, like why and where to use
296
00:22:56.200 --> 00:23:00.680
what? But I think after reading
some of the blogs, after eating some
297
00:23:00.759 --> 00:23:04.240
of the like after watching some of
the videos around signals, it is becoming
298
00:23:04.279 --> 00:23:10.000
easier or like easy to understand what
where should I where should I use signals,
299
00:23:10.039 --> 00:23:11.960
and where I should use r XS. It's not like RXS is going
300
00:23:12.000 --> 00:23:17.400
to go away. You know,
as of today, like one percent of
301
00:23:17.400 --> 00:23:21.240
the code based uses r excs.
So just think about it, like removing
302
00:23:21.279 --> 00:23:25.079
the RXS totally. Its it's not
possible almost right, So people have to
303
00:23:25.720 --> 00:23:30.000
think about like this is where I
really like angler that you don't have to
304
00:23:30.200 --> 00:23:34.759
adopt like new feature fully, you
don't have to replace your entire code base,
305
00:23:36.039 --> 00:23:40.160
even for signals. It's like you
can start writing your new code with
306
00:23:40.279 --> 00:23:44.640
signals and you can keep your existing
code as it is and it will still
307
00:23:44.680 --> 00:23:48.880
work. And then if you want
GODOC, you can do incremental migration for
308
00:23:48.960 --> 00:23:52.279
your existing code base, right,
So that's that's a very good thing about
309
00:23:52.319 --> 00:23:56.519
so you don't have like devilots don't
have to be like development like when they
310
00:23:56.519 --> 00:24:02.359
are adopting new features that okay,
should I read everything micropical signals and then
311
00:24:02.440 --> 00:24:06.160
use it exist? But that's not
deep. So if you'll make your life
312
00:24:06.200 --> 00:24:11.599
a little pretty easier if you are
working on enterprise and you already have exists
313
00:24:11.599 --> 00:24:17.359
everywhere ipel this question, yeah,
I mean my understanding, you know,
314
00:24:17.680 --> 00:24:23.200
I've never directly used observables myself with
the observable pattern, but my understanding from
315
00:24:23.240 --> 00:24:27.319
having listened to podcasts or you know, read about it, is that you
316
00:24:27.440 --> 00:24:33.200
really have to adjust your code to
using observables. It's not like just plug
317
00:24:33.200 --> 00:24:36.960
and play, right. You really
got to write your code in a different
318
00:24:36.960 --> 00:24:41.480
structure to use an observable versus not
using it, you know, for lack
319
00:24:41.519 --> 00:24:47.480
of a better term. So it
would seem that moving from observables to signals
320
00:24:47.480 --> 00:24:52.519
would not be a minor undertaking.
It won't be sure, I mean,
321
00:24:52.880 --> 00:24:56.440
if you're using enngetics, I mean
most people do. As a setlic one
322
00:24:56.799 --> 00:25:03.720
in six STAPs in actually nine uses
sign x. So NNGX has some new
323
00:25:03.799 --> 00:25:08.720
functions which are available where you can
if you're if you're savings observables, you
324
00:25:08.720 --> 00:25:12.960
can just convert them to signals so
they have new functions available with the new
325
00:25:12.960 --> 00:25:18.119
releases, so it will make it
can make your life or migration a little
326
00:25:18.119 --> 00:25:22.759
bit easier. But if you have
code base with our egas, I would
327
00:25:22.759 --> 00:25:26.240
suggest don't go there, like at
the start, if you're if you want
328
00:25:26.240 --> 00:25:30.119
to adopt signals, start adopting with
new code which you will write and then
329
00:25:30.160 --> 00:25:33.440
eventually once you have time, which
which is hard, right, I mean,
330
00:25:33.480 --> 00:25:37.319
this is hard because you have to
show the value to your product more
331
00:25:37.519 --> 00:25:41.160
to your company. That why we
are migrating to signals. So just hold
332
00:25:41.200 --> 00:25:45.519
on there and once you get time
and money and energy, then go ahead
333
00:25:45.519 --> 00:25:49.720
and start adopting signals. A good
thing about Angle, as I said,
334
00:25:49.759 --> 00:25:55.119
like they always take care of developers
as well. They focus more on developer
335
00:25:55.160 --> 00:26:00.440
experience, so they have been trying
to provide new fund which can make your
336
00:26:00.759 --> 00:26:06.599
migations much smoother. For example,
in Angler WHENEFA, you have to do
337
00:26:06.640 --> 00:26:11.079
input and output right, so you
have input decorator and output decorator. But
338
00:26:11.319 --> 00:26:15.079
now you have input and output as
available as signals. So they are just
339
00:26:15.160 --> 00:26:18.200
function which gives you signals. Now, so of course once you are once
340
00:26:18.200 --> 00:26:22.000
you think that, okay, these
are places where I don't need and probably
341
00:26:22.039 --> 00:26:26.480
a stream hos like just signals would
be sufficient, you can just start replacing
342
00:26:26.519 --> 00:26:33.160
them with the new function and they're
also uh. A new Anglo jay angle
343
00:26:33.240 --> 00:26:40.519
slash are exist in the rock linely
which is created especially for interoperability between signals
344
00:26:40.559 --> 00:26:45.799
and directions because it's not possible to
just rewrite entire code right to make that
345
00:26:45.839 --> 00:26:48.880
magnition smooth. They also have given
some functions which are available as part of
346
00:26:48.920 --> 00:26:56.160
the frame of itself. I also
yeah, having having played with both,
347
00:26:56.440 --> 00:27:02.799
I found that and I can't art
what the difference is per se, but
348
00:27:02.880 --> 00:27:07.319
it feels like in some instances the
way that observables work and the way that
349
00:27:07.440 --> 00:27:11.079
you know you you kind of put
a stream of data through it and you
350
00:27:11.119 --> 00:27:14.920
know it updates or transforms, you
know, depending on what you need,
351
00:27:15.720 --> 00:27:19.359
versus the way that signals work,
you know, where effectively you update a
352
00:27:19.480 --> 00:27:23.799
value and then anything that subscribed to
it gets the you know, gets the
353
00:27:23.880 --> 00:27:33.480
result. Some some data and some
youI seem to lend themselves better to one
354
00:27:33.559 --> 00:27:38.319
or the other, and so I
also see that. I think anybody who's
355
00:27:38.359 --> 00:27:44.519
thinking I'm just going to migrate all
of my observables to signals, you may
356
00:27:44.599 --> 00:27:48.799
be making things harder in some cases. You're definitely going to make things easier
357
00:27:48.839 --> 00:27:52.240
in other cases. But you know, I think there's going to be some
358
00:27:55.599 --> 00:28:00.039
version of kind of getting a good
feel for where signals shine and where you
359
00:28:00.079 --> 00:28:03.000
may just want to keep doing things
the way you're doing them. By the
360
00:28:03.039 --> 00:28:07.680
mist thing, just to mention you
said you never worked with observables, observables
361
00:28:07.720 --> 00:28:11.440
are actually going to be part of
jobs specification as well. They're already available,
362
00:28:11.880 --> 00:28:15.680
so they're going there there behind the
future flat but it's soundready available.
363
00:28:15.759 --> 00:28:21.920
So it will make probably uh yeah, it will probably increase the adoption maybe
364
00:28:22.119 --> 00:28:26.960
for observables. And it will also
make one thing really good, which is
365
00:28:26.799 --> 00:28:30.559
the rg IS library. Right,
So rges can just remove observables and just
366
00:28:30.799 --> 00:28:36.799
can be a place where you just
you just have operators. So it will
367
00:28:36.799 --> 00:28:40.920
be like win win for the committee
as well as the RIGS has been driving
368
00:28:41.200 --> 00:28:44.759
this library for a long long time. Yeah, we've had Ben on the
369
00:28:44.799 --> 00:28:49.839
show before to talk about RGS.
Now, one of the things I wanted
370
00:28:49.839 --> 00:28:56.599
to go back to one thing you'd
mentioned earlier was regarding data fetching between observables
371
00:28:56.599 --> 00:28:59.680
and signals not being moved. I
know, you know, working in a
372
00:28:59.759 --> 00:29:07.519
huge view front end enterprise application,
you know vieux is where we do a
373
00:29:07.519 --> 00:29:10.720
lot of our data fetching in order
to keep the back end in the front
374
00:29:10.759 --> 00:29:15.759
end and synk. What are the
issues with the data fetching that you mentioned
375
00:29:15.799 --> 00:29:18.559
earlier, whether it's a change or
whether it's an issue or all. And
376
00:29:18.640 --> 00:29:22.519
it was just off hand and I
wanted to clarify that. And if you
377
00:29:22.559 --> 00:29:26.039
see, like data fetching is always
a simpfulness, right, but signal signals
378
00:29:26.039 --> 00:29:30.440
have simpleness, So that's where you
have to really like understand what you should
379
00:29:30.440 --> 00:29:33.960
be using there. And now it's
just was a very good use because you
380
00:29:34.000 --> 00:29:37.400
can just say, okay, it's
an observable because it's a stream of data,
381
00:29:37.480 --> 00:29:41.519
and then you can just wrap it
inside on observable and then the stream
382
00:29:41.559 --> 00:29:45.880
which is coming from your back end, but in signals as it's in a
383
00:29:45.920 --> 00:29:52.519
symchronous synchronous it's if you try to
directly take the data like in Angler,
384
00:29:52.599 --> 00:29:56.400
we use something as a static client
service. So if you try to just
385
00:29:56.519 --> 00:30:00.839
trap or take the data from a
STIC client and sign it to a signals.
386
00:30:00.880 --> 00:30:04.119
It will fail. It will fail
because it's it's the a simplest function,
387
00:30:04.200 --> 00:30:08.680
which is restunning an object to a
syndronus think, so it won't be
388
00:30:08.680 --> 00:30:12.000
able to get the data. So
that was where of course when I tried
389
00:30:12.039 --> 00:30:17.559
it, I was really confused what
should I do here? And luckily I
390
00:30:17.599 --> 00:30:21.000
was actually experimenting with NNGRX, so
NJX can fill that gap for me.
391
00:30:21.119 --> 00:30:25.400
I don't have to focus too much
on that, and I just use the
392
00:30:25.440 --> 00:30:30.119
existing NGRX functionality and just use a
new function which they have evens. So
393
00:30:30.160 --> 00:30:33.440
it's called two signals celic signals.
So there is a function called select signal
394
00:30:33.480 --> 00:30:38.720
so which can wrap up or give
your stream and convert it to a signal
395
00:30:41.279 --> 00:30:42.160
without doing anything. I mean,
you don't have to do much. You
396
00:30:42.240 --> 00:30:48.839
just have to replace your functions which
was earlier observable and just called to select
397
00:30:48.839 --> 00:30:52.960
signal. That's a that'stant. So
that's one thing where like a lot of
398
00:30:52.000 --> 00:30:56.960
people, a lot of new developers
who will start atopting signals will probably struggle.
399
00:30:57.200 --> 00:31:00.640
So okay, let me make sure
you stand this. Because the issue
400
00:31:00.720 --> 00:31:04.920
is a synchronous is the way to
do the data fetching at least you know
401
00:31:04.960 --> 00:31:07.640
what I'm used to, because you
can load your page and not have to
402
00:31:07.680 --> 00:31:14.279
wait for synchronous function So are you
saying that the n g r X wrapper
403
00:31:14.400 --> 00:31:21.759
around signals gives you the capability to
a synchronous data stetching there there's some yeah,
404
00:31:22.160 --> 00:31:26.839
good, Yeah, that's my question. Yeah, yeah, songs something
405
00:31:26.839 --> 00:31:30.519
called Jeric effects, which is which
is made, which is made, which
406
00:31:30.559 --> 00:31:38.000
was made for actually all this simpleness
events or any any functionality which which has
407
00:31:38.119 --> 00:31:41.799
effects, right, which causes an
effect. So it was there from table
408
00:31:42.079 --> 00:31:47.160
and they made it like more better, like two or to support signals.
409
00:31:47.799 --> 00:31:51.279
So they just get it this new
SELP signal functionality, so you can just
410
00:31:51.319 --> 00:31:55.319
easily as I said, like people
who are using ng ng x, they
411
00:31:55.359 --> 00:32:00.240
will have like a very not much
complicated time getting to signals. Fact,
412
00:32:00.839 --> 00:32:05.960
people who are just using plain at
exists. Of course, the internal celebrity
413
00:32:06.000 --> 00:32:10.119
which I mentioned amiability and angulal is
that David still which offers the functionality to
414
00:32:10.160 --> 00:32:15.920
convert signals to observable and observable to
signal. Even I think enetics is using
415
00:32:15.079 --> 00:32:20.599
that internity, but you still have
to write some code. So from a
416
00:32:21.640 --> 00:32:27.039
market standpoint, I'm not sure if
this is something you're aware of. Where
417
00:32:27.039 --> 00:32:32.680
do you see Angler being used?
Ranging from the small one off, you
418
00:32:32.720 --> 00:32:40.519
know, hobby project up to enterprise
applications. My perception, just from various
419
00:32:40.559 --> 00:32:45.119
data points that I've seen around the
web is that it tends to be more
420
00:32:45.160 --> 00:32:51.079
of an enterprise application tool as compared
to a smaller hobbyist, you know,
421
00:32:51.160 --> 00:32:57.119
one off type of thing. For
instance, Uh, my fire department uses
422
00:32:57.480 --> 00:33:01.680
an application and that we use for
tracking all over incidents and medical calls.
423
00:33:01.680 --> 00:33:06.400
And it's very large, and it's
you know, it's it's a company that
424
00:33:07.880 --> 00:33:13.599
you know that provides instances for different
departments and it's based on on Angler.
425
00:33:13.640 --> 00:33:15.599
Excuse an angler? You can tell
by looking in the a lot of n
426
00:33:15.640 --> 00:33:27.319
G stuff. What's your perception of
where this tool is used in that spectrum?
427
00:33:27.720 --> 00:33:30.799
When you say Angler is used in
enterprises, yes it is. And
428
00:33:30.880 --> 00:33:36.559
that's that this is where actually team
wants to change the perspective perspectly now right
429
00:33:37.000 --> 00:33:39.319
because for a longer pit of time, I mean, people were thinking about
430
00:33:39.400 --> 00:33:44.599
like the act as next who has
nuxt so to do all the s?
431
00:33:45.240 --> 00:33:50.920
And it makes like very easy to
play U a bit like new new frame
432
00:33:50.960 --> 00:33:53.680
books. But when it comes to
Angler, I mean that it was there
433
00:33:53.720 --> 00:33:57.279
was no clear clear way, right, I mean there will looks so many
434
00:33:57.319 --> 00:33:59.200
things which you have to learn.
For example, Alex, yes, you
435
00:33:59.240 --> 00:34:01.920
have to learn about just you have
to learn about change section. And now
436
00:34:02.200 --> 00:34:07.799
actually Angler is trying to move up
there, and the whole idea was although
437
00:34:07.839 --> 00:34:13.079
the whole idea is actually to get
more adoption to the new developers as well.
438
00:34:13.559 --> 00:34:16.840
That's the idea. So new dimples
can come easily and start playing around
439
00:34:16.960 --> 00:34:21.719
with tanglags, right, rather than
focusing more on concepts betaric shares or officer
440
00:34:21.800 --> 00:34:29.960
pupils for what you call and even
modules. So now I think more people
441
00:34:30.000 --> 00:34:36.519
have started talking about Angler because it's
becoming more easy for new developers. I
442
00:34:36.519 --> 00:34:38.559
would not say z of course,
there's nothing called nothing in easy, nothing
443
00:34:38.599 --> 00:34:44.960
easy in actually programming. That's that's
just a buzzword. But I would say
444
00:34:45.440 --> 00:34:51.440
as like Anglo prows or the new
feature comes in and it uh the less
445
00:34:51.519 --> 00:34:54.760
number of concepts which you have to
learn about, it will it will grow
446
00:34:54.800 --> 00:35:00.679
in the adoption as well. And
with introducing signals, which is being adopted
447
00:35:00.679 --> 00:35:04.360
by many frameworks already saying there are
frameworks work who are using it. I
448
00:35:04.400 --> 00:35:07.760
think it will only go in the
right direction and more people are more early
449
00:35:08.400 --> 00:35:15.360
early stage companies will also adopt Angler, especially now the buzz around Angler plus
450
00:35:15.360 --> 00:35:19.440
base, which which will make it
a better framework. I think one of
451
00:35:19.440 --> 00:35:22.519
the best, I would say when
it comes to a scile, because this
452
00:35:22.719 --> 00:35:27.960
has been already being tested heavily within
within Google. They have been using it
453
00:35:28.000 --> 00:35:30.719
for a long long time. Even
Google Search is driven by wiz and once
454
00:35:30.760 --> 00:35:36.800
that functionality comes to Angler, I
think there is no other framework which stands
455
00:35:36.840 --> 00:35:38.119
a chance. I would say,
as as as I said, like I
456
00:35:38.480 --> 00:35:40.840
like, I like hort text,
and everyone loves that hot text. Right,
457
00:35:40.840 --> 00:35:45.679
So this is my outtake that everyone
will be doing Angler if they think
458
00:35:45.679 --> 00:35:51.280
about s as a well, Okay, I'll dispute that just based on my
459
00:35:51.400 --> 00:35:54.440
knowledge of other frameworks. I'm just
curious by way of a little background and
460
00:35:54.679 --> 00:36:00.400
apologies if I miss this earlier.
Uh, what experience in working with View
461
00:36:00.480 --> 00:36:04.719
or React or Spelt or some of
the other frameworks as compared to Angular.
462
00:36:07.519 --> 00:36:09.079
I think I started with Angler jas
early, as I said, and then
463
00:36:09.079 --> 00:36:13.840
as I started learning the act,
and then as soon as I started writing
464
00:36:13.920 --> 00:36:15.840
Jas. I said like, okay, this is not the framework I want
465
00:36:15.840 --> 00:36:21.239
to learn, and then who felt
like very similar to Anglo jas. So
466
00:36:21.320 --> 00:36:24.440
I did something. But once I
wrote typescript, right, So, as
467
00:36:24.480 --> 00:36:28.760
I said, in twenty seventy,
no one was doing type scrip and I
468
00:36:29.559 --> 00:36:31.760
started writing Angle because of typescript.
It's sort of it was not like I
469
00:36:31.840 --> 00:36:37.440
liked Angler and I started doing typescript
because I was adopinated. So I came
470
00:36:37.440 --> 00:36:40.840
from a dotinate background all the type
language, and I really like typescript.
471
00:36:40.880 --> 00:36:43.440
So I was like, okay,
this is the line, this is the
472
00:36:43.480 --> 00:36:45.920
frame book. We supports typescript,
so I'm going to just do this.
473
00:36:45.440 --> 00:36:50.119
Of course I learned who I mean
when it was WODO. I think I
474
00:36:50.119 --> 00:36:52.159
did a little bit of WOO three
as well as FCS and all those things.
475
00:36:52.559 --> 00:36:55.760
But yeah, never worked on it. Mostly my work has been around
476
00:36:55.800 --> 00:37:00.559
Angler JAS and most of them.
Now I do an ex toroths. But
477
00:37:01.360 --> 00:37:05.760
so, what are the things coming
out next in Angular that you're excited about
478
00:37:05.960 --> 00:37:10.840
or that people should know about.
Of course, one thing which was as
479
00:37:12.039 --> 00:37:14.440
like there are a few concepts which
is hard to learn about, right,
480
00:37:14.440 --> 00:37:16.639
and one of them was changed section. So if you if you remember like
481
00:37:16.960 --> 00:37:22.079
Charles, like early Anglo Jas had
ala JS one had one issue, right,
482
00:37:22.199 --> 00:37:24.559
which was of course change sections,
so it has it used to like
483
00:37:24.599 --> 00:37:28.599
to all these checks ten times for
nobodies, right, and then ang the
484
00:37:28.679 --> 00:37:31.119
t T two came and team said, okay, we'll try to avoid all
485
00:37:31.159 --> 00:37:36.000
this loops which used to run but
in still there was something known as the
486
00:37:36.039 --> 00:37:42.559
inspection and it used to like run
in more more faster way than the anglage.
487
00:37:43.320 --> 00:37:45.800
But there was something called Enchi zone, so we had we still have
488
00:37:45.840 --> 00:37:51.559
that of course, so en she
zone was actually responsible for catching all these
489
00:37:51.559 --> 00:37:54.960
simpleness defense and then re rendering everything, right, I mean it's it's not
490
00:37:55.039 --> 00:38:00.719
basically rerendering, it's just yeah,
creating the proxy not proxy, but it's
491
00:38:00.760 --> 00:38:07.559
actually rewriting what has been changed.
And this was a big problem when it
492
00:38:07.599 --> 00:38:13.199
comes to enterprises because as Steve also
mentioned, like there is saying that Angler
493
00:38:13.280 --> 00:38:17.880
is already like always being preferred for
enterprise application. True, but when your
494
00:38:17.880 --> 00:38:22.840
application grows a lot and this change
section like runs most time most of the
495
00:38:22.880 --> 00:38:29.159
times, your application becomes slow.
So Angler also wanted to tackle this for
496
00:38:29.199 --> 00:38:32.880
a very long long time, and
there were like multiple discussions around it.
497
00:38:32.920 --> 00:38:37.280
How to do it how to remove
soon. And finally, signals scheme.
498
00:38:37.320 --> 00:38:39.679
As I said, like signals is
a big change because it is also going
499
00:38:39.679 --> 00:38:45.679
to change the way change section works
in Angler. So now the change section
500
00:38:45.760 --> 00:38:49.679
can be granular. What I mean
by granular is a component can have its
501
00:38:49.679 --> 00:38:52.800
own change section, so you don't
have to like run change section on entire
502
00:38:52.800 --> 00:38:57.440
application. I can say, okay, if there is a component down the
503
00:38:57.480 --> 00:39:01.639
tree somewhere, and it can have
just its own state using signals. So
504
00:39:01.679 --> 00:39:06.679
now Signal is going to maintain that
for us. And with handler eighteen that
505
00:39:07.119 --> 00:39:12.519
is already shipped, So now you
can have change section without ang zone and
506
00:39:12.960 --> 00:39:15.400
at a granular level, it's not
like going to impact your entire application.
507
00:39:15.480 --> 00:39:20.360
This is very important for me as
well, because of course I work in
508
00:39:20.480 --> 00:39:23.679
enterprise, have a very large application, and sometimes this causes an issue,
509
00:39:23.719 --> 00:39:28.719
right performance portal nets and then you
have to cure show white screens to your
510
00:39:28.800 --> 00:39:31.199
end users. And no one likes
white white screens, right I mean,
511
00:39:31.440 --> 00:39:35.920
of course as a user, if
I'm using it, I will hate it.
512
00:39:36.199 --> 00:39:38.760
Uh, and uh that's that's going
to be an amazing thing. But
513
00:39:38.920 --> 00:39:43.960
apart from this, like there are
a few features I will name and for
514
00:39:44.000 --> 00:39:50.840
example standardone components so no motives,
models are optional and standard APIs for UH
515
00:39:51.440 --> 00:39:53.639
for example, like for st TP
we had stor to de client. For
516
00:39:53.760 --> 00:39:59.440
router we had rou router modules.
So all these are actually becoming nothing but
517
00:40:00.000 --> 00:40:01.960
functions. So they are like just
a function which you can register and then
518
00:40:02.039 --> 00:40:08.880
use it signals of course, and
then you have, of course with all
519
00:40:08.920 --> 00:40:13.400
these signals and RXS thing, you
also have the top functions, so it
520
00:40:13.440 --> 00:40:19.599
will make your mication smooth and then
Granule level change diction. But the first
521
00:40:19.639 --> 00:40:24.000
thing about Angle which I like is
angy update. So if you have worked
522
00:40:24.000 --> 00:40:28.440
in Angler for some time, you
know, uh, there's one thing which
523
00:40:28.480 --> 00:40:32.280
Angler team does. They never ship
a breaking change. What I mean by
524
00:40:32.480 --> 00:40:36.760
they never ship breaking change. Of
course there are breaking changes which happens,
525
00:40:37.159 --> 00:40:42.239
but Angule team always ships the mignation. So for example, if they're introducing
526
00:40:42.239 --> 00:40:45.000
a breaking change, they will also
ship a migration script to you which you
527
00:40:45.000 --> 00:40:49.440
can run and migrate your entire courts. And this is something which is tested
528
00:40:49.559 --> 00:40:52.760
like on the enterprise application. It's
not something which is tested on your demo
529
00:40:52.800 --> 00:40:59.280
apps. So it's always it always
works. Most of the the propers out
530
00:40:59.280 --> 00:41:02.559
there who have been using amulal they
know that Angler is easy to migrate because
531
00:41:02.559 --> 00:41:07.920
of this micration functionality which is provided
out of the box. So you as
532
00:41:07.920 --> 00:41:09.880
then like if you put enterprises what
they care about, like, of course
533
00:41:09.920 --> 00:41:15.199
they want to make sure that the
framework they are using is up to date
534
00:41:15.719 --> 00:41:20.000
because there are fund there are companies
which cannot tolerate vulnerabilities, and if your
535
00:41:20.039 --> 00:41:22.719
packages are old, of course they
will have vulerabilities right at some point of
536
00:41:22.800 --> 00:41:27.360
the time. And then it helps
you in that as well because they're offering
537
00:41:27.360 --> 00:41:31.840
this automatic migration. And this automatic
migration is not only for enterprise applications.
538
00:41:32.360 --> 00:41:37.599
There are like millions of developers who
are building libraries who are shipping packages for
539
00:41:37.679 --> 00:41:42.039
Anguler. It also works for them. So for example, if I'm maintaining
540
00:41:42.079 --> 00:41:45.320
a library, I can just run
inng migrate as engy update and then I
541
00:41:45.320 --> 00:41:51.239
can migrate my library to the next
version and ship a new build to like
542
00:41:51.880 --> 00:41:57.320
how how many numbers of users I
have? And that's an amazing thing because
543
00:41:57.360 --> 00:42:00.639
this is something which not many frameworks
offer in case they're moving ahead. So
544
00:42:00.719 --> 00:42:06.440
Angular team is making sure that they're
moving ahead, but they're also making sure
545
00:42:06.880 --> 00:42:10.000
the developers who have been using your
frameworks. They're also able to move ahead
546
00:42:10.360 --> 00:42:15.519
without like going into trouble with this, like the migration is fooled. But
547
00:42:16.159 --> 00:42:22.360
the funny problem with migation is you
may get struck because not of Angler framework,
548
00:42:22.480 --> 00:42:24.559
but the third party libraries. It's
always like that, right, I
549
00:42:24.559 --> 00:42:30.039
mean, if you use who or
React, it's always not React or who,
550
00:42:30.079 --> 00:42:32.920
but it's third party libraries which you
use, which causes issues some time.
551
00:42:34.119 --> 00:42:36.800
And the same applies for Anglers.
So you have to make sure that
552
00:42:37.159 --> 00:42:42.400
you have less number of third party
dependencies as much as you can. Of
553
00:42:42.400 --> 00:42:45.239
course there are things which you cannot
avoid, but try to trust on the
554
00:42:45.239 --> 00:42:49.840
libraries which are already which are often
updated, right because as I said,
555
00:42:49.880 --> 00:42:52.199
like the migration path is very easy. You can just do and G update
556
00:42:52.239 --> 00:42:57.880
and then you are migrated with an
expression, which is very good. And
557
00:42:59.199 --> 00:43:02.880
another thing is backward compatibility. So
as I said, like, of course
558
00:43:02.880 --> 00:43:07.480
we are going towards signals, we
are going towards stand alone components, we
559
00:43:07.519 --> 00:43:13.760
are going up towards stand alone APIs. But you can still go ahead and
560
00:43:13.760 --> 00:43:17.519
write a code like with your existing
code base and start adopting these new features,
561
00:43:19.039 --> 00:43:23.719
which which is really cool about analytic
because you can just leave your old
562
00:43:23.800 --> 00:43:28.280
code best as it is, so
you don't have to like rush into migration
563
00:43:28.400 --> 00:43:30.760
to adopt this new feature, and
then you can throw this parallet. So
564
00:43:31.679 --> 00:43:37.000
start writing your like new code with
signals or stand alone component or with standardone
565
00:43:37.000 --> 00:43:39.719
APIs, and then start slowly,
slowly migrating your previous code, which is
566
00:43:40.119 --> 00:43:44.000
which most of the developers needs,
right. I mean they don't want to
567
00:43:44.039 --> 00:43:49.119
actually rush and adopt new new features
because just they cannot do without them.
568
00:43:49.280 --> 00:43:52.639
For example, if you have to
just strike adopt signal into my whole code
569
00:43:52.639 --> 00:43:55.239
base first before adopting signals, it
will make my life is life harder.
570
00:43:55.400 --> 00:44:04.559
Even so, those are few amazing
things which happening in it very cool,
571
00:44:07.039 --> 00:44:14.480
Steve, Did you have any other
questions? I guess I'm just curious about
572
00:44:14.480 --> 00:44:20.800
this migration tool because I'm thinking what
exactly does this target? Because I mean,
573
00:44:20.840 --> 00:44:24.599
you could have the same code written
fifty different ways and fifty different applications,
574
00:44:24.599 --> 00:44:29.320
and trying to have a one size
fits all tool that's autogmatically going to
575
00:44:29.360 --> 00:44:35.360
migrate code seems like you know,
a whole different framework within itself. So
576
00:44:35.440 --> 00:44:42.079
I'm just curious as to what exactly
does this this migration tool that you're talking
577
00:44:42.119 --> 00:44:47.400
about updates to just look for certain
certain code snippets that you know might be
578
00:44:47.440 --> 00:44:52.199
of an updated feature and try to
convert it for you. Or because I
579
00:44:52.360 --> 00:44:55.760
could just imagine something that you were
written and then breaking things, you know,
580
00:44:55.880 --> 00:44:59.760
somewhere down the line. Obviously you'd
have like tests and you know,
581
00:44:59.760 --> 00:45:02.519
maybe type to catch certain things,
but that's not going to catch everything.
582
00:45:04.159 --> 00:45:09.199
So what exactly does this migration to
do for you? So as you said,
583
00:45:09.239 --> 00:45:13.480
like people can write the code into
fifty different pasts, that's not true
584
00:45:13.480 --> 00:45:19.039
for Anglers. So Angler has like
very good structure to write the coorte from
585
00:45:19.119 --> 00:45:22.000
day one. So if you follow
those structure, for example, if you
586
00:45:22.039 --> 00:45:25.599
have a component class and then you
follow the patterns which are actually provident Banglar,
587
00:45:27.000 --> 00:45:30.119
there are not fifty different ways to
do this in Angler code based basically,
588
00:45:30.440 --> 00:45:36.320
and that's why actually Angler it also
makes the life easier for Angler team
589
00:45:36.320 --> 00:45:38.159
because they know that okay, this
is the code which we have to migrate.
590
00:45:38.360 --> 00:45:40.719
For example, as I said,
standardone component, right, so there
591
00:45:40.760 --> 00:45:46.280
is a migration which can convert your
old cote which has Angler modules to stand
592
00:45:46.280 --> 00:45:51.159
alone. Because we know that everyone
was using Model then there is no other
593
00:45:51.199 --> 00:45:54.719
way to do this. And that's
where your your migrations can just run and
594
00:45:54.719 --> 00:45:58.519
say, okay, this is the
component we need to convert to stand alone.
595
00:45:59.679 --> 00:46:02.039
A bit another thing, so if
you if if you are coming from
596
00:46:02.280 --> 00:46:07.000
WU right, so you have something
called who for or something we we four
597
00:46:07.159 --> 00:46:13.199
or we if right, so those
are direct and yeah, so we also
598
00:46:13.239 --> 00:46:16.519
had directives, so of course we
have chief and four. And now anger
599
00:46:16.639 --> 00:46:22.480
is actually has has adopted something called
control flow syntax. So control flow syntax
600
00:46:22.599 --> 00:46:25.760
is something which says at the retief
uh and then at the red four and
601
00:46:25.800 --> 00:46:30.199
then you can just write it without
without need for any extra apple which is
602
00:46:30.280 --> 00:46:35.679
uh, which is I think adopted
from swelled if I'm not wrong, so
603
00:46:35.840 --> 00:46:38.880
it has something similar. And then
to migrate, we know that okay,
604
00:46:38.880 --> 00:46:43.760
there is something called n g if
and four which already exists anral migration.
605
00:46:43.840 --> 00:46:45.960
What it does is it removes and
four n g if with the new control
606
00:46:46.000 --> 00:46:51.320
for syntax behind. And if I
talk about like there is a new magazine
607
00:46:51.360 --> 00:46:54.480
coming from STTP client module, so
everyone uses a STIPI client module, there
608
00:46:54.559 --> 00:46:57.880
is not that way, so they
know like okay, we have to just
609
00:46:58.000 --> 00:47:02.320
plow a stipre client module with a
new new fund Chinese often so this this
610
00:47:02.440 --> 00:47:07.239
makes the life vizier for many of
the tub represents because if I change a
611
00:47:07.320 --> 00:47:10.679
job, I know that this was
going to be detained in the same way
612
00:47:10.679 --> 00:47:15.760
as it was in my bigbas shop. So that makes life zil for the
613
00:47:15.800 --> 00:47:19.599
frement, even including the library of
Autus, because they know that this is
614
00:47:19.599 --> 00:47:25.400
the believer that like in which my
librity will be used. So in other
615
00:47:25.440 --> 00:47:32.519
words, the fact that that Angler
is very highly opinionated in structure is what
616
00:47:32.639 --> 00:47:36.880
makes it easier to migration. That
makes sense. I mean, I've seen
617
00:47:37.559 --> 00:47:40.639
maybe you can speak to this a
little bit. The hierarchy of opinionation factors
618
00:47:40.719 --> 00:47:46.480
amongst the different frameworks seems to range
from React, which is very unopinionated,
619
00:47:46.519 --> 00:47:51.119
and there's you know, a bazillion
different tools whether it's routing or state or
620
00:47:51.119 --> 00:47:55.280
whatever you know, up to view, up to angular and then maybe even
621
00:47:55.320 --> 00:47:59.559
Ember, if I've understood, can
be you know, more opinionated, and
622
00:48:00.400 --> 00:48:06.719
then Angler I've heard that before.
Does that sound fairly accurate? Angler is
623
00:48:06.760 --> 00:48:10.599
openated for sure, So it says
from the table, and I think because
624
00:48:10.800 --> 00:48:14.880
if you see like Angler has there's
no other people do routing, right,
625
00:48:14.920 --> 00:48:19.400
I mean, of course there was
in Anglo gsts and now there's just Angler
626
00:48:19.440 --> 00:48:24.320
Outer. So Angler provides out even
for forms. Angler provide forms even as
627
00:48:24.320 --> 00:48:29.320
a state lak. For data fitching, Angler has something but a cityp already,
628
00:48:29.599 --> 00:48:32.039
so no one else, no one
is doing actually data pitching using other
629
00:48:32.119 --> 00:48:37.239
libraries apart from esterty. So that
ends, as I said, as as
630
00:48:37.280 --> 00:48:38.960
you also mentioned, so that those
are the things which are pretty cool about.
631
00:48:40.000 --> 00:48:43.320
Sorry, what is the name of
the library that does the data fetching
632
00:48:43.400 --> 00:48:47.599
you just mentioned? Angler slash,
common slash, storty. Okay, So
633
00:48:47.760 --> 00:48:51.679
is that its own thing from the
ground up, as compared to maybe like
634
00:48:51.719 --> 00:48:55.519
a wrapper or around axios or something
like that. It's a good question because
635
00:48:55.599 --> 00:49:01.440
Angler had xmlesty pretris for so they
had to develop it based on it.
636
00:49:01.480 --> 00:49:07.760
But now most of the browser supports
right, Oh okay, so it's using
637
00:49:07.840 --> 00:49:12.679
native vetch. So now it's using
against deference, so it's like uh uh,
638
00:49:12.800 --> 00:49:15.239
it's so it's it's not by default, you can enable it, so
639
00:49:15.280 --> 00:49:19.639
it's it's still like, okay,
haying some features. So let's say when
640
00:49:19.639 --> 00:49:22.320
you're using a stratipic line, you'll
just say use fitch and we'll start using
641
00:49:22.360 --> 00:49:30.280
fletch. Okay, that makes sense. The default only made Yeah. I
642
00:49:30.280 --> 00:49:36.239
know, for a while view as
the view to compare has had view Router,
643
00:49:36.440 --> 00:49:38.199
you know, by default that's maintained
by the community. Had vu x,
644
00:49:38.320 --> 00:49:43.719
which was maintained by the community,
but you weren't required to use them.
645
00:49:43.719 --> 00:49:45.079
You had to opt in to use
view Router. You had to you
646
00:49:45.079 --> 00:49:49.039
know, you had to install it, and you had to configure your app
647
00:49:49.760 --> 00:49:52.360
to use it, which means that
you can use other ones. Now by
648
00:49:52.400 --> 00:49:57.440
default, it's much easier to use
the one that's more commonly used and is
649
00:49:57.920 --> 00:50:01.400
maintained by the community. But you've
always had that option to use other tools.
650
00:50:01.400 --> 00:50:05.000
If that well, if for you
know, if for some reason you
651
00:50:05.000 --> 00:50:09.599
want to Now, what about the
last question I have? I know we're
652
00:50:09.639 --> 00:50:15.639
getting short on time here, Chuck. Is one thing I don't see as
653
00:50:15.760 --> 00:50:24.400
much is rappers for Angular with other
tools. Case in point is inertia JAS,
654
00:50:24.519 --> 00:50:27.960
which is one of my favorites and
I've talked about quite a bit,
655
00:50:28.800 --> 00:50:32.679
which is basically a plug uh glue
layer between your front end and your back
656
00:50:32.800 --> 00:50:38.119
end makeing incredibly fast, very easy
to work with because you don't have to
657
00:50:38.239 --> 00:50:42.840
use your jobscript writer on the front
end. You rely on your back end.
658
00:50:42.840 --> 00:50:45.280
You can plug it in with note
or Ruby or Larabelle or so on,
659
00:50:45.599 --> 00:50:51.920
or other tools like Chuck. Maybe
you can tell me Fred shot Astro.
660
00:50:52.599 --> 00:50:55.159
I don't know if they have an
Angular plugin or not, but I
661
00:50:55.239 --> 00:51:00.400
don't see plugins for Angular ass you
know with third party integration tools like that
662
00:51:00.480 --> 00:51:06.719
as much as I do with reacts
belt View. Do you see that changing
663
00:51:06.719 --> 00:51:10.639
in the future as Angler becomes more
easy to use and less more for the
664
00:51:10.719 --> 00:51:15.400
enterprise level or what do you think? I mean, all the cool kids
665
00:51:15.440 --> 00:51:20.400
are going to be using singles,
signals and Angular as as I get it,
666
00:51:21.039 --> 00:51:22.480
Yeah, from what you've been saying. So I'm just curious about that.
667
00:51:23.039 --> 00:51:27.880
I found it Astro Angular. Oh
they do, okay, deal,
668
00:51:28.079 --> 00:51:34.000
Well it's for analog. Yeah,
so I would assume it works just with
669
00:51:34.239 --> 00:51:38.000
Angular. But no, but that
me Tangler. It doesn't talk, so
670
00:51:38.039 --> 00:51:45.519
analog jays Analog guys actually plugging to
work with Okay. True, Yeah,
671
00:51:45.599 --> 00:51:49.920
I mean this is where the me
definite books can fit. The gap step.
672
00:51:50.320 --> 00:51:54.440
So now, if like let's say, once Angler becomes less complicated,
673
00:51:54.480 --> 00:52:01.440
like the thing is, they have
their own what do you say compilers,
674
00:52:01.679 --> 00:52:06.559
which makes things a little bit harder
for everyone to adopt. But once that
675
00:52:06.800 --> 00:52:10.480
compiler becomes easy, I think more
people will start adopting it. As of
676
00:52:10.559 --> 00:52:15.239
now, like Analog team figured it
out like how to do it, so
677
00:52:15.280 --> 00:52:21.519
they wrote their entire framework made of
framework using Angler plus jays. I think
678
00:52:21.559 --> 00:52:28.039
that's the that's the Yeah. I
think on jas is one they have used,
679
00:52:28.360 --> 00:52:30.519
if I'm not wrong. Uh,
and Next also uses it, right,
680
00:52:30.599 --> 00:52:35.400
so they actually took the inspiration from
the Next team and just made this
681
00:52:35.440 --> 00:52:38.440
made of framework. So I think
they're like everybody's working together to get this
682
00:52:38.519 --> 00:52:43.320
done. And the belief thing which
is stopping most of the people is the
683
00:52:43.360 --> 00:52:46.119
way angular compiler works. It's like
for a longer period of time, it
684
00:52:46.159 --> 00:52:49.920
was one leverb pack, so it
was just a putting you back. There
685
00:52:50.000 --> 00:52:52.239
was no other way to do it. Now it's adopting es build. So
686
00:52:52.360 --> 00:52:57.480
now it's it actually uses es build
and uh, it also uses wheat.
687
00:52:57.800 --> 00:53:00.920
But let's say once in future,
let's say, let's just think about so
688
00:53:01.000 --> 00:53:06.480
once it's it's start supporting bet for
the production bill DESM. I think this
689
00:53:06.519 --> 00:53:14.119
is where it will become less complicated
for the authors who are actually creating made
690
00:53:14.280 --> 00:53:16.639
freeworks on top of it. So
but it will it will? I think
691
00:53:16.679 --> 00:53:20.880
I see a future where it will
be possible, but not not right now,
692
00:53:21.400 --> 00:53:25.440
anything else, Steve, before we
jump in the picks? Uh no,
693
00:53:25.599 --> 00:53:29.639
that's all I got. All right, Well, do you want to
694
00:53:29.679 --> 00:53:34.079
start us off with the picks,
then yes, we'll start with the uh
695
00:53:34.920 --> 00:53:37.079
my picks, which are santos in
case who aren't aware of the Dad jokes
696
00:53:37.119 --> 00:53:42.639
of the week are the highlight of
every episode. I just gotta get a
697
00:53:42.679 --> 00:53:49.840
mind up here. I'm so busy
talking. H okay, So question,
698
00:53:51.280 --> 00:53:54.239
would it let see where to go? Would it kill the maker of avocados
699
00:53:54.960 --> 00:54:00.280
to put a different toy inside?
I mean I already have like f fifty
700
00:54:00.280 --> 00:54:12.159
wooden balls already. The other night, my son whose younger son, said
701
00:54:12.519 --> 00:54:15.239
Dad, there's a monster under my
bed? Can I sleep in your room?
702
00:54:15.239 --> 00:54:19.039
And I said, look, it's
you. He's after Why make him
703
00:54:19.039 --> 00:54:24.840
my problem too? I was very
sympathetic, as you can tell. And
704
00:54:24.880 --> 00:54:30.079
here's a question for you, Chuck
or santoge what was more important than the
705
00:54:30.119 --> 00:54:37.559
invention of the first telephone the invention
of the second telephone? Very good,
706
00:54:37.679 --> 00:54:44.360
thank you, thank you. I'm
impressed. Check you know, without one
707
00:54:44.400 --> 00:54:47.119
phone, really nobody to talk to. One of the funniest sketches I ever
708
00:54:47.159 --> 00:54:52.239
heard is if you remember Andy Rooney, Chuck Andy Rooney, he used to
709
00:54:52.559 --> 00:54:57.239
do his little bits at the end
of sixty minutes, and he played a
710
00:54:57.239 --> 00:55:05.480
bit one time where they supposedly had
the answer to the first call to alex
711
00:55:05.559 --> 00:55:08.079
endergrind Bell's telephone, and it was
I'm sorry, I'm not here to pick
712
00:55:08.119 --> 00:55:13.320
up the phone right now, but
if we leave a message right the answering
713
00:55:13.400 --> 00:55:19.119
machine is first phone. It was
great anyway. Yeah, that's all I
714
00:55:19.159 --> 00:55:22.039
got for picks, all right,
Well then I'll jump in with picks.
715
00:55:25.639 --> 00:55:30.599
Yeah, this last week I've mostly
been doing the political stuff and not the
716
00:55:30.719 --> 00:55:35.360
board game stuff. So I'm gonna
pick two games that I've picked before that
717
00:55:36.280 --> 00:55:40.719
I played either with my family or
my friends. The first one is and
718
00:55:40.760 --> 00:55:44.280
this is what I've been playing with
the family. It's called The Crew,
719
00:55:45.480 --> 00:55:53.719
and it's a card game and you
get basically, you get assignments. There's
720
00:55:53.719 --> 00:55:59.360
a little log book basically that tells
you what to do. So it's like
721
00:55:59.440 --> 00:56:04.440
you have to get these four cards
and you assign them out, you know,
722
00:56:04.480 --> 00:56:09.239
to different people, and then yeah, anyway, it's it's really fun
723
00:56:12.079 --> 00:56:16.199
board game. Geek rates it waits
it at one point ninety five, and
724
00:56:16.320 --> 00:56:21.880
basically you just have to be old
enough or mature enough, and you're thinking
725
00:56:21.960 --> 00:56:25.480
to figure out, Okay, how
do I play these cards so that the
726
00:56:25.559 --> 00:56:32.400
right person gets the right card.
And it's very fun. We really really
727
00:56:32.480 --> 00:56:37.039
like it, and so we're on
there. I think there are seventy five
728
00:56:38.480 --> 00:56:43.320
stages that you go through. Right
in the first bunch, you just breeze
729
00:56:43.320 --> 00:56:45.559
through them, like the first ten
or fifteen, right, and so then
730
00:56:45.599 --> 00:56:51.320
they get progressively harder. So the
last one you have a way of communicating,
731
00:56:51.960 --> 00:56:55.920
and you couldn't use that the communication
option until the third trick. And
732
00:56:55.960 --> 00:56:59.679
then there were six cards that had
to be taken in. One of them
733
00:57:00.400 --> 00:57:01.880
was a sign to be taken first
and the other was a sign to be
734
00:57:01.920 --> 00:57:06.679
taken last. And it took us
a bit of doing to get it with
735
00:57:06.719 --> 00:57:10.840
five people. So yeah, anyway, the crew it's way fun. The
736
00:57:10.880 --> 00:57:15.960
other one on Wednesday, me and
my buddies got together and we played another
737
00:57:16.039 --> 00:57:24.840
round of Risk Legacy, which is
also just I grew up playing risk and
738
00:57:28.679 --> 00:57:36.000
so I kind of have this nostalgic
love of the game Risk Legacy is if
739
00:57:36.000 --> 00:57:37.760
you've played any of the legacy games, right, so the last game you
740
00:57:37.880 --> 00:57:45.280
played and the game before that,
I'll impact the current game. And anyway,
741
00:57:45.320 --> 00:57:49.079
it's been really really fun. I
don't think you keep trackle that,
742
00:57:50.440 --> 00:57:52.639
so it has ways of doing doing
that on the board. Right, So
743
00:57:54.000 --> 00:57:59.920
we've played four rounds or five rounds. I think we've played five rounds now.
744
00:58:00.079 --> 00:58:04.880
I won the first two and so
now everybody's gunning for me to make
745
00:58:04.920 --> 00:58:09.239
sure I don't win again. But
I think one of my friends just won
746
00:58:09.280 --> 00:58:15.400
their either one of them won their
first round or somebody just won their second
747
00:58:15.480 --> 00:58:20.960
round because I was, I was
actually eliminated from the game. They wiped
748
00:58:21.000 --> 00:58:25.400
all of my guys off the board. This time. It has a board
749
00:58:25.440 --> 00:58:30.639
game weight on Board Game Geek of
two point five to nine. But it's
750
00:58:30.679 --> 00:58:34.519
been way fun. And then,
like I said, I really love playing
751
00:58:34.599 --> 00:58:45.360
Risk, and so yeah, so
I'm gonna pick those and then yeah,
752
00:58:45.840 --> 00:58:51.000
getting the page up for JavaScript Geniuses. You can find that at javascriptgeniuses dot
753
00:58:51.000 --> 00:58:58.360
com. And yeah, I think
those are all my picks. Santoche,
754
00:58:58.400 --> 00:59:02.280
what are your what are your picks? It can be anything or it could
755
00:59:02.280 --> 00:59:07.800
be anything. Yep, Yeah,
Okay, so we are like posting our
756
00:59:07.880 --> 00:59:13.880
new next episode actually tomorrow on this
is TUK Talks. So the new episode
757
00:59:13.960 --> 00:59:17.000
is with the Angler contributors. So
in case we are looking forward to contribute
758
00:59:17.039 --> 00:59:22.440
to Angler, just go through the
episode and uh, next one would be
759
00:59:22.519 --> 00:59:28.719
like I'm I'll be there at Waterkin
Festival, which is a very big given
760
00:59:28.840 --> 00:59:31.360
here in Germany, which can it's
like a lot of open source contributors,
761
00:59:31.480 --> 00:59:37.480
open source companies like our early stage
companies. It's interesting. Case you're going
762
00:59:37.519 --> 00:59:39.719
coming there in New York from Germany, just let you know we can we
763
00:59:39.800 --> 00:59:44.400
can meet from it cool And if
people want to find you online, where
764
00:59:44.480 --> 00:59:49.360
where are you usually at? So
my Twitter handle is deep I think it's
765
00:59:49.599 --> 00:59:52.320
there's some type of year, but
it's you can find me on LinkedIn and
766
00:59:53.159 --> 00:59:57.480
both places with the same handle.
Awesome. All right, well let's go
767
00:59:57.480 --> 01:00:00.480
ahead and wrap it up. Thanks
for coming. This was lot of fun.
768
01:00:00.079 --> 01:00:02.360
You can. Thanks so much.
All right, till next time,
769
01:00:02.400 --> 01:00:05.440
folks max out how heos
1
00:00:06.480 --> 00:00:11.080
Hey everybody, Welcome back to another
episode of JavaScript Jabber. This week,
2
00:00:11.119 --> 00:00:16.679
on our panel, we have Steve
Edwards to borrow from a j Yo yo
3
00:00:16.800 --> 00:00:21.399
Yo, coming after coming at you
from a cloudy and cool Portland after having
4
00:00:21.440 --> 00:00:26.199
been in Arizona, sonny and warm
last week. Right, I'm Charles Maxwood
5
00:00:26.239 --> 00:00:29.879
from Top Endez. Yeah, it
was rainy last week here, but looks
6
00:00:29.879 --> 00:00:33.640
like it's going to be a nice
day today. So we have a special
7
00:00:33.679 --> 00:00:37.399
guest this week. We have Santosh. I don't know if we have your
8
00:00:37.479 --> 00:00:41.280
last name anywhere where I can see
it. You gonna introduce yourself and let
9
00:00:41.280 --> 00:00:45.159
people know who you are and why
we're excited to have you here. My
10
00:00:45.280 --> 00:00:49.280
name is and I live in Germany, so I live near Hamburg. I
11
00:00:49.359 --> 00:00:52.799
keep killing people that I live in
Hamburg, but it's it's a life because
12
00:00:53.039 --> 00:00:58.240
that's the net. So people in
Hamburg so and I put it on.
13
00:00:59.039 --> 00:01:03.359
So I'm seen as of the engineer
that's too honest. And I'm involved in
14
00:01:03.399 --> 00:01:07.840
mertical communities, so I'm developer expert
for Angula. I'm also a get up
15
00:01:07.840 --> 00:01:14.079
Star and I'm also part of an
X Champions program which is a program MANX.
16
00:01:14.599 --> 00:01:18.120
And I'm also co founded for a
community so we learn. We run
17
00:01:18.159 --> 00:01:22.239
a committee called This is Learning and
This is Tech Talks the podcasts, which
18
00:01:22.239 --> 00:01:26.280
we do generally. Uh, we
have been doing it for a year now
19
00:01:26.879 --> 00:01:30.120
and that's what that's what I do. And you might have seen me from
20
00:01:30.159 --> 00:01:36.319
the active and I'm just so much
active there, very cool. Well,
21
00:01:37.599 --> 00:01:38.959
the topic I have in front of
us, and this might be a little
22
00:01:38.959 --> 00:01:44.439
provocative for some people, is why
why Angular is the best framework for you?
23
00:01:45.280 --> 00:01:49.280
And uh, yeah, I think
just to get us started. It
24
00:01:49.319 --> 00:01:55.879
seems like React as kind of the
one that far and away people are adopting,
25
00:01:57.040 --> 00:02:00.799
and so are you. I guess
what I'm asking is are you putting
26
00:02:00.799 --> 00:02:05.599
forward that that's a mistake or just
not as good a decision as you could
27
00:02:05.599 --> 00:02:09.199
make if you go for Angular.
And I'm just here to share my point
28
00:02:09.199 --> 00:02:15.599
of view bi Angular as best pay
Yeah, I mean generally it's like uppe
29
00:02:15.840 --> 00:02:22.680
that you you to decide what what
is best for you by Okay, So
30
00:02:22.719 --> 00:02:27.199
why should people use Angular then?
Because I know Steve does view. Just
31
00:02:27.240 --> 00:02:31.919
to give a little background, and
I've done I've kind of played with them
32
00:02:31.919 --> 00:02:38.520
all and I've mostly settled on Stimulus, which isn't a surprise if you're into
33
00:02:38.719 --> 00:02:43.879
Ruby on rails. So yeah,
you might get a little pushback here or
34
00:02:43.919 --> 00:02:46.719
there because neither of us use Angular
on a regular basis. For what it's
35
00:02:46.719 --> 00:02:51.800
worth all throwing this caveat that I
did start out with Angular, but it's
36
00:02:51.919 --> 00:02:54.919
what is now Angular JSS, Angular
one, whatever you want to call the
37
00:02:54.919 --> 00:03:00.400
the first version. So I never
I switched twitched over Review at the time
38
00:03:00.479 --> 00:03:07.360
that it was rewritten into Angular too, you know, and on for various
39
00:03:07.400 --> 00:03:10.240
reasons you know that we can discuss. But so I wasn't. That was
40
00:03:10.280 --> 00:03:20.199
my Angler was my my initial step
into JavaScript coding on the front end most
41
00:03:20.199 --> 00:03:23.039
people because it was one of the
earliest framework, right, I mean it
42
00:03:23.319 --> 00:03:25.680
came even before Yeah, so most
of the people were doing Angler jays and
43
00:03:25.719 --> 00:03:30.520
then Angler two came in, which
is the current Angler which we are to
44
00:03:30.520 --> 00:03:34.520
talk about. Angler jas is now
end of the least end of light,
45
00:03:34.719 --> 00:03:38.960
so it's not even supported by Angler
officially, but I think there are few
46
00:03:39.000 --> 00:03:45.680
companies who were supporting long term support. But that's another thing. So it's
47
00:03:45.719 --> 00:03:50.960
like started around Angler two when people
started moving away from Angler jas to the
48
00:03:51.000 --> 00:03:54.560
frameworks. I mean that was I
would say, yeah, that was very
49
00:03:54.960 --> 00:04:00.599
hard time even for the framework because
there are multiple things. Right, when
50
00:04:00.639 --> 00:04:03.400
Angler two came, Anger team said
they are going to rewrite it in typescript,
51
00:04:03.439 --> 00:04:06.919
and not many people were fan of
typescript. So if you if you
52
00:04:08.120 --> 00:04:11.560
all remember, like Typetrip, Angler
was the first tramwork to actually bet on
53
00:04:11.599 --> 00:04:15.079
typescript. They said, yeah,
they will rewrite everything in typescript. And
54
00:04:15.079 --> 00:04:19.360
then Microsoft cattal like good, good
packing. They even like wrote a blog
55
00:04:19.399 --> 00:04:25.480
post three years ago that Google team, our Angler team was a big support
56
00:04:25.600 --> 00:04:30.160
behind the success because no one was
trying to adopt it, but they did.
57
00:04:30.519 --> 00:04:34.839
They're oute of big enterprise framework using
type script and it's it's been used
58
00:04:34.879 --> 00:04:40.279
now by millions of developers. So
that was the early start. And of
59
00:04:40.319 --> 00:04:45.519
course there was no path. I
mean the another issue was Angler JAS to
60
00:04:45.639 --> 00:04:47.959
Angler two. Okay, there was
there was no migration path. So everyone's
61
00:04:47.959 --> 00:04:54.160
scared, like what happens tomorrow,
right, I mean if once like Angler
62
00:04:54.240 --> 00:04:57.560
jas is officially dead, how we
will able we will be able to migrate
63
00:04:57.560 --> 00:05:00.560
to Angler or the new version?
There was no clear But of course now
64
00:05:00.639 --> 00:05:05.839
there is a there's a guy,
there's a great like anglers who angled it
65
00:05:05.959 --> 00:05:12.879
up and it's available now, but
that was the time. Actually there was
66
00:05:12.920 --> 00:05:16.279
some bad decisions, I would say, which which costed like big panic in
67
00:05:16.319 --> 00:05:24.000
the community, even the people who
were using Yeah, I remember we were
68
00:05:24.040 --> 00:05:28.959
talking to So I was one of
the people that started and hosted for a
69
00:05:29.000 --> 00:05:32.240
long time the Adventures in Angular podcast. That was your first podcast I ever
70
00:05:32.279 --> 00:05:36.240
started listening to check with Adventures and
Angler, Okay, yeah, and so
71
00:05:36.319 --> 00:05:43.360
we were talking to Mishkoh and a
bunch of the other people that were involved
72
00:05:43.360 --> 00:05:46.439
in a lot of that. Yeah, there was a lot of anxiety at
73
00:05:46.480 --> 00:05:49.639
the time over you know, where
Angler was going to end up. And
74
00:05:50.040 --> 00:05:54.920
yeah, they made the cutover to
type script. Initially, they were trying
75
00:05:54.959 --> 00:06:00.680
to come up with their own uh
script that you know, transpiled to JavaScript
76
00:06:00.680 --> 00:06:06.319
that was similar to typescript, and
I guess they got what they wanted from
77
00:06:06.360 --> 00:06:11.120
the typeescripts team and made that transition. But yeah, so at this point,
78
00:06:12.600 --> 00:06:15.079
yeah, Angler is much more modern. It has a lot of other
79
00:06:15.079 --> 00:06:18.120
things going for it. But yeah, anyway, it was just an interesting
80
00:06:18.160 --> 00:06:23.600
time to be involved in that.
So that was it was like the same
81
00:06:23.720 --> 00:06:27.079
time I started like two Gangla Jays
around winning fifteen. I mean I was
82
00:06:27.160 --> 00:06:31.560
laid into the ecosystem of course,
and then twenty seventeen at the Angler four
83
00:06:31.639 --> 00:06:34.560
game, that's when I when I
picked it up. So of because I
84
00:06:34.600 --> 00:06:38.759
was lucky not to get into Angler
two. I know a lot of people
85
00:06:38.839 --> 00:06:44.720
were actually frustrated with every like breaking
changes with a u RC and everything.
86
00:06:44.759 --> 00:06:47.160
I just keep hearing the study and
then it makes it like, oh and
87
00:06:47.319 --> 00:06:51.199
I decided not to jump in trite
into it, like when Anglo two was
88
00:06:51.240 --> 00:06:55.959
going on. So what is it
about Angler that you think makes it a
89
00:06:56.000 --> 00:06:59.639
great choice? Yeah, I mean
there are so many things, right,
90
00:06:59.680 --> 00:07:02.319
I mean, first, of course, the current state of Angler. So
91
00:07:02.399 --> 00:07:06.199
if you see, like of course, there was a time when people thought,
92
00:07:06.199 --> 00:07:09.879
okay, Angler is going to be
dead. Angler is not going moving
93
00:07:09.959 --> 00:07:15.680
forward, like there are no new
features, even like they're not I mean
94
00:07:15.920 --> 00:07:18.000
even they are not listening to the
to the community. I mean, if
95
00:07:18.000 --> 00:07:23.000
you if you go to the open
issues, they were like like two top
96
00:07:23.040 --> 00:07:27.519
most voted issues which were still open
for after four years, and everyone was
97
00:07:27.560 --> 00:07:30.839
frustrated when the even the community was
like bait of fun ansious again that what's
98
00:07:30.879 --> 00:07:35.519
what's going to happen? And then
came Hangler fourteen. So Angler fourteen as
99
00:07:35.560 --> 00:07:42.360
were all all this new features or
the team actually started pushing so many new
100
00:07:42.360 --> 00:07:47.560
things, and I think they they
we keep hearing about Angler renaissance, right,
101
00:07:48.079 --> 00:07:53.680
and that's what happened. So after
Angler fourteen, Angler started moving into
102
00:07:53.680 --> 00:07:59.399
different directions. They started listening to
the community. So most of the top
103
00:07:59.519 --> 00:08:03.040
vote features are actually fixed now,
I mean they're they're already being used by
104
00:08:03.120 --> 00:08:09.000
people. And uh, I would
say, uh, the kind of shift
105
00:08:09.399 --> 00:08:13.120
which Angler has taken. For example, Angler modules, Like there was a
106
00:08:13.199 --> 00:08:18.160
there was a time that we everyone
who was actually teaching Angler or learning Angler
107
00:08:18.199 --> 00:08:24.480
they had to actually word and learn
about Angler modules like what what are modules?
108
00:08:24.680 --> 00:08:28.360
And now with that, after Angler
fourteen, team decided to actually remove
109
00:08:28.399 --> 00:08:31.519
it, like they said, okay, let's make it optional. So they
110
00:08:31.519 --> 00:08:39.080
started removing the headaches or I would
say the most important Uh, not most
111
00:08:39.080 --> 00:08:43.840
important, but I would say most
complicated things like which which you need to
112
00:08:43.120 --> 00:08:48.240
understand before jumping into Angler. They
started removing those blocks. For example,
113
00:08:48.240 --> 00:08:54.320
they made Angler models option. Okay, they started making uh, some changes
114
00:08:54.360 --> 00:08:58.600
to talk to more functional program For
example, not everyone is more comfortable writing
115
00:08:58.600 --> 00:09:03.720
classes in type script. So for
example, guards Angler guards, they used
116
00:09:03.759 --> 00:09:07.679
to be all classes. Now they
are functions which enabled like there are a
117
00:09:07.679 --> 00:09:11.279
few changes or there isn't there are
new functions which enabled most some of the
118
00:09:11.320 --> 00:09:16.559
library offers to actually adopt functional approach. One of the librares I think maxim
119
00:09:16.600 --> 00:09:22.000
meno is jeris, which is for
state management. So they started, Yeah,
120
00:09:22.120 --> 00:09:26.360
so they started moving most of the
code to functional approach to make it
121
00:09:26.440 --> 00:09:33.200
like more pre more more easy to
write. So apart from that, of
122
00:09:33.240 --> 00:09:37.679
course, now let's talk about SSR. There was like a long period of
123
00:09:37.679 --> 00:09:41.159
time where Angler's team said, okay, they are not going to do SSR,
124
00:09:41.240 --> 00:09:43.200
right, I mean, they're not
going to support SSR. And then
125
00:09:43.519 --> 00:09:48.759
community came and wrote Angular Universal.
Yeah, so Anglo Universal was something which
126
00:09:48.799 --> 00:09:54.000
was driving SSSR for a longer rift. And now Anglar team has actually adopted
127
00:09:54.039 --> 00:09:58.679
that Angler USL as part of the
Angler package itself itself. It's called Angular
128
00:09:58.759 --> 00:10:03.000
s are now and the team is
focusing more on SSR, so they're trying
129
00:10:03.039 --> 00:10:07.360
to give better experience when you're using
SSR, so partial iteration is there.
130
00:10:07.879 --> 00:10:13.279
And now they are trying to merch
Angler with another framework called wiz, which
131
00:10:13.399 --> 00:10:18.360
was actually an internal framework within Google. So it's like this is just announced
132
00:10:18.440 --> 00:10:24.639
at Chicon this year that they're going
to do it to make SSR more better
133
00:10:24.679 --> 00:10:30.440
met Angular so they have partial iteration, and of course there will be like
134
00:10:30.799 --> 00:10:35.039
more pandular label change fiction which is
also coming with a Angular. So those
135
00:10:35.080 --> 00:10:41.919
are the things which makes I would
say Angler as best framework for you right
136
00:10:41.960 --> 00:10:48.080
now because they are actually adopting new
features making learning framework more more more more
137
00:10:48.080 --> 00:10:52.000
easy to you, Like they are
moving all the complicated things more complicated concepts.
138
00:10:52.519 --> 00:10:56.960
Yeah, we can talk about more. Yeah, it's it's funny because
139
00:10:56.000 --> 00:10:58.519
you're talking about a lot of these
things. I mean, I remember when
140
00:10:58.600 --> 00:11:03.399
n GR came out, Remember when
Angular Universal came out. You know,
141
00:11:03.519 --> 00:11:09.240
we're talking to you know, the
guys behind all that work. And yeah,
142
00:11:09.360 --> 00:11:13.840
it seems like a lot of these
things though anymore just kind of on
143
00:11:13.000 --> 00:11:18.440
par with what people expect from a
modern framework, right. I mean View
144
00:11:18.519 --> 00:11:22.120
has a lot of these same kinds
of options, don't they, Steve and
145
00:11:22.240 --> 00:11:26.200
few X and View. I don't
know how you do SSR with View,
146
00:11:26.240 --> 00:11:28.240
but yeah, well there's next.
I mean you have a you know,
147
00:11:28.759 --> 00:11:33.600
like next or next. I believe
Angeler has a meta framework quote unquote don't
148
00:11:33.639 --> 00:11:39.320
they analog now? So I think
Spelly has been. I don't know.
149
00:11:39.720 --> 00:11:43.000
I haven't heard from anything from the
True brand it's been working on Analog has
150
00:11:43.000 --> 00:11:48.559
any Yeah, so Analog is the
meta framebook. Which so let me ask
151
00:11:48.600 --> 00:11:52.440
you one question. You know one
of the like I said, apologize,
152
00:11:52.440 --> 00:11:58.879
I haven't really worked in Angular two
x on one of the features that View
153
00:12:00.120 --> 00:12:07.000
has that I consistently hear from people
who have moved to View from Angular react
154
00:12:07.159 --> 00:12:11.720
or. You know, your framework
of choice is the single file templates component
155
00:12:11.120 --> 00:12:18.679
functionality in that you know, basically
you have your template function same with you
156
00:12:18.799 --> 00:12:22.519
two or View three or's just straight
HTML, right, You're not having to
157
00:12:24.279 --> 00:12:26.919
put backticks around thing to make sure
your quotes are you know, just right
158
00:12:28.000 --> 00:12:30.879
so it can interpret it. It's
just very easy to read. And then
159
00:12:30.879 --> 00:12:35.679
you plug in any of your attributes
and your directives and classes and stuff as
160
00:12:35.759 --> 00:12:41.120
regular HTML, which makes it easier
for a designer to work with. Now
161
00:12:41.159 --> 00:12:45.279
I'm reading the Angular docs and I
don't see that capability. I might be
162
00:12:45.320 --> 00:12:50.679
missing it because I haven't been studying. So how does Angular make the templating
163
00:12:50.759 --> 00:12:58.240
portion easy? So if a single
component is something which is not heavily an
164
00:12:58.240 --> 00:13:03.480
angle of it, so Angler's generally
whenever you start a new project us in
165
00:13:03.559 --> 00:13:07.480
CLN, so you have to put
strap and component. So you put strap
166
00:13:07.519 --> 00:13:11.000
and root component and then bin root
component. You can render anything and temperate
167
00:13:11.080 --> 00:13:13.679
is nothing, but you can actually
there are two options. So you can
168
00:13:13.799 --> 00:13:18.480
create an estimate file and you can
provide it to the component class that okay,
169
00:13:18.519 --> 00:13:22.120
this is the temperate and where you
will have all the estimate files.
170
00:13:22.759 --> 00:13:26.120
Or you can just write it between
the deepestrict file itself, so you have
171
00:13:26.200 --> 00:13:30.360
something called template as a string,
so you can just say back takes and
172
00:13:30.360 --> 00:13:35.039
then you can start writing your estimal. So it's it's different from others like
173
00:13:35.080 --> 00:13:39.399
for example React as ASIX of course
who has dot move file which is where
174
00:13:39.440 --> 00:13:43.519
you can write all the things.
But Angle it is like plain STML,
175
00:13:43.559 --> 00:13:46.399
so you can just write estimate file
and start writing your stment up with the
176
00:13:46.440 --> 00:13:54.000
help of some of the template functionality
which is provided by Angle. If you
177
00:13:54.000 --> 00:13:56.120
need SEFC, if you need sec
you should give it. Try to analog
178
00:13:56.440 --> 00:14:00.879
because they are trying to fill in
this gap, so they're go adop like
179
00:14:01.039 --> 00:14:07.200
all this features, which is widely
asked for but by by the by the
180
00:14:07.200 --> 00:14:11.759
divelopers who are coming from background of
food, right, so they are like
181
00:14:11.879 --> 00:14:16.519
thinking about to the secs. So
yes, it's availability a handle just I
182
00:14:16.559 --> 00:14:20.960
think you can go and write out
with the current rings. Now with those
183
00:14:22.000 --> 00:14:26.519
templates, are you also have a
CSS handle? Is that something that's in
184
00:14:26.519 --> 00:14:30.919
a separate file that you would import
into your component then, or is that
185
00:14:31.039 --> 00:14:35.000
something that you can do like a
style bark or something like that inside of
186
00:14:35.000 --> 00:14:39.080
your component. Both the options are
available if you want. You can do
187
00:14:39.120 --> 00:14:43.120
it in line with style styles property, so you can just say okats the
188
00:14:43.159 --> 00:14:46.360
stiles and then you can write your
in line spies. Or if you want
189
00:14:46.360 --> 00:14:50.000
a cess file to be a separate
file, you can define it as a
190
00:14:50.039 --> 00:14:54.559
string same as your st piles.
Right, so you can create as a
191
00:14:54.799 --> 00:14:58.559
CS file or stats file what I
when you're using ale supports everything, so
192
00:14:58.960 --> 00:15:01.519
you can just define create that file
and just give a path so it will
193
00:15:01.559 --> 00:15:07.679
just work. But it's a second
file outside of your component. Is that
194
00:15:07.759 --> 00:15:11.600
right? You can do both.
I mean when you can do like within
195
00:15:11.639 --> 00:15:15.799
your types too file, you can
say stye and then you can start writing
196
00:15:15.840 --> 00:15:20.200
in a string, but it's a
string with backticks around it type of exactly.
197
00:15:20.279 --> 00:15:26.159
Yeah, okay, can the CSS
be scoped to a particular component or
198
00:15:26.200 --> 00:15:33.240
is it always necessarily global? So
good thing about Angler's FIFA. So whenever
199
00:15:33.279 --> 00:15:37.320
you create a new component like scoped
to the current component. So whenever you
200
00:15:37.399 --> 00:15:41.720
like create a new new anglerpiplication and
you run it and you try to inspect
201
00:15:41.840 --> 00:15:45.799
any component and you see the stie
so that you will find something called energy
202
00:15:45.799 --> 00:15:50.679
content uppended with this. So it
makes sure that yours, like stye sets,
203
00:15:50.679 --> 00:15:54.399
are not leaking globally. You can
also make it devlople globally. It's
204
00:15:54.440 --> 00:15:58.639
up so it's like it's it's it
gives you control to you bite fall.
205
00:15:58.679 --> 00:16:03.559
It's a was wrapped inside the component
so it doesn't lead. But if you
206
00:16:03.600 --> 00:16:07.840
want to, you can just make
it available everywhere. That's possible, basically
207
00:16:07.840 --> 00:16:12.080
overwriting global school. Now, how
does Angular handle or what are the options
208
00:16:12.159 --> 00:16:18.360
for state management? Is that something
that's built in that comes by default?
209
00:16:18.519 --> 00:16:22.879
You know View has view actually actually
with View three IT'SPNA. Now is the
210
00:16:22.879 --> 00:16:27.840
default state management tool for View three? Uh? Is there are like multiple
211
00:16:27.879 --> 00:16:30.919
options for options you want to use? Or is there a default that's built
212
00:16:30.919 --> 00:16:33.960
into Angular or at least maybe one
that's recommended. How does that work?
213
00:16:36.679 --> 00:16:41.480
Question? Because this necessary we can
really talk about signals like signals and everywhere
214
00:16:41.519 --> 00:16:47.240
now. So Angler adopted signals to
versions pack so Angly sixteen they make it
215
00:16:47.639 --> 00:16:52.320
make it as an experimental so you
know the signals, the whole signals idea
216
00:16:53.120 --> 00:16:59.279
that camelong back, but like more
people started not adopting it after solid Chase
217
00:16:59.360 --> 00:17:03.039
came up with the solution. Right, and now signals are adopted by a
218
00:17:03.120 --> 00:17:07.839
woof. It's adopted by Swelt and
Angler Oswald, so one of the framework
219
00:17:07.880 --> 00:17:11.440
which adopted signals, so to make
the state management easier. Right, So
220
00:17:11.480 --> 00:17:15.200
earlier we had multiple options, so
we had RHAS which was where you can
221
00:17:15.200 --> 00:17:18.519
actually write your own so if you
want to write create your own store,
222
00:17:18.720 --> 00:17:23.839
you can do it using RHAS.
Then people, more people from the community,
223
00:17:23.880 --> 00:17:27.799
they created their own solution as I
was taken to DUHS and GIS like
224
00:17:27.960 --> 00:17:33.519
was one of the early library which
is widely used, so it's like one
225
00:17:33.519 --> 00:17:38.599
of one out of six application in
production users. NGX. Then we have
226
00:17:38.759 --> 00:17:44.960
NJXS, which also is pretty good
state management framework. And I think there
227
00:17:45.000 --> 00:17:51.079
are a few more like which are
mean I haven't used any any other,
228
00:17:51.119 --> 00:17:55.480
but there are a few more which
exists. But it comes I wanted to
229
00:17:55.480 --> 00:18:00.559
make the state management thing easier because
why you should always reach out to managemental
230
00:18:00.599 --> 00:18:04.279
ability, maybe sometimes you don't need
it, and that's why they introduce signals
231
00:18:04.279 --> 00:18:07.440
now. So if you want to
make your state management easier, now you
232
00:18:07.440 --> 00:18:12.039
can actually start adopting signals as well. And signals can live anywhere like it
233
00:18:12.119 --> 00:18:15.519
can be it's it can just leave
outside your file lege. So for example,
234
00:18:15.599 --> 00:18:19.160
Steve Husa that you are coming from
who you are already familiar with Pinion
235
00:18:19.599 --> 00:18:25.119
which users signals actually in kind of
signals? I mean, I don't know
236
00:18:25.640 --> 00:18:30.000
is it still using proxy or it
uses signals. But a good thing out
237
00:18:30.000 --> 00:18:34.160
of this all new implementation which channel
it did? Signals are going to be
238
00:18:34.200 --> 00:18:40.480
part of JavaScript now, so it's
it's actually being implemented as part of Java's
239
00:18:40.480 --> 00:18:45.119
specification. So now all frameworks have
like most of the frameworks have agreed that
240
00:18:45.200 --> 00:18:51.039
they need signals because they are using
it. So Ryan Carnea from solid Chas
241
00:18:51.119 --> 00:18:56.799
he has been what he was the
main person behind driving all this and soon
242
00:18:56.920 --> 00:19:00.359
like it will be available in your
browser. So that's that's the future.
243
00:19:00.359 --> 00:19:06.640
I think I think everyone will be
using signals interest everyone. That's a pretty
244
00:19:06.720 --> 00:19:11.799
it's a pretty big state because because
it's part of specification, right, that's
245
00:19:11.799 --> 00:19:17.240
what. Because it's available in new
browser now, So even though it's avaliable
246
00:19:17.240 --> 00:19:19.559
to everyone, and I think most
primworks are already using it apart from react
247
00:19:19.839 --> 00:19:23.519
and until unless they come with some
come up with some solution. But I
248
00:19:23.559 --> 00:19:30.200
think, uh, yeah, all
the frameworks are actually already on signals or
249
00:19:30.519 --> 00:19:33.000
give it, give it intake because
if you say the act not to react,
250
00:19:33.039 --> 00:19:38.279
but PDIAC already uses signals as but
so all the cool kids are using
251
00:19:38.319 --> 00:19:42.599
signals. Huh is that it exactly? Yeah, I've heard about it,
252
00:19:42.720 --> 00:19:48.279
and I know my buddy Eric Hanschad
uh did a video with signals in view
253
00:19:48.319 --> 00:19:52.400
and uh, I'm not a big, you know, under the hood guy
254
00:19:52.880 --> 00:19:56.039
normally, but from reading about it, it's it's pretty simmar of the proxies.
255
00:19:56.440 --> 00:20:02.279
If I'm understanding correctly, there the
reuses for me for handling reactivity because
256
00:20:02.319 --> 00:20:06.079
you mentioned r x JAS and you
know, Chuck. To be honest,
257
00:20:06.119 --> 00:20:08.480
I always have flashbacks of some of
the other podcasters Ward and John where they
258
00:20:08.480 --> 00:20:14.400
were talking about r x JAS and
they dived right in without explaining what observables
259
00:20:14.440 --> 00:20:17.440
were. And it took me a
while to get my head around it.
260
00:20:18.319 --> 00:20:23.119
But are you basically saying that observables
is state management, because when I asked
261
00:20:23.119 --> 00:20:27.400
about state management, you brought up
r X. JAS was the solution for
262
00:20:27.440 --> 00:20:30.880
a long long time. So because
I'm had first class support for our XS,
263
00:20:32.160 --> 00:20:37.000
so every everything was observable. For
example, if I'm working with the
264
00:20:37.079 --> 00:20:41.079
rounter, I mean, so every
event is nothing but an observable. If
265
00:20:40.960 --> 00:20:45.640
I'm working with that's THEDP, so
it's nothing but an observable. So it
266
00:20:45.680 --> 00:20:48.759
was like they had like first class
support from Davon and that's why the women
267
00:20:48.799 --> 00:20:53.079
started like building the solution around XS. So if you see nng X,
268
00:20:53.880 --> 00:21:00.480
which which I mentioned, it was
nothing but like HGS plus that's and it
269
00:21:00.559 --> 00:21:06.119
was just around it. But now
as we have signals, so NJ also
270
00:21:06.160 --> 00:21:08.920
came up with a new left city
called JAIC signals, which is nothing but
271
00:21:10.000 --> 00:21:14.200
state management using signals. So to
the end developer, then, is the
272
00:21:14.319 --> 00:21:18.400
use of signals versus observables? Is
it pretty transparent or is it a change
273
00:21:18.440 --> 00:21:22.759
that you have to make in your
in your front end code to and how
274
00:21:22.799 --> 00:21:27.880
you work with them. Actually,
that's it's a very good question because right
275
00:21:27.920 --> 00:21:33.039
now community is very h I mean
there are things which are to be very
276
00:21:33.039 --> 00:21:37.480
complicated, for example, but I
just had a pretty good use case,
277
00:21:37.519 --> 00:21:40.359
right, so very bad. You
have events like where you want steam of
278
00:21:40.440 --> 00:21:42.160
data, you should go with that
exagist but most of the time you don't
279
00:21:42.160 --> 00:21:48.279
need it. Right on why you
need a continuous stream of data in your
280
00:21:48.319 --> 00:21:52.759
front And of course there are use
cases but not always. And that's where
281
00:21:52.799 --> 00:21:56.319
actually people wanted some easy solution,
right, and the signals fills that gap.
282
00:21:56.359 --> 00:22:00.920
But now you have to move,
like you have to change your mindset
283
00:22:02.039 --> 00:22:04.799
from using rx as to signals.
That's complicated because a lot of developers are
284
00:22:04.799 --> 00:22:11.000
still confused, like where should your
data fitching go? Right? I mean
285
00:22:11.119 --> 00:22:12.960
you have to at least you have
to face the data at some point.
286
00:22:14.000 --> 00:22:18.319
It's time, right, And that's
where things are like I think this is
287
00:22:18.359 --> 00:22:22.359
something which will which will be easy
or not easy, but it will be
288
00:22:22.400 --> 00:22:26.200
easy to understand for the developers.
After some people or most of the enterprises
289
00:22:26.240 --> 00:22:30.599
like enterprises start adopting signals, and
they come up with the use cases where
290
00:22:30.640 --> 00:22:34.599
they needed signals and where they don't
need it signals. Right now, it's
291
00:22:34.640 --> 00:22:41.920
like most of the team members from
Angler team and the g d community and
292
00:22:42.200 --> 00:22:45.839
some of the people who have already
worked on signals, they're trying to teach
293
00:22:45.920 --> 00:22:51.240
people that how we use signals.
But it's it's it's good to The adoption
294
00:22:51.319 --> 00:22:52.599
part is going to take some time
here. As you said, yes,
295
00:22:52.640 --> 00:22:56.160
there are people like even I was
confused, like why and where to use
296
00:22:56.200 --> 00:23:00.680
what? But I think after reading
some of the blogs, after eating some
297
00:23:00.759 --> 00:23:04.240
of the like after watching some of
the videos around signals, it is becoming
298
00:23:04.279 --> 00:23:10.000
easier or like easy to understand what
where should I where should I use signals,
299
00:23:10.039 --> 00:23:11.960
and where I should use r XS. It's not like RXS is going
300
00:23:12.000 --> 00:23:17.400
to go away. You know,
as of today, like one percent of
301
00:23:17.400 --> 00:23:21.240
the code based uses r excs.
So just think about it, like removing
302
00:23:21.279 --> 00:23:25.079
the RXS totally. Its it's not
possible almost right, So people have to
303
00:23:25.720 --> 00:23:30.000
think about like this is where I
really like angler that you don't have to
304
00:23:30.200 --> 00:23:34.759
adopt like new feature fully, you
don't have to replace your entire code base,
305
00:23:36.039 --> 00:23:40.160
even for signals. It's like you
can start writing your new code with
306
00:23:40.279 --> 00:23:44.640
signals and you can keep your existing
code as it is and it will still
307
00:23:44.680 --> 00:23:48.880
work. And then if you want
GODOC, you can do incremental migration for
308
00:23:48.960 --> 00:23:52.279
your existing code base, right,
So that's that's a very good thing about
309
00:23:52.319 --> 00:23:56.519
so you don't have like devilots don't
have to be like development like when they
310
00:23:56.519 --> 00:24:02.359
are adopting new features that okay,
should I read everything micropical signals and then
311
00:24:02.440 --> 00:24:06.160
use it exist? But that's not
deep. So if you'll make your life
312
00:24:06.200 --> 00:24:11.599
a little pretty easier if you are
working on enterprise and you already have exists
313
00:24:11.599 --> 00:24:17.359
everywhere ipel this question, yeah,
I mean my understanding, you know,
314
00:24:17.680 --> 00:24:23.200
I've never directly used observables myself with
the observable pattern, but my understanding from
315
00:24:23.240 --> 00:24:27.319
having listened to podcasts or you know, read about it, is that you
316
00:24:27.440 --> 00:24:33.200
really have to adjust your code to
using observables. It's not like just plug
317
00:24:33.200 --> 00:24:36.960
and play, right. You really
got to write your code in a different
318
00:24:36.960 --> 00:24:41.480
structure to use an observable versus not
using it, you know, for lack
319
00:24:41.519 --> 00:24:47.480
of a better term. So it
would seem that moving from observables to signals
320
00:24:47.480 --> 00:24:52.519
would not be a minor undertaking.
It won't be sure, I mean,
321
00:24:52.880 --> 00:24:56.440
if you're using enngetics, I mean
most people do. As a setlic one
322
00:24:56.799 --> 00:25:03.720
in six STAPs in actually nine uses
sign x. So NNGX has some new
323
00:25:03.799 --> 00:25:08.720
functions which are available where you can
if you're if you're savings observables, you
324
00:25:08.720 --> 00:25:12.960
can just convert them to signals so
they have new functions available with the new
325
00:25:12.960 --> 00:25:18.119
releases, so it will make it
can make your life or migration a little
326
00:25:18.119 --> 00:25:22.759
bit easier. But if you have
code base with our egas, I would
327
00:25:22.759 --> 00:25:26.240
suggest don't go there, like at
the start, if you're if you want
328
00:25:26.240 --> 00:25:30.119
to adopt signals, start adopting with
new code which you will write and then
329
00:25:30.160 --> 00:25:33.440
eventually once you have time, which
which is hard, right, I mean,
330
00:25:33.480 --> 00:25:37.319
this is hard because you have to
show the value to your product more
331
00:25:37.519 --> 00:25:41.160
to your company. That why we
are migrating to signals. So just hold
332
00:25:41.200 --> 00:25:45.519
on there and once you get time
and money and energy, then go ahead
333
00:25:45.519 --> 00:25:49.720
and start adopting signals. A good
thing about Angle, as I said,
334
00:25:49.759 --> 00:25:55.119
like they always take care of developers
as well. They focus more on developer
335
00:25:55.160 --> 00:26:00.440
experience, so they have been trying
to provide new fund which can make your
336
00:26:00.759 --> 00:26:06.599
migations much smoother. For example,
in Angler WHENEFA, you have to do
337
00:26:06.640 --> 00:26:11.079
input and output right, so you
have input decorator and output decorator. But
338
00:26:11.319 --> 00:26:15.079
now you have input and output as
available as signals. So they are just
339
00:26:15.160 --> 00:26:18.200
function which gives you signals. Now, so of course once you are once
340
00:26:18.200 --> 00:26:22.000
you think that, okay, these
are places where I don't need and probably
341
00:26:22.039 --> 00:26:26.480
a stream hos like just signals would
be sufficient, you can just start replacing
342
00:26:26.519 --> 00:26:33.160
them with the new function and they're
also uh. A new Anglo jay angle
343
00:26:33.240 --> 00:26:40.519
slash are exist in the rock linely
which is created especially for interoperability between signals
344
00:26:40.559 --> 00:26:45.799
and directions because it's not possible to
just rewrite entire code right to make that
345
00:26:45.839 --> 00:26:48.880
magnition smooth. They also have given
some functions which are available as part of
346
00:26:48.920 --> 00:26:56.160
the frame of itself. I also
yeah, having having played with both,
347
00:26:56.440 --> 00:27:02.799
I found that and I can't art
what the difference is per se, but
348
00:27:02.880 --> 00:27:07.319
it feels like in some instances the
way that observables work and the way that
349
00:27:07.440 --> 00:27:11.079
you know you you kind of put
a stream of data through it and you
350
00:27:11.119 --> 00:27:14.920
know it updates or transforms, you
know, depending on what you need,
351
00:27:15.720 --> 00:27:19.359
versus the way that signals work,
you know, where effectively you update a
352
00:27:19.480 --> 00:27:23.799
value and then anything that subscribed to
it gets the you know, gets the
353
00:27:23.880 --> 00:27:33.480
result. Some some data and some
youI seem to lend themselves better to one
354
00:27:33.559 --> 00:27:38.319
or the other, and so I
also see that. I think anybody who's
355
00:27:38.359 --> 00:27:44.519
thinking I'm just going to migrate all
of my observables to signals, you may
356
00:27:44.599 --> 00:27:48.799
be making things harder in some cases. You're definitely going to make things easier
357
00:27:48.839 --> 00:27:52.240
in other cases. But you know, I think there's going to be some
358
00:27:55.599 --> 00:28:00.039
version of kind of getting a good
feel for where signals shine and where you
359
00:28:00.079 --> 00:28:03.000
may just want to keep doing things
the way you're doing them. By the
360
00:28:03.039 --> 00:28:07.680
mist thing, just to mention you
said you never worked with observables, observables
361
00:28:07.720 --> 00:28:11.440
are actually going to be part of
jobs specification as well. They're already available,
362
00:28:11.880 --> 00:28:15.680
so they're going there there behind the
future flat but it's soundready available.
363
00:28:15.759 --> 00:28:21.920
So it will make probably uh yeah, it will probably increase the adoption maybe
364
00:28:22.119 --> 00:28:26.960
for observables. And it will also
make one thing really good, which is
365
00:28:26.799 --> 00:28:30.559
the rg IS library. Right,
So rges can just remove observables and just
366
00:28:30.799 --> 00:28:36.799
can be a place where you just
you just have operators. So it will
367
00:28:36.799 --> 00:28:40.920
be like win win for the committee
as well as the RIGS has been driving
368
00:28:41.200 --> 00:28:44.759
this library for a long long time. Yeah, we've had Ben on the
369
00:28:44.799 --> 00:28:49.839
show before to talk about RGS.
Now, one of the things I wanted
370
00:28:49.839 --> 00:28:56.599
to go back to one thing you'd
mentioned earlier was regarding data fetching between observables
371
00:28:56.599 --> 00:28:59.680
and signals not being moved. I
know, you know, working in a
372
00:28:59.759 --> 00:29:07.519
huge view front end enterprise application,
you know vieux is where we do a
373
00:29:07.519 --> 00:29:10.720
lot of our data fetching in order
to keep the back end in the front
374
00:29:10.759 --> 00:29:15.759
end and synk. What are the
issues with the data fetching that you mentioned
375
00:29:15.799 --> 00:29:18.559
earlier, whether it's a change or
whether it's an issue or all. And
376
00:29:18.640 --> 00:29:22.519
it was just off hand and I
wanted to clarify that. And if you
377
00:29:22.559 --> 00:29:26.039
see, like data fetching is always
a simpfulness, right, but signal signals
378
00:29:26.039 --> 00:29:30.440
have simpleness, So that's where you
have to really like understand what you should
379
00:29:30.440 --> 00:29:33.960
be using there. And now it's
just was a very good use because you
380
00:29:34.000 --> 00:29:37.400
can just say, okay, it's
an observable because it's a stream of data,
381
00:29:37.480 --> 00:29:41.519
and then you can just wrap it
inside on observable and then the stream
382
00:29:41.559 --> 00:29:45.880
which is coming from your back end, but in signals as it's in a
383
00:29:45.920 --> 00:29:52.519
symchronous synchronous it's if you try to
directly take the data like in Angler,
384
00:29:52.599 --> 00:29:56.400
we use something as a static client
service. So if you try to just
385
00:29:56.519 --> 00:30:00.839
trap or take the data from a
STIC client and sign it to a signals.
386
00:30:00.880 --> 00:30:04.119
It will fail. It will fail
because it's it's the a simplest function,
387
00:30:04.200 --> 00:30:08.680
which is restunning an object to a
syndronus think, so it won't be
388
00:30:08.680 --> 00:30:12.000
able to get the data. So
that was where of course when I tried
389
00:30:12.039 --> 00:30:17.559
it, I was really confused what
should I do here? And luckily I
390
00:30:17.599 --> 00:30:21.000
was actually experimenting with NNGRX, so
NJX can fill that gap for me.
391
00:30:21.119 --> 00:30:25.400
I don't have to focus too much
on that, and I just use the
392
00:30:25.440 --> 00:30:30.119
existing NGRX functionality and just use a
new function which they have evens. So
393
00:30:30.160 --> 00:30:33.440
it's called two signals celic signals.
So there is a function called select signal
394
00:30:33.480 --> 00:30:38.720
so which can wrap up or give
your stream and convert it to a signal
395
00:30:41.279 --> 00:30:42.160
without doing anything. I mean,
you don't have to do much. You
396
00:30:42.240 --> 00:30:48.839
just have to replace your functions which
was earlier observable and just called to select
397
00:30:48.839 --> 00:30:52.960
signal. That's a that'stant. So
that's one thing where like a lot of
398
00:30:52.000 --> 00:30:56.960
people, a lot of new developers
who will start atopting signals will probably struggle.
399
00:30:57.200 --> 00:31:00.640
So okay, let me make sure
you stand this. Because the issue
400
00:31:00.720 --> 00:31:04.920
is a synchronous is the way to
do the data fetching at least you know
401
00:31:04.960 --> 00:31:07.640
what I'm used to, because you
can load your page and not have to
402
00:31:07.680 --> 00:31:14.279
wait for synchronous function So are you
saying that the n g r X wrapper
403
00:31:14.400 --> 00:31:21.759
around signals gives you the capability to
a synchronous data stetching there there's some yeah,
404
00:31:22.160 --> 00:31:26.839
good, Yeah, that's my question. Yeah, yeah, songs something
405
00:31:26.839 --> 00:31:30.519
called Jeric effects, which is which
is made, which is made, which
406
00:31:30.559 --> 00:31:38.000
was made for actually all this simpleness
events or any any functionality which which has
407
00:31:38.119 --> 00:31:41.799
effects, right, which causes an
effect. So it was there from table
408
00:31:42.079 --> 00:31:47.160
and they made it like more better, like two or to support signals.
409
00:31:47.799 --> 00:31:51.279
So they just get it this new
SELP signal functionality, so you can just
410
00:31:51.319 --> 00:31:55.319
easily as I said, like people
who are using ng ng x, they
411
00:31:55.359 --> 00:32:00.240
will have like a very not much
complicated time getting to signals. Fact,
412
00:32:00.839 --> 00:32:05.960
people who are just using plain at
exists. Of course, the internal celebrity
413
00:32:06.000 --> 00:32:10.119
which I mentioned amiability and angulal is
that David still which offers the functionality to
414
00:32:10.160 --> 00:32:15.920
convert signals to observable and observable to
signal. Even I think enetics is using
415
00:32:15.079 --> 00:32:20.599
that internity, but you still have
to write some code. So from a
416
00:32:21.640 --> 00:32:27.039
market standpoint, I'm not sure if
this is something you're aware of. Where
417
00:32:27.039 --> 00:32:32.680
do you see Angler being used?
Ranging from the small one off, you
418
00:32:32.720 --> 00:32:40.519
know, hobby project up to enterprise
applications. My perception, just from various
419
00:32:40.559 --> 00:32:45.119
data points that I've seen around the
web is that it tends to be more
420
00:32:45.160 --> 00:32:51.079
of an enterprise application tool as compared
to a smaller hobbyist, you know,
421
00:32:51.160 --> 00:32:57.119
one off type of thing. For
instance, Uh, my fire department uses
422
00:32:57.480 --> 00:33:01.680
an application and that we use for
tracking all over incidents and medical calls.
423
00:33:01.680 --> 00:33:06.400
And it's very large, and it's
you know, it's it's a company that
424
00:33:07.880 --> 00:33:13.599
you know that provides instances for different
departments and it's based on on Angler.
425
00:33:13.640 --> 00:33:15.599
Excuse an angler? You can tell
by looking in the a lot of n
426
00:33:15.640 --> 00:33:27.319
G stuff. What's your perception of
where this tool is used in that spectrum?
427
00:33:27.720 --> 00:33:30.799
When you say Angler is used in
enterprises, yes it is. And
428
00:33:30.880 --> 00:33:36.559
that's that this is where actually team
wants to change the perspective perspectly now right
429
00:33:37.000 --> 00:33:39.319
because for a longer pit of time, I mean, people were thinking about
430
00:33:39.400 --> 00:33:44.599
like the act as next who has
nuxt so to do all the s?
431
00:33:45.240 --> 00:33:50.920
And it makes like very easy to
play U a bit like new new frame
432
00:33:50.960 --> 00:33:53.680
books. But when it comes to
Angler, I mean that it was there
433
00:33:53.720 --> 00:33:57.279
was no clear clear way, right, I mean there will looks so many
434
00:33:57.319 --> 00:33:59.200
things which you have to learn.
For example, Alex, yes, you
435
00:33:59.240 --> 00:34:01.920
have to learn about just you have
to learn about change section. And now
436
00:34:02.200 --> 00:34:07.799
actually Angler is trying to move up
there, and the whole idea was although
437
00:34:07.839 --> 00:34:13.079
the whole idea is actually to get
more adoption to the new developers as well.
438
00:34:13.559 --> 00:34:16.840
That's the idea. So new dimples
can come easily and start playing around
439
00:34:16.960 --> 00:34:21.719
with tanglags, right, rather than
focusing more on concepts betaric shares or officer
440
00:34:21.800 --> 00:34:29.960
pupils for what you call and even
modules. So now I think more people
441
00:34:30.000 --> 00:34:36.519
have started talking about Angler because it's
becoming more easy for new developers. I
442
00:34:36.519 --> 00:34:38.559
would not say z of course,
there's nothing called nothing in easy, nothing
443
00:34:38.599 --> 00:34:44.960
easy in actually programming. That's that's
just a buzzword. But I would say
444
00:34:45.440 --> 00:34:51.440
as like Anglo prows or the new
feature comes in and it uh the less
445
00:34:51.519 --> 00:34:54.760
number of concepts which you have to
learn about, it will it will grow
446
00:34:54.800 --> 00:35:00.679
in the adoption as well. And
with introducing signals, which is being adopted
447
00:35:00.679 --> 00:35:04.360
by many frameworks already saying there are
frameworks work who are using it. I
448
00:35:04.400 --> 00:35:07.760
think it will only go in the
right direction and more people are more early
449
00:35:08.400 --> 00:35:15.360
early stage companies will also adopt Angler, especially now the buzz around Angler plus
450
00:35:15.360 --> 00:35:19.440
base, which which will make it
a better framework. I think one of
451
00:35:19.440 --> 00:35:22.519
the best, I would say when
it comes to a scile, because this
452
00:35:22.719 --> 00:35:27.960
has been already being tested heavily within
within Google. They have been using it
453
00:35:28.000 --> 00:35:30.719
for a long long time. Even
Google Search is driven by wiz and once
454
00:35:30.760 --> 00:35:36.800
that functionality comes to Angler, I
think there is no other framework which stands
455
00:35:36.840 --> 00:35:38.119
a chance. I would say,
as as as I said, like I
456
00:35:38.480 --> 00:35:40.840
like, I like hort text,
and everyone loves that hot text. Right,
457
00:35:40.840 --> 00:35:45.679
So this is my outtake that everyone
will be doing Angler if they think
458
00:35:45.679 --> 00:35:51.280
about s as a well, Okay, I'll dispute that just based on my
459
00:35:51.400 --> 00:35:54.440
knowledge of other frameworks. I'm just
curious by way of a little background and
460
00:35:54.679 --> 00:36:00.400
apologies if I miss this earlier.
Uh, what experience in working with View
461
00:36:00.480 --> 00:36:04.719
or React or Spelt or some of
the other frameworks as compared to Angular.
462
00:36:07.519 --> 00:36:09.079
I think I started with Angler jas
early, as I said, and then
463
00:36:09.079 --> 00:36:13.840
as I started learning the act,
and then as soon as I started writing
464
00:36:13.920 --> 00:36:15.840
Jas. I said like, okay, this is not the framework I want
465
00:36:15.840 --> 00:36:21.239
to learn, and then who felt
like very similar to Anglo jas. So
466
00:36:21.320 --> 00:36:24.440
I did something. But once I
wrote typescript, right, So, as
467
00:36:24.480 --> 00:36:28.760
I said, in twenty seventy,
no one was doing type scrip and I
468
00:36:29.559 --> 00:36:31.760
started writing Angle because of typescript.
It's sort of it was not like I
469
00:36:31.840 --> 00:36:37.440
liked Angler and I started doing typescript
because I was adopinated. So I came
470
00:36:37.440 --> 00:36:40.840
from a dotinate background all the type
language, and I really like typescript.
471
00:36:40.880 --> 00:36:43.440
So I was like, okay,
this is the line, this is the
472
00:36:43.480 --> 00:36:45.920
frame book. We supports typescript,
so I'm going to just do this.
473
00:36:45.440 --> 00:36:50.119
Of course I learned who I mean
when it was WODO. I think I
474
00:36:50.119 --> 00:36:52.159
did a little bit of WOO three
as well as FCS and all those things.
475
00:36:52.559 --> 00:36:55.760
But yeah, never worked on it. Mostly my work has been around
476
00:36:55.800 --> 00:37:00.559
Angler JAS and most of them.
Now I do an ex toroths. But
477
00:37:01.360 --> 00:37:05.760
so, what are the things coming
out next in Angular that you're excited about
478
00:37:05.960 --> 00:37:10.840
or that people should know about.
Of course, one thing which was as
479
00:37:12.039 --> 00:37:14.440
like there are a few concepts which
is hard to learn about, right,
480
00:37:14.440 --> 00:37:16.639
and one of them was changed section. So if you if you remember like
481
00:37:16.960 --> 00:37:22.079
Charles, like early Anglo Jas had
ala JS one had one issue, right,
482
00:37:22.199 --> 00:37:24.559
which was of course change sections,
so it has it used to like
483
00:37:24.599 --> 00:37:28.599
to all these checks ten times for
nobodies, right, and then ang the
484
00:37:28.679 --> 00:37:31.119
t T two came and team said, okay, we'll try to avoid all
485
00:37:31.159 --> 00:37:36.000
this loops which used to run but
in still there was something known as the
486
00:37:36.039 --> 00:37:42.559
inspection and it used to like run
in more more faster way than the anglage.
487
00:37:43.320 --> 00:37:45.800
But there was something called Enchi zone, so we had we still have
488
00:37:45.840 --> 00:37:51.559
that of course, so en she
zone was actually responsible for catching all these
489
00:37:51.559 --> 00:37:54.960
simpleness defense and then re rendering everything, right, I mean it's it's not
490
00:37:55.039 --> 00:38:00.719
basically rerendering, it's just yeah,
creating the proxy not proxy, but it's
491
00:38:00.760 --> 00:38:07.559
actually rewriting what has been changed.
And this was a big problem when it
492
00:38:07.599 --> 00:38:13.199
comes to enterprises because as Steve also
mentioned, like there is saying that Angler
493
00:38:13.280 --> 00:38:17.880
is already like always being preferred for
enterprise application. True, but when your
494
00:38:17.880 --> 00:38:22.840
application grows a lot and this change
section like runs most time most of the
495
00:38:22.880 --> 00:38:29.159
times, your application becomes slow.
So Angler also wanted to tackle this for
496
00:38:29.199 --> 00:38:32.880
a very long long time, and
there were like multiple discussions around it.
497
00:38:32.920 --> 00:38:37.280
How to do it how to remove
soon. And finally, signals scheme.
498
00:38:37.320 --> 00:38:39.679
As I said, like signals is
a big change because it is also going
499
00:38:39.679 --> 00:38:45.679
to change the way change section works
in Angler. So now the change section
500
00:38:45.760 --> 00:38:49.679
can be granular. What I mean
by granular is a component can have its
501
00:38:49.679 --> 00:38:52.800
own change section, so you don't
have to like run change section on entire
502
00:38:52.800 --> 00:38:57.440
application. I can say, okay, if there is a component down the
503
00:38:57.480 --> 00:39:01.639
tree somewhere, and it can have
just its own state using signals. So
504
00:39:01.679 --> 00:39:06.679
now Signal is going to maintain that
for us. And with handler eighteen that
505
00:39:07.119 --> 00:39:12.519
is already shipped, So now you
can have change section without ang zone and
506
00:39:12.960 --> 00:39:15.400
at a granular level, it's not
like going to impact your entire application.
507
00:39:15.480 --> 00:39:20.360
This is very important for me as
well, because of course I work in
508
00:39:20.480 --> 00:39:23.679
enterprise, have a very large application, and sometimes this causes an issue,
509
00:39:23.719 --> 00:39:28.719
right performance portal nets and then you
have to cure show white screens to your
510
00:39:28.800 --> 00:39:31.199
end users. And no one likes
white white screens, right I mean,
511
00:39:31.440 --> 00:39:35.920
of course as a user, if
I'm using it, I will hate it.
512
00:39:36.199 --> 00:39:38.760
Uh, and uh that's that's going
to be an amazing thing. But
513
00:39:38.920 --> 00:39:43.960
apart from this, like there are
a few features I will name and for
514
00:39:44.000 --> 00:39:50.840
example standardone components so no motives,
models are optional and standard APIs for UH
515
00:39:51.440 --> 00:39:53.639
for example, like for st TP
we had stor to de client. For
516
00:39:53.760 --> 00:39:59.440
router we had rou router modules.
So all these are actually becoming nothing but
517
00:40:00.000 --> 00:40:01.960
functions. So they are like just
a function which you can register and then
518
00:40:02.039 --> 00:40:08.880
use it signals of course, and
then you have, of course with all
519
00:40:08.920 --> 00:40:13.400
these signals and RXS thing, you
also have the top functions, so it
520
00:40:13.440 --> 00:40:19.599
will make your mication smooth and then
Granule level change diction. But the first
521
00:40:19.639 --> 00:40:24.000
thing about Angle which I like is
angy update. So if you have worked
522
00:40:24.000 --> 00:40:28.440
in Angler for some time, you
know, uh, there's one thing which
523
00:40:28.480 --> 00:40:32.280
Angler team does. They never ship
a breaking change. What I mean by
524
00:40:32.480 --> 00:40:36.760
they never ship breaking change. Of
course there are breaking changes which happens,
525
00:40:37.159 --> 00:40:42.239
but Angule team always ships the mignation. So for example, if they're introducing
526
00:40:42.239 --> 00:40:45.000
a breaking change, they will also
ship a migration script to you which you
527
00:40:45.000 --> 00:40:49.440
can run and migrate your entire courts. And this is something which is tested
528
00:40:49.559 --> 00:40:52.760
like on the enterprise application. It's
not something which is tested on your demo
529
00:40:52.800 --> 00:40:59.280
apps. So it's always it always
works. Most of the the propers out
530
00:40:59.280 --> 00:41:02.559
there who have been using amulal they
know that Angler is easy to migrate because
531
00:41:02.559 --> 00:41:07.920
of this micration functionality which is provided
out of the box. So you as
532
00:41:07.920 --> 00:41:09.880
then like if you put enterprises what
they care about, like, of course
533
00:41:09.920 --> 00:41:15.199
they want to make sure that the
framework they are using is up to date
534
00:41:15.719 --> 00:41:20.000
because there are fund there are companies
which cannot tolerate vulnerabilities, and if your
535
00:41:20.039 --> 00:41:22.719
packages are old, of course they
will have vulerabilities right at some point of
536
00:41:22.800 --> 00:41:27.360
the time. And then it helps
you in that as well because they're offering
537
00:41:27.360 --> 00:41:31.840
this automatic migration. And this automatic
migration is not only for enterprise applications.
538
00:41:32.360 --> 00:41:37.599
There are like millions of developers who
are building libraries who are shipping packages for
539
00:41:37.679 --> 00:41:42.039
Anguler. It also works for them. So for example, if I'm maintaining
540
00:41:42.079 --> 00:41:45.320
a library, I can just run
inng migrate as engy update and then I
541
00:41:45.320 --> 00:41:51.239
can migrate my library to the next
version and ship a new build to like
542
00:41:51.880 --> 00:41:57.320
how how many numbers of users I
have? And that's an amazing thing because
543
00:41:57.360 --> 00:42:00.639
this is something which not many frameworks
offer in case they're moving ahead. So
544
00:42:00.719 --> 00:42:06.440
Angular team is making sure that they're
moving ahead, but they're also making sure
545
00:42:06.880 --> 00:42:10.000
the developers who have been using your
frameworks. They're also able to move ahead
546
00:42:10.360 --> 00:42:15.519
without like going into trouble with this, like the migration is fooled. But
547
00:42:16.159 --> 00:42:22.360
the funny problem with migation is you
may get struck because not of Angler framework,
548
00:42:22.480 --> 00:42:24.559
but the third party libraries. It's
always like that, right, I
549
00:42:24.559 --> 00:42:30.039
mean, if you use who or
React, it's always not React or who,
550
00:42:30.079 --> 00:42:32.920
but it's third party libraries which you
use, which causes issues some time.
551
00:42:34.119 --> 00:42:36.800
And the same applies for Anglers.
So you have to make sure that
552
00:42:37.159 --> 00:42:42.400
you have less number of third party
dependencies as much as you can. Of
553
00:42:42.400 --> 00:42:45.239
course there are things which you cannot
avoid, but try to trust on the
554
00:42:45.239 --> 00:42:49.840
libraries which are already which are often
updated, right because as I said,
555
00:42:49.880 --> 00:42:52.199
like the migration path is very easy. You can just do and G update
556
00:42:52.239 --> 00:42:57.880
and then you are migrated with an
expression, which is very good. And
557
00:42:59.199 --> 00:43:02.880
another thing is backward compatibility. So
as I said, like, of course
558
00:43:02.880 --> 00:43:07.480
we are going towards signals, we
are going towards stand alone components, we
559
00:43:07.519 --> 00:43:13.760
are going up towards stand alone APIs. But you can still go ahead and
560
00:43:13.760 --> 00:43:17.519
write a code like with your existing
code base and start adopting these new features,
561
00:43:19.039 --> 00:43:23.719
which which is really cool about analytic
because you can just leave your old
562
00:43:23.800 --> 00:43:28.280
code best as it is, so
you don't have to like rush into migration
563
00:43:28.400 --> 00:43:30.760
to adopt this new feature, and
then you can throw this parallet. So
564
00:43:31.679 --> 00:43:37.000
start writing your like new code with
signals or stand alone component or with standardone
565
00:43:37.000 --> 00:43:39.719
APIs, and then start slowly,
slowly migrating your previous code, which is
566
00:43:40.119 --> 00:43:44.000
which most of the developers needs,
right. I mean they don't want to
567
00:43:44.039 --> 00:43:49.119
actually rush and adopt new new features
because just they cannot do without them.
568
00:43:49.280 --> 00:43:52.639
For example, if you have to
just strike adopt signal into my whole code
569
00:43:52.639 --> 00:43:55.239
base first before adopting signals, it
will make my life is life harder.
570
00:43:55.400 --> 00:44:04.559
Even so, those are few amazing
things which happening in it very cool,
571
00:44:07.039 --> 00:44:14.480
Steve, Did you have any other
questions? I guess I'm just curious about
572
00:44:14.480 --> 00:44:20.800
this migration tool because I'm thinking what
exactly does this target? Because I mean,
573
00:44:20.840 --> 00:44:24.599
you could have the same code written
fifty different ways and fifty different applications,
574
00:44:24.599 --> 00:44:29.320
and trying to have a one size
fits all tool that's autogmatically going to
575
00:44:29.360 --> 00:44:35.360
migrate code seems like you know,
a whole different framework within itself. So
576
00:44:35.440 --> 00:44:42.079
I'm just curious as to what exactly
does this this migration tool that you're talking
577
00:44:42.119 --> 00:44:47.400
about updates to just look for certain
certain code snippets that you know might be
578
00:44:47.440 --> 00:44:52.199
of an updated feature and try to
convert it for you. Or because I
579
00:44:52.360 --> 00:44:55.760
could just imagine something that you were
written and then breaking things, you know,
580
00:44:55.880 --> 00:44:59.760
somewhere down the line. Obviously you'd
have like tests and you know,
581
00:44:59.760 --> 00:45:02.519
maybe type to catch certain things,
but that's not going to catch everything.
582
00:45:04.159 --> 00:45:09.199
So what exactly does this migration to
do for you? So as you said,
583
00:45:09.239 --> 00:45:13.480
like people can write the code into
fifty different pasts, that's not true
584
00:45:13.480 --> 00:45:19.039
for Anglers. So Angler has like
very good structure to write the coorte from
585
00:45:19.119 --> 00:45:22.000
day one. So if you follow
those structure, for example, if you
586
00:45:22.039 --> 00:45:25.599
have a component class and then you
follow the patterns which are actually provident Banglar,
587
00:45:27.000 --> 00:45:30.119
there are not fifty different ways to
do this in Angler code based basically,
588
00:45:30.440 --> 00:45:36.320
and that's why actually Angler it also
makes the life easier for Angler team
589
00:45:36.320 --> 00:45:38.159
because they know that okay, this
is the code which we have to migrate.
590
00:45:38.360 --> 00:45:40.719
For example, as I said,
standardone component, right, so there
591
00:45:40.760 --> 00:45:46.280
is a migration which can convert your
old cote which has Angler modules to stand
592
00:45:46.280 --> 00:45:51.159
alone. Because we know that everyone
was using Model then there is no other
593
00:45:51.199 --> 00:45:54.719
way to do this. And that's
where your your migrations can just run and
594
00:45:54.719 --> 00:45:58.519
say, okay, this is the
component we need to convert to stand alone.
595
00:45:59.679 --> 00:46:02.039
A bit another thing, so if
you if if you are coming from
596
00:46:02.280 --> 00:46:07.000
WU right, so you have something
called who for or something we we four
597
00:46:07.159 --> 00:46:13.199
or we if right, so those
are direct and yeah, so we also
598
00:46:13.239 --> 00:46:16.519
had directives, so of course we
have chief and four. And now anger
599
00:46:16.639 --> 00:46:22.480
is actually has has adopted something called
control flow syntax. So control flow syntax
600
00:46:22.599 --> 00:46:25.760
is something which says at the retief
uh and then at the red four and
601
00:46:25.800 --> 00:46:30.199
then you can just write it without
without need for any extra apple which is
602
00:46:30.280 --> 00:46:35.679
uh, which is I think adopted
from swelled if I'm not wrong, so
603
00:46:35.840 --> 00:46:38.880
it has something similar. And then
to migrate, we know that okay,
604
00:46:38.880 --> 00:46:43.760
there is something called n g if
and four which already exists anral migration.
605
00:46:43.840 --> 00:46:45.960
What it does is it removes and
four n g if with the new control
606
00:46:46.000 --> 00:46:51.320
for syntax behind. And if I
talk about like there is a new magazine
607
00:46:51.360 --> 00:46:54.480
coming from STTP client module, so
everyone uses a STIPI client module, there
608
00:46:54.559 --> 00:46:57.880
is not that way, so they
know like okay, we have to just
609
00:46:58.000 --> 00:47:02.320
plow a stipre client module with a
new new fund Chinese often so this this
610
00:47:02.440 --> 00:47:07.239
makes the life vizier for many of
the tub represents because if I change a
611
00:47:07.320 --> 00:47:10.679
job, I know that this was
going to be detained in the same way
612
00:47:10.679 --> 00:47:15.760
as it was in my bigbas shop. So that makes life zil for the
613
00:47:15.800 --> 00:47:19.599
frement, even including the library of
Autus, because they know that this is
614
00:47:19.599 --> 00:47:25.400
the believer that like in which my
librity will be used. So in other
615
00:47:25.440 --> 00:47:32.519
words, the fact that that Angler
is very highly opinionated in structure is what
616
00:47:32.639 --> 00:47:36.880
makes it easier to migration. That
makes sense. I mean, I've seen
617
00:47:37.559 --> 00:47:40.639
maybe you can speak to this a
little bit. The hierarchy of opinionation factors
618
00:47:40.719 --> 00:47:46.480
amongst the different frameworks seems to range
from React, which is very unopinionated,
619
00:47:46.519 --> 00:47:51.119
and there's you know, a bazillion
different tools whether it's routing or state or
620
00:47:51.119 --> 00:47:55.280
whatever you know, up to view, up to angular and then maybe even
621
00:47:55.320 --> 00:47:59.559
Ember, if I've understood, can
be you know, more opinionated, and
622
00:48:00.400 --> 00:48:06.719
then Angler I've heard that before.
Does that sound fairly accurate? Angler is
623
00:48:06.760 --> 00:48:10.599
openated for sure, So it says
from the table, and I think because
624
00:48:10.800 --> 00:48:14.880
if you see like Angler has there's
no other people do routing, right,
625
00:48:14.920 --> 00:48:19.400
I mean, of course there was
in Anglo gsts and now there's just Angler
626
00:48:19.440 --> 00:48:24.320
Outer. So Angler provides out even
for forms. Angler provide forms even as
627
00:48:24.320 --> 00:48:29.320
a state lak. For data fitching, Angler has something but a cityp already,
628
00:48:29.599 --> 00:48:32.039
so no one else, no one
is doing actually data pitching using other
629
00:48:32.119 --> 00:48:37.239
libraries apart from esterty. So that
ends, as I said, as as
630
00:48:37.280 --> 00:48:38.960
you also mentioned, so that those
are the things which are pretty cool about.
631
00:48:40.000 --> 00:48:43.320
Sorry, what is the name of
the library that does the data fetching
632
00:48:43.400 --> 00:48:47.599
you just mentioned? Angler slash,
common slash, storty. Okay, So
633
00:48:47.760 --> 00:48:51.679
is that its own thing from the
ground up, as compared to maybe like
634
00:48:51.719 --> 00:48:55.519
a wrapper or around axios or something
like that. It's a good question because
635
00:48:55.599 --> 00:49:01.440
Angler had xmlesty pretris for so they
had to develop it based on it.
636
00:49:01.480 --> 00:49:07.760
But now most of the browser supports
right, Oh okay, so it's using
637
00:49:07.840 --> 00:49:12.679
native vetch. So now it's using
against deference, so it's like uh uh,
638
00:49:12.800 --> 00:49:15.239
it's so it's it's not by default, you can enable it, so
639
00:49:15.280 --> 00:49:19.639
it's it's still like, okay,
haying some features. So let's say when
640
00:49:19.639 --> 00:49:22.320
you're using a stratipic line, you'll
just say use fitch and we'll start using
641
00:49:22.360 --> 00:49:30.280
fletch. Okay, that makes sense. The default only made Yeah. I
642
00:49:30.280 --> 00:49:36.239
know, for a while view as
the view to compare has had view Router,
643
00:49:36.440 --> 00:49:38.199
you know, by default that's maintained
by the community. Had vu x,
644
00:49:38.320 --> 00:49:43.719
which was maintained by the community,
but you weren't required to use them.
645
00:49:43.719 --> 00:49:45.079
You had to opt in to use
view Router. You had to you
646
00:49:45.079 --> 00:49:49.039
know, you had to install it, and you had to configure your app
647
00:49:49.760 --> 00:49:52.360
to use it, which means that
you can use other ones. Now by
648
00:49:52.400 --> 00:49:57.440
default, it's much easier to use
the one that's more commonly used and is
649
00:49:57.920 --> 00:50:01.400
maintained by the community. But you've
always had that option to use other tools.
650
00:50:01.400 --> 00:50:05.000
If that well, if for you
know, if for some reason you
651
00:50:05.000 --> 00:50:09.599
want to Now, what about the
last question I have? I know we're
652
00:50:09.639 --> 00:50:15.639
getting short on time here, Chuck. Is one thing I don't see as
653
00:50:15.760 --> 00:50:24.400
much is rappers for Angular with other
tools. Case in point is inertia JAS,
654
00:50:24.519 --> 00:50:27.960
which is one of my favorites and
I've talked about quite a bit,
655
00:50:28.800 --> 00:50:32.679
which is basically a plug uh glue
layer between your front end and your back
656
00:50:32.800 --> 00:50:38.119
end makeing incredibly fast, very easy
to work with because you don't have to
657
00:50:38.239 --> 00:50:42.840
use your jobscript writer on the front
end. You rely on your back end.
658
00:50:42.840 --> 00:50:45.280
You can plug it in with note
or Ruby or Larabelle or so on,
659
00:50:45.599 --> 00:50:51.920
or other tools like Chuck. Maybe
you can tell me Fred shot Astro.
660
00:50:52.599 --> 00:50:55.159
I don't know if they have an
Angular plugin or not, but I
661
00:50:55.239 --> 00:51:00.400
don't see plugins for Angular ass you
know with third party integration tools like that
662
00:51:00.480 --> 00:51:06.719
as much as I do with reacts
belt View. Do you see that changing
663
00:51:06.719 --> 00:51:10.639
in the future as Angler becomes more
easy to use and less more for the
664
00:51:10.719 --> 00:51:15.400
enterprise level or what do you think? I mean, all the cool kids
665
00:51:15.440 --> 00:51:20.400
are going to be using singles,
signals and Angular as as I get it,
666
00:51:21.039 --> 00:51:22.480
Yeah, from what you've been saying. So I'm just curious about that.
667
00:51:23.039 --> 00:51:27.880
I found it Astro Angular. Oh
they do, okay, deal,
668
00:51:28.079 --> 00:51:34.000
Well it's for analog. Yeah,
so I would assume it works just with
669
00:51:34.239 --> 00:51:38.000
Angular. But no, but that
me Tangler. It doesn't talk, so
670
00:51:38.039 --> 00:51:45.519
analog jays Analog guys actually plugging to
work with Okay. True, Yeah,
671
00:51:45.599 --> 00:51:49.920
I mean this is where the me
definite books can fit. The gap step.
672
00:51:50.320 --> 00:51:54.440
So now, if like let's say, once Angler becomes less complicated,
673
00:51:54.480 --> 00:52:01.440
like the thing is, they have
their own what do you say compilers,
674
00:52:01.679 --> 00:52:06.559
which makes things a little bit harder
for everyone to adopt. But once that
675
00:52:06.800 --> 00:52:10.480
compiler becomes easy, I think more
people will start adopting it. As of
676
00:52:10.559 --> 00:52:15.239
now, like Analog team figured it
out like how to do it, so
677
00:52:15.280 --> 00:52:21.519
they wrote their entire framework made of
framework using Angler plus jays. I think
678
00:52:21.559 --> 00:52:28.039
that's the that's the Yeah. I
think on jas is one they have used,
679
00:52:28.360 --> 00:52:30.519
if I'm not wrong. Uh,
and Next also uses it, right,
680
00:52:30.599 --> 00:52:35.400
so they actually took the inspiration from
the Next team and just made this
681
00:52:35.440 --> 00:52:38.440
made of framework. So I think
they're like everybody's working together to get this
682
00:52:38.519 --> 00:52:43.320
done. And the belief thing which
is stopping most of the people is the
683
00:52:43.360 --> 00:52:46.119
way angular compiler works. It's like
for a longer period of time, it
684
00:52:46.159 --> 00:52:49.920
was one leverb pack, so it
was just a putting you back. There
685
00:52:50.000 --> 00:52:52.239
was no other way to do it. Now it's adopting es build. So
686
00:52:52.360 --> 00:52:57.480
now it's it actually uses es build
and uh, it also uses wheat.
687
00:52:57.800 --> 00:53:00.920
But let's say once in future,
let's say, let's just think about so
688
00:53:01.000 --> 00:53:06.480
once it's it's start supporting bet for
the production bill DESM. I think this
689
00:53:06.519 --> 00:53:14.119
is where it will become less complicated
for the authors who are actually creating made
690
00:53:14.280 --> 00:53:16.639
freeworks on top of it. So
but it will it will? I think
691
00:53:16.679 --> 00:53:20.880
I see a future where it will
be possible, but not not right now,
692
00:53:21.400 --> 00:53:25.440
anything else, Steve, before we
jump in the picks? Uh no,
693
00:53:25.599 --> 00:53:29.639
that's all I got. All right, Well, do you want to
694
00:53:29.679 --> 00:53:34.079
start us off with the picks,
then yes, we'll start with the uh
695
00:53:34.920 --> 00:53:37.079
my picks, which are santos in
case who aren't aware of the Dad jokes
696
00:53:37.119 --> 00:53:42.639
of the week are the highlight of
every episode. I just gotta get a
697
00:53:42.679 --> 00:53:49.840
mind up here. I'm so busy
talking. H okay, So question,
698
00:53:51.280 --> 00:53:54.239
would it let see where to go? Would it kill the maker of avocados
699
00:53:54.960 --> 00:54:00.280
to put a different toy inside?
I mean I already have like f fifty
700
00:54:00.280 --> 00:54:12.159
wooden balls already. The other night, my son whose younger son, said
701
00:54:12.519 --> 00:54:15.239
Dad, there's a monster under my
bed? Can I sleep in your room?
702
00:54:15.239 --> 00:54:19.039
And I said, look, it's
you. He's after Why make him
703
00:54:19.039 --> 00:54:24.840
my problem too? I was very
sympathetic, as you can tell. And
704
00:54:24.880 --> 00:54:30.079
here's a question for you, Chuck
or santoge what was more important than the
705
00:54:30.119 --> 00:54:37.559
invention of the first telephone the invention
of the second telephone? Very good,
706
00:54:37.679 --> 00:54:44.360
thank you, thank you. I'm
impressed. Check you know, without one
707
00:54:44.400 --> 00:54:47.119
phone, really nobody to talk to. One of the funniest sketches I ever
708
00:54:47.159 --> 00:54:52.239
heard is if you remember Andy Rooney, Chuck Andy Rooney, he used to
709
00:54:52.559 --> 00:54:57.239
do his little bits at the end
of sixty minutes, and he played a
710
00:54:57.239 --> 00:55:05.480
bit one time where they supposedly had
the answer to the first call to alex
711
00:55:05.559 --> 00:55:08.079
endergrind Bell's telephone, and it was
I'm sorry, I'm not here to pick
712
00:55:08.119 --> 00:55:13.320
up the phone right now, but
if we leave a message right the answering
713
00:55:13.400 --> 00:55:19.119
machine is first phone. It was
great anyway. Yeah, that's all I
714
00:55:19.159 --> 00:55:22.039
got for picks, all right,
Well then I'll jump in with picks.
715
00:55:25.639 --> 00:55:30.599
Yeah, this last week I've mostly
been doing the political stuff and not the
716
00:55:30.719 --> 00:55:35.360
board game stuff. So I'm gonna
pick two games that I've picked before that
717
00:55:36.280 --> 00:55:40.719
I played either with my family or
my friends. The first one is and
718
00:55:40.760 --> 00:55:44.280
this is what I've been playing with
the family. It's called The Crew,
719
00:55:45.480 --> 00:55:53.719
and it's a card game and you
get basically, you get assignments. There's
720
00:55:53.719 --> 00:55:59.360
a little log book basically that tells
you what to do. So it's like
721
00:55:59.440 --> 00:56:04.440
you have to get these four cards
and you assign them out, you know,
722
00:56:04.480 --> 00:56:09.239
to different people, and then yeah, anyway, it's it's really fun
723
00:56:12.079 --> 00:56:16.199
board game. Geek rates it waits
it at one point ninety five, and
724
00:56:16.320 --> 00:56:21.880
basically you just have to be old
enough or mature enough, and you're thinking
725
00:56:21.960 --> 00:56:25.480
to figure out, Okay, how
do I play these cards so that the
726
00:56:25.559 --> 00:56:32.400
right person gets the right card.
And it's very fun. We really really
727
00:56:32.480 --> 00:56:37.039
like it, and so we're on
there. I think there are seventy five
728
00:56:38.480 --> 00:56:43.320
stages that you go through. Right
in the first bunch, you just breeze
729
00:56:43.320 --> 00:56:45.559
through them, like the first ten
or fifteen, right, and so then
730
00:56:45.599 --> 00:56:51.320
they get progressively harder. So the
last one you have a way of communicating,
731
00:56:51.960 --> 00:56:55.920
and you couldn't use that the communication
option until the third trick. And
732
00:56:55.960 --> 00:56:59.679
then there were six cards that had
to be taken in. One of them
733
00:57:00.400 --> 00:57:01.880
was a sign to be taken first
and the other was a sign to be
734
00:57:01.920 --> 00:57:06.679
taken last. And it took us
a bit of doing to get it with
735
00:57:06.719 --> 00:57:10.840
five people. So yeah, anyway, the crew it's way fun. The
736
00:57:10.880 --> 00:57:15.960
other one on Wednesday, me and
my buddies got together and we played another
737
00:57:16.039 --> 00:57:24.840
round of Risk Legacy, which is
also just I grew up playing risk and
738
00:57:28.679 --> 00:57:36.000
so I kind of have this nostalgic
love of the game Risk Legacy is if
739
00:57:36.000 --> 00:57:37.760
you've played any of the legacy games, right, so the last game you
740
00:57:37.880 --> 00:57:45.280
played and the game before that,
I'll impact the current game. And anyway,
741
00:57:45.320 --> 00:57:49.079
it's been really really fun. I
don't think you keep trackle that,
742
00:57:50.440 --> 00:57:52.639
so it has ways of doing doing
that on the board. Right, So
743
00:57:54.000 --> 00:57:59.920
we've played four rounds or five rounds. I think we've played five rounds now.
744
00:58:00.079 --> 00:58:04.880
I won the first two and so
now everybody's gunning for me to make
745
00:58:04.920 --> 00:58:09.239
sure I don't win again. But
I think one of my friends just won
746
00:58:09.280 --> 00:58:15.400
their either one of them won their
first round or somebody just won their second
747
00:58:15.480 --> 00:58:20.960
round because I was, I was
actually eliminated from the game. They wiped
748
00:58:21.000 --> 00:58:25.400
all of my guys off the board. This time. It has a board
749
00:58:25.440 --> 00:58:30.639
game weight on Board Game Geek of
two point five to nine. But it's
750
00:58:30.679 --> 00:58:34.519
been way fun. And then,
like I said, I really love playing
751
00:58:34.599 --> 00:58:45.360
Risk, and so yeah, so
I'm gonna pick those and then yeah,
752
00:58:45.840 --> 00:58:51.000
getting the page up for JavaScript Geniuses. You can find that at javascriptgeniuses dot
753
00:58:51.000 --> 00:58:58.360
com. And yeah, I think
those are all my picks. Santoche,
754
00:58:58.400 --> 00:59:02.280
what are your what are your picks? It can be anything or it could
755
00:59:02.280 --> 00:59:07.800
be anything. Yep, Yeah,
Okay, so we are like posting our
756
00:59:07.880 --> 00:59:13.880
new next episode actually tomorrow on this
is TUK Talks. So the new episode
757
00:59:13.960 --> 00:59:17.000
is with the Angler contributors. So
in case we are looking forward to contribute
758
00:59:17.039 --> 00:59:22.440
to Angler, just go through the
episode and uh, next one would be
759
00:59:22.519 --> 00:59:28.719
like I'm I'll be there at Waterkin
Festival, which is a very big given
760
00:59:28.840 --> 00:59:31.360
here in Germany, which can it's
like a lot of open source contributors,
761
00:59:31.480 --> 00:59:37.480
open source companies like our early stage
companies. It's interesting. Case you're going
762
00:59:37.519 --> 00:59:39.719
coming there in New York from Germany, just let you know we can we
763
00:59:39.800 --> 00:59:44.400
can meet from it cool And if
people want to find you online, where
764
00:59:44.480 --> 00:59:49.360
where are you usually at? So
my Twitter handle is deep I think it's
765
00:59:49.599 --> 00:59:52.320
there's some type of year, but
it's you can find me on LinkedIn and
766
00:59:53.159 --> 00:59:57.480
both places with the same handle.
Awesome. All right, well let's go
767
00:59:57.480 --> 01:00:00.480
ahead and wrap it up. Thanks
for coming. This was lot of fun.
768
01:00:00.079 --> 01:00:02.360
You can. Thanks so much.
All right, till next time,
769
01:00:02.400 --> 01:00:05.440
folks max out how heos