Hey everybody, Welcome back to another episode of JavaScript Jabber. This week,
on our panel, we have Steve Edwards to borrow from a j Yo yo
Yo, coming after coming at you from a cloudy and cool Portland after having
been in Arizona, sonny and warm last week. Right, I'm Charles Maxwood
from Top Endez. Yeah, it was rainy last week here, but looks
like it's going to be a nice day today. So we have a special
guest this week. We have Santosh. I don't know if we have your
last name anywhere where I can see it. You gonna introduce yourself and let
people know who you are and why we're excited to have you here. My
name is and I live in Germany, so I live near Hamburg. I
keep killing people that I live in Hamburg, but it's it's a life because
that's the net. So people in Hamburg so and I put it on.
So I'm seen as of the engineer that's too honest. And I'm involved in
mertical communities, so I'm developer expert for Angula. I'm also a get up
Star and I'm also part of an X Champions program which is a program MANX.
And I'm also co founded for a community so we learn. We run
a committee called This is Learning and This is Tech Talks the podcasts, which
we do generally. Uh, we have been doing it for a year now
and that's what that's what I do. And you might have seen me from
the active and I'm just so much active there, very cool. Well,
the topic I have in front of us, and this might be a little
provocative for some people, is why why Angular is the best framework for you?
And uh, yeah, I think just to get us started. It
seems like React as kind of the one that far and away people are adopting,
and so are you. I guess what I'm asking is are you putting
forward that that's a mistake or just not as good a decision as you could
make if you go for Angular. And I'm just here to share my point
of view bi Angular as best pay Yeah, I mean generally it's like uppe
that you you to decide what what is best for you by Okay, So
why should people use Angular then? Because I know Steve does view. Just
to give a little background, and I've done I've kind of played with them
all and I've mostly settled on Stimulus, which isn't a surprise if you're into
Ruby on rails. So yeah, you might get a little pushback here or
there because neither of us use Angular on a regular basis. For what it's
worth all throwing this caveat that I did start out with Angular, but it's
what is now Angular JSS, Angular one, whatever you want to call the
the first version. So I never I switched twitched over Review at the time
that it was rewritten into Angular too, you know, and on for various
reasons you know that we can discuss. But so I wasn't. That was
my Angler was my my initial step into JavaScript coding on the front end most
people because it was one of the earliest framework, right, I mean it
came even before Yeah, so most of the people were doing Angler jays and
then Angler two came in, which is the current Angler which we are to
talk about. Angler jas is now end of the least end of light,
so it's not even supported by Angler officially, but I think there are few
companies who were supporting long term support. But that's another thing. So it's
like started around Angler two when people started moving away from Angler jas to the
frameworks. I mean that was I would say, yeah, that was very
hard time even for the framework because there are multiple things. Right, when
Angler two came, Anger team said they are going to rewrite it in typescript,
and not many people were fan of typescript. So if you if you
all remember, like Typetrip, Angler was the first tramwork to actually bet on
typescript. They said, yeah, they will rewrite everything in typescript. And
then Microsoft cattal like good, good packing. They even like wrote a blog
post three years ago that Google team, our Angler team was a big support
behind the success because no one was trying to adopt it, but they did.
They're oute of big enterprise framework using type script and it's it's been used
now by millions of developers. So that was the early start. And of
course there was no path. I mean the another issue was Angler JAS to
Angler two. Okay, there was there was no migration path. So everyone's
scared, like what happens tomorrow, right, I mean if once like Angler
jas is officially dead, how we will able we will be able to migrate
to Angler or the new version? There was no clear But of course now
there is a there's a guy, there's a great like anglers who angled it
up and it's available now, but that was the time. Actually there was
some bad decisions, I would say, which which costed like big panic in
the community, even the people who were using Yeah, I remember we were
talking to So I was one of the people that started and hosted for a
long time the Adventures in Angular podcast. That was your first podcast I ever
started listening to check with Adventures and Angler, Okay, yeah, and so
we were talking to Mishkoh and a bunch of the other people that were involved
in a lot of that. Yeah, there was a lot of anxiety at
the time over you know, where Angler was going to end up. And
yeah, they made the cutover to type script. Initially, they were trying
to come up with their own uh script that you know, transpiled to JavaScript
that was similar to typescript, and I guess they got what they wanted from
the typeescripts team and made that transition. But yeah, so at this point,
yeah, Angler is much more modern. It has a lot of other
things going for it. But yeah, anyway, it was just an interesting
time to be involved in that. So that was it was like the same
time I started like two Gangla Jays around winning fifteen. I mean I was
laid into the ecosystem of course, and then twenty seventeen at the Angler four
game, that's when I when I picked it up. So of because I
was lucky not to get into Angler two. I know a lot of people
were actually frustrated with every like breaking changes with a u RC and everything.
I just keep hearing the study and then it makes it like, oh and
I decided not to jump in trite into it, like when Anglo two was
going on. So what is it about Angler that you think makes it a
great choice? Yeah, I mean there are so many things, right,
I mean, first, of course, the current state of Angler. So
if you see, like of course, there was a time when people thought,
okay, Angler is going to be dead. Angler is not going moving
forward, like there are no new features, even like they're not I mean
even they are not listening to the to the community. I mean, if
you if you go to the open issues, they were like like two top
most voted issues which were still open for after four years, and everyone was
frustrated when the even the community was like bait of fun ansious again that what's
what's going to happen? And then came Hangler fourteen. So Angler fourteen as
were all all this new features or the team actually started pushing so many new
things, and I think they they we keep hearing about Angler renaissance, right,
and that's what happened. So after Angler fourteen, Angler started moving into
different directions. They started listening to the community. So most of the top
vote features are actually fixed now, I mean they're they're already being used by
people. And uh, I would say, uh, the kind of shift
which Angler has taken. For example, Angler modules, Like there was a
there was a time that we everyone who was actually teaching Angler or learning Angler
they had to actually word and learn about Angler modules like what what are modules?
And now with that, after Angler fourteen, team decided to actually remove
it, like they said, okay, let's make it optional. So they
started removing the headaches or I would say the most important Uh, not most
important, but I would say most complicated things like which which you need to
understand before jumping into Angler. They started removing those blocks. For example,
they made Angler models option. Okay, they started making uh, some changes
to talk to more functional program For example, not everyone is more comfortable writing
classes in type script. So for example, guards Angler guards, they used
to be all classes. Now they are functions which enabled like there are a
few changes or there isn't there are new functions which enabled most some of the
library offers to actually adopt functional approach. One of the librares I think maxim
meno is jeris, which is for state management. So they started, Yeah,
so they started moving most of the code to functional approach to make it
like more pre more more easy to write. So apart from that, of
course, now let's talk about SSR. There was like a long period of
time where Angler's team said, okay, they are not going to do SSR,
right, I mean, they're not going to support SSR. And then
community came and wrote Angular Universal. Yeah, so Anglo Universal was something which
was driving SSSR for a longer rift. And now Anglar team has actually adopted
that Angler USL as part of the Angler package itself itself. It's called Angular
s are now and the team is focusing more on SSR, so they're trying
to give better experience when you're using SSR, so partial iteration is there.
And now they are trying to merch Angler with another framework called wiz, which
was actually an internal framework within Google. So it's like this is just announced
at Chicon this year that they're going to do it to make SSR more better
met Angular so they have partial iteration, and of course there will be like
more pandular label change fiction which is also coming with a Angular. So those
are the things which makes I would say Angler as best framework for you right
now because they are actually adopting new features making learning framework more more more more
easy to you, Like they are moving all the complicated things more complicated concepts.
Yeah, we can talk about more. Yeah, it's it's funny because
you're talking about a lot of these things. I mean, I remember when
n GR came out, Remember when Angular Universal came out. You know,
we're talking to you know, the guys behind all that work. And yeah,
it seems like a lot of these things though anymore just kind of on
par with what people expect from a modern framework, right. I mean View
has a lot of these same kinds of options, don't they, Steve and
few X and View. I don't know how you do SSR with View,
but yeah, well there's next. I mean you have a you know,
like next or next. I believe Angeler has a meta framework quote unquote don't
they analog now? So I think Spelly has been. I don't know.
I haven't heard from anything from the True brand it's been working on Analog has
any Yeah, so Analog is the meta framebook. Which so let me ask
you one question. You know one of the like I said, apologize,
I haven't really worked in Angular two x on one of the features that View
has that I consistently hear from people who have moved to View from Angular react
or. You know, your framework of choice is the single file templates component
functionality in that you know, basically you have your template function same with you
two or View three or's just straight HTML, right, You're not having to
put backticks around thing to make sure your quotes are you know, just right
so it can interpret it. It's just very easy to read. And then
you plug in any of your attributes and your directives and classes and stuff as
regular HTML, which makes it easier for a designer to work with. Now
I'm reading the Angular docs and I don't see that capability. I might be
missing it because I haven't been studying. So how does Angular make the templating
portion easy? So if a single component is something which is not heavily an
angle of it, so Angler's generally whenever you start a new project us in
CLN, so you have to put strap and component. So you put strap
and root component and then bin root component. You can render anything and temperate
is nothing, but you can actually there are two options. So you can
create an estimate file and you can provide it to the component class that okay,
this is the temperate and where you will have all the estimate files.
Or you can just write it between the deepestrict file itself, so you have
something called template as a string, so you can just say back takes and
then you can start writing your estimal. So it's it's different from others like
for example React as ASIX of course who has dot move file which is where
you can write all the things. But Angle it is like plain STML,
so you can just write estimate file and start writing your stment up with the
help of some of the template functionality which is provided by Angle. If you
need SEFC, if you need sec you should give it. Try to analog
because they are trying to fill in this gap, so they're go adop like
all this features, which is widely asked for but by by the by the
divelopers who are coming from background of food, right, so they are like
thinking about to the secs. So yes, it's availability a handle just I
think you can go and write out with the current rings. Now with those
templates, are you also have a CSS handle? Is that something that's in
a separate file that you would import into your component then, or is that
something that you can do like a style bark or something like that inside of
your component. Both the options are available if you want. You can do
it in line with style styles property, so you can just say okats the
stiles and then you can write your in line spies. Or if you want
a cess file to be a separate file, you can define it as a
string same as your st piles. Right, so you can create as a
CS file or stats file what I when you're using ale supports everything, so
you can just define create that file and just give a path so it will
just work. But it's a second file outside of your component. Is that
right? You can do both. I mean when you can do like within
your types too file, you can say stye and then you can start writing
in a string, but it's a string with backticks around it type of exactly.
Yeah, okay, can the CSS be scoped to a particular component or
is it always necessarily global? So good thing about Angler's FIFA. So whenever
you create a new component like scoped to the current component. So whenever you
like create a new new anglerpiplication and you run it and you try to inspect
any component and you see the stie so that you will find something called energy
content uppended with this. So it makes sure that yours, like stye sets,
are not leaking globally. You can also make it devlople globally. It's
up so it's like it's it's it gives you control to you bite fall.
It's a was wrapped inside the component so it doesn't lead. But if you
want to, you can just make it available everywhere. That's possible, basically
overwriting global school. Now, how does Angular handle or what are the options
for state management? Is that something that's built in that comes by default?
You know View has view actually actually with View three IT'SPNA. Now is the
default state management tool for View three? Uh? Is there are like multiple
options for options you want to use? Or is there a default that's built
into Angular or at least maybe one that's recommended. How does that work?
Question? Because this necessary we can really talk about signals like signals and everywhere
now. So Angler adopted signals to versions pack so Angly sixteen they make it
make it as an experimental so you know the signals, the whole signals idea
that camelong back, but like more people started not adopting it after solid Chase
came up with the solution. Right, and now signals are adopted by a
woof. It's adopted by Swelt and Angler Oswald, so one of the framework
which adopted signals, so to make the state management easier. Right, So
earlier we had multiple options, so we had RHAS which was where you can
actually write your own so if you want to write create your own store,
you can do it using RHAS. Then people, more people from the community,
they created their own solution as I was taken to DUHS and GIS like
was one of the early library which is widely used, so it's like one
of one out of six application in production users. NGX. Then we have
NJXS, which also is pretty good state management framework. And I think there
are a few more like which are mean I haven't used any any other,
but there are a few more which exists. But it comes I wanted to
make the state management thing easier because why you should always reach out to managemental
ability, maybe sometimes you don't need it, and that's why they introduce signals
now. So if you want to make your state management easier, now you
can actually start adopting signals as well. And signals can live anywhere like it
can be it's it can just leave outside your file lege. So for example,
Steve Husa that you are coming from who you are already familiar with Pinion
which users signals actually in kind of signals? I mean, I don't know
is it still using proxy or it uses signals. But a good thing out
of this all new implementation which channel it did? Signals are going to be
part of JavaScript now, so it's it's actually being implemented as part of Java's
specification. So now all frameworks have like most of the frameworks have agreed that
they need signals because they are using it. So Ryan Carnea from solid Chas
he has been what he was the main person behind driving all this and soon
like it will be available in your browser. So that's that's the future.
I think I think everyone will be using signals interest everyone. That's a pretty
it's a pretty big state because because it's part of specification, right, that's
what. Because it's available in new browser now, So even though it's avaliable
to everyone, and I think most primworks are already using it apart from react
and until unless they come with some come up with some solution. But I
think, uh, yeah, all the frameworks are actually already on signals or
give it, give it intake because if you say the act not to react,
but PDIAC already uses signals as but so all the cool kids are using
signals. Huh is that it exactly? Yeah, I've heard about it,
and I know my buddy Eric Hanschad uh did a video with signals in view
and uh, I'm not a big, you know, under the hood guy
normally, but from reading about it, it's it's pretty simmar of the proxies.
If I'm understanding correctly, there the reuses for me for handling reactivity because
you mentioned r x JAS and you know, Chuck. To be honest,
I always have flashbacks of some of the other podcasters Ward and John where they
were talking about r x JAS and they dived right in without explaining what observables
were. And it took me a while to get my head around it.
But are you basically saying that observables is state management, because when I asked
about state management, you brought up r X. JAS was the solution for
a long long time. So because I'm had first class support for our XS,
so every everything was observable. For example, if I'm working with the
rounter, I mean, so every event is nothing but an observable. If
I'm working with that's THEDP, so it's nothing but an observable. So it
was like they had like first class support from Davon and that's why the women
started like building the solution around XS. So if you see nng X,
which which I mentioned, it was nothing but like HGS plus that's and it
was just around it. But now as we have signals, so NJ also
came up with a new left city called JAIC signals, which is nothing but
state management using signals. So to the end developer, then, is the
use of signals versus observables? Is it pretty transparent or is it a change
that you have to make in your in your front end code to and how
you work with them. Actually, that's it's a very good question because right
now community is very h I mean there are things which are to be very
complicated, for example, but I just had a pretty good use case,
right, so very bad. You have events like where you want steam of
data, you should go with that exagist but most of the time you don't
need it. Right on why you need a continuous stream of data in your
front And of course there are use cases but not always. And that's where
actually people wanted some easy solution, right, and the signals fills that gap.
But now you have to move, like you have to change your mindset
from using rx as to signals. That's complicated because a lot of developers are
still confused, like where should your data fitching go? Right? I mean
you have to at least you have to face the data at some point.
It's time, right, And that's where things are like I think this is
something which will which will be easy or not easy, but it will be
easy to understand for the developers. After some people or most of the enterprises
like enterprises start adopting signals, and they come up with the use cases where
they needed signals and where they don't need it signals. Right now, it's
like most of the team members from Angler team and the g d community and
some of the people who have already worked on signals, they're trying to teach
people that how we use signals. But it's it's it's good to The adoption
part is going to take some time here. As you said, yes,
there are people like even I was confused, like why and where to use
what? But I think after reading some of the blogs, after eating some
of the like after watching some of the videos around signals, it is becoming
easier or like easy to understand what where should I where should I use signals,
and where I should use r XS. It's not like RXS is going
to go away. You know, as of today, like one percent of
the code based uses r excs. So just think about it, like removing
the RXS totally. Its it's not possible almost right, So people have to
think about like this is where I really like angler that you don't have to
adopt like new feature fully, you don't have to replace your entire code base,
even for signals. It's like you can start writing your new code with
signals and you can keep your existing code as it is and it will still
work. And then if you want GODOC, you can do incremental migration for
your existing code base, right, So that's that's a very good thing about
so you don't have like devilots don't have to be like development like when they
are adopting new features that okay, should I read everything micropical signals and then
use it exist? But that's not deep. So if you'll make your life
a little pretty easier if you are working on enterprise and you already have exists
everywhere ipel this question, yeah, I mean my understanding, you know,
I've never directly used observables myself with the observable pattern, but my understanding from
having listened to podcasts or you know, read about it, is that you
really have to adjust your code to using observables. It's not like just plug
and play, right. You really got to write your code in a different
structure to use an observable versus not using it, you know, for lack
of a better term. So it would seem that moving from observables to signals
would not be a minor undertaking. It won't be sure, I mean,
if you're using enngetics, I mean most people do. As a setlic one
in six STAPs in actually nine uses sign x. So NNGX has some new
functions which are available where you can if you're if you're savings observables, you
can just convert them to signals so they have new functions available with the new
releases, so it will make it can make your life or migration a little
bit easier. But if you have code base with our egas, I would
suggest don't go there, like at the start, if you're if you want
to adopt signals, start adopting with new code which you will write and then
eventually once you have time, which which is hard, right, I mean,
this is hard because you have to show the value to your product more
to your company. That why we are migrating to signals. So just hold
on there and once you get time and money and energy, then go ahead
and start adopting signals. A good thing about Angle, as I said,
like they always take care of developers as well. They focus more on developer
experience, so they have been trying to provide new fund which can make your
migations much smoother. For example, in Angler WHENEFA, you have to do
input and output right, so you have input decorator and output decorator. But
now you have input and output as available as signals. So they are just
function which gives you signals. Now, so of course once you are once
you think that, okay, these are places where I don't need and probably
a stream hos like just signals would be sufficient, you can just start replacing
them with the new function and they're also uh. A new Anglo jay angle
slash are exist in the rock linely which is created especially for interoperability between signals
and directions because it's not possible to just rewrite entire code right to make that
magnition smooth. They also have given some functions which are available as part of
the frame of itself. I also yeah, having having played with both,
I found that and I can't art what the difference is per se, but
it feels like in some instances the way that observables work and the way that
you know you you kind of put a stream of data through it and you
know it updates or transforms, you know, depending on what you need,
versus the way that signals work, you know, where effectively you update a
value and then anything that subscribed to it gets the you know, gets the
result. Some some data and some youI seem to lend themselves better to one
or the other, and so I also see that. I think anybody who's
thinking I'm just going to migrate all of my observables to signals, you may
be making things harder in some cases. You're definitely going to make things easier
in other cases. But you know, I think there's going to be some
version of kind of getting a good feel for where signals shine and where you
may just want to keep doing things the way you're doing them. By the
mist thing, just to mention you said you never worked with observables, observables
are actually going to be part of jobs specification as well. They're already available,
so they're going there there behind the future flat but it's soundready available.
So it will make probably uh yeah, it will probably increase the adoption maybe
for observables. And it will also make one thing really good, which is
the rg IS library. Right, So rges can just remove observables and just
can be a place where you just you just have operators. So it will
be like win win for the committee as well as the RIGS has been driving
this library for a long long time. Yeah, we've had Ben on the
show before to talk about RGS. Now, one of the things I wanted
to go back to one thing you'd mentioned earlier was regarding data fetching between observables
and signals not being moved. I know, you know, working in a
huge view front end enterprise application, you know vieux is where we do a
lot of our data fetching in order to keep the back end in the front
end and synk. What are the issues with the data fetching that you mentioned
earlier, whether it's a change or whether it's an issue or all. And
it was just off hand and I wanted to clarify that. And if you
see, like data fetching is always a simpfulness, right, but signal signals
have simpleness, So that's where you have to really like understand what you should
be using there. And now it's just was a very good use because you
can just say, okay, it's an observable because it's a stream of data,
and then you can just wrap it inside on observable and then the stream
which is coming from your back end, but in signals as it's in a
symchronous synchronous it's if you try to directly take the data like in Angler,
we use something as a static client service. So if you try to just
trap or take the data from a STIC client and sign it to a signals.
It will fail. It will fail because it's it's the a simplest function,
which is restunning an object to a syndronus think, so it won't be
able to get the data. So that was where of course when I tried
it, I was really confused what should I do here? And luckily I
was actually experimenting with NNGRX, so NJX can fill that gap for me.
I don't have to focus too much on that, and I just use the
existing NGRX functionality and just use a new function which they have evens. So
it's called two signals celic signals. So there is a function called select signal
so which can wrap up or give your stream and convert it to a signal
without doing anything. I mean, you don't have to do much. You
just have to replace your functions which was earlier observable and just called to select
signal. That's a that'stant. So that's one thing where like a lot of
people, a lot of new developers who will start atopting signals will probably struggle.
So okay, let me make sure you stand this. Because the issue
is a synchronous is the way to do the data fetching at least you know
what I'm used to, because you can load your page and not have to
wait for synchronous function So are you saying that the n g r X wrapper
around signals gives you the capability to a synchronous data stetching there there's some yeah,
good, Yeah, that's my question. Yeah, yeah, songs something
called Jeric effects, which is which is made, which is made, which
was made for actually all this simpleness events or any any functionality which which has
effects, right, which causes an effect. So it was there from table
and they made it like more better, like two or to support signals.
So they just get it this new SELP signal functionality, so you can just
easily as I said, like people who are using ng ng x, they
will have like a very not much complicated time getting to signals. Fact,
people who are just using plain at exists. Of course, the internal celebrity
which I mentioned amiability and angulal is that David still which offers the functionality to
convert signals to observable and observable to signal. Even I think enetics is using
that internity, but you still have to write some code. So from a
market standpoint, I'm not sure if this is something you're aware of. Where
do you see Angler being used? Ranging from the small one off, you
know, hobby project up to enterprise applications. My perception, just from various
data points that I've seen around the web is that it tends to be more
of an enterprise application tool as compared to a smaller hobbyist, you know,
one off type of thing. For instance, Uh, my fire department uses
an application and that we use for tracking all over incidents and medical calls.
And it's very large, and it's you know, it's it's a company that
you know that provides instances for different departments and it's based on on Angler.
Excuse an angler? You can tell by looking in the a lot of n
G stuff. What's your perception of where this tool is used in that spectrum?
When you say Angler is used in enterprises, yes it is. And
that's that this is where actually team wants to change the perspective perspectly now right
because for a longer pit of time, I mean, people were thinking about
like the act as next who has nuxt so to do all the s?
And it makes like very easy to play U a bit like new new frame
books. But when it comes to Angler, I mean that it was there
was no clear clear way, right, I mean there will looks so many
things which you have to learn. For example, Alex, yes, you
have to learn about just you have to learn about change section. And now
actually Angler is trying to move up there, and the whole idea was although
the whole idea is actually to get more adoption to the new developers as well.
That's the idea. So new dimples can come easily and start playing around
with tanglags, right, rather than focusing more on concepts betaric shares or officer
pupils for what you call and even modules. So now I think more people
have started talking about Angler because it's becoming more easy for new developers. I
would not say z of course, there's nothing called nothing in easy, nothing
easy in actually programming. That's that's just a buzzword. But I would say
as like Anglo prows or the new feature comes in and it uh the less
number of concepts which you have to learn about, it will it will grow
in the adoption as well. And with introducing signals, which is being adopted
by many frameworks already saying there are frameworks work who are using it. I
think it will only go in the right direction and more people are more early
early stage companies will also adopt Angler, especially now the buzz around Angler plus
base, which which will make it a better framework. I think one of
the best, I would say when it comes to a scile, because this
has been already being tested heavily within within Google. They have been using it
for a long long time. Even Google Search is driven by wiz and once
that functionality comes to Angler, I think there is no other framework which stands
a chance. I would say, as as as I said, like I
like, I like hort text, and everyone loves that hot text. Right,
So this is my outtake that everyone will be doing Angler if they think
about s as a well, Okay, I'll dispute that just based on my
knowledge of other frameworks. I'm just curious by way of a little background and
apologies if I miss this earlier. Uh, what experience in working with View
or React or Spelt or some of the other frameworks as compared to Angular.
I think I started with Angler jas early, as I said, and then
as I started learning the act, and then as soon as I started writing
Jas. I said like, okay, this is not the framework I want
to learn, and then who felt like very similar to Anglo jas. So
I did something. But once I wrote typescript, right, So, as
I said, in twenty seventy, no one was doing type scrip and I
started writing Angle because of typescript. It's sort of it was not like I
liked Angler and I started doing typescript because I was adopinated. So I came
from a dotinate background all the type language, and I really like typescript.
So I was like, okay, this is the line, this is the
frame book. We supports typescript, so I'm going to just do this.
Of course I learned who I mean when it was WODO. I think I
did a little bit of WOO three as well as FCS and all those things.
But yeah, never worked on it. Mostly my work has been around
Angler JAS and most of them. Now I do an ex toroths. But
so, what are the things coming out next in Angular that you're excited about
or that people should know about. Of course, one thing which was as
like there are a few concepts which is hard to learn about, right,
and one of them was changed section. So if you if you remember like
Charles, like early Anglo Jas had ala JS one had one issue, right,
which was of course change sections, so it has it used to like
to all these checks ten times for nobodies, right, and then ang the
t T two came and team said, okay, we'll try to avoid all
this loops which used to run but in still there was something known as the
inspection and it used to like run in more more faster way than the anglage.
But there was something called Enchi zone, so we had we still have
that of course, so en she zone was actually responsible for catching all these
simpleness defense and then re rendering everything, right, I mean it's it's not
basically rerendering, it's just yeah, creating the proxy not proxy, but it's
actually rewriting what has been changed. And this was a big problem when it
comes to enterprises because as Steve also mentioned, like there is saying that Angler
is already like always being preferred for enterprise application. True, but when your
application grows a lot and this change section like runs most time most of the
times, your application becomes slow. So Angler also wanted to tackle this for
a very long long time, and there were like multiple discussions around it.
How to do it how to remove soon. And finally, signals scheme.
As I said, like signals is a big change because it is also going
to change the way change section works in Angler. So now the change section
can be granular. What I mean by granular is a component can have its
own change section, so you don't have to like run change section on entire
application. I can say, okay, if there is a component down the
tree somewhere, and it can have just its own state using signals. So
now Signal is going to maintain that for us. And with handler eighteen that
is already shipped, So now you can have change section without ang zone and
at a granular level, it's not like going to impact your entire application.
This is very important for me as well, because of course I work in
enterprise, have a very large application, and sometimes this causes an issue,
right performance portal nets and then you have to cure show white screens to your
end users. And no one likes white white screens, right I mean,
of course as a user, if I'm using it, I will hate it.
Uh, and uh that's that's going to be an amazing thing. But
apart from this, like there are a few features I will name and for
example standardone components so no motives, models are optional and standard APIs for UH
for example, like for st TP we had stor to de client. For
router we had rou router modules. So all these are actually becoming nothing but
functions. So they are like just a function which you can register and then
use it signals of course, and then you have, of course with all
these signals and RXS thing, you also have the top functions, so it
will make your mication smooth and then Granule level change diction. But the first
thing about Angle which I like is angy update. So if you have worked
in Angler for some time, you know, uh, there's one thing which
Angler team does. They never ship a breaking change. What I mean by
they never ship breaking change. Of course there are breaking changes which happens,
but Angule team always ships the mignation. So for example, if they're introducing
a breaking change, they will also ship a migration script to you which you
can run and migrate your entire courts. And this is something which is tested
like on the enterprise application. It's not something which is tested on your demo
apps. So it's always it always works. Most of the the propers out
there who have been using amulal they know that Angler is easy to migrate because
of this micration functionality which is provided out of the box. So you as
then like if you put enterprises what they care about, like, of course
they want to make sure that the framework they are using is up to date
because there are fund there are companies which cannot tolerate vulnerabilities, and if your
packages are old, of course they will have vulerabilities right at some point of
the time. And then it helps you in that as well because they're offering
this automatic migration. And this automatic migration is not only for enterprise applications.
There are like millions of developers who are building libraries who are shipping packages for
Anguler. It also works for them. So for example, if I'm maintaining
a library, I can just run inng migrate as engy update and then I
can migrate my library to the next version and ship a new build to like
how how many numbers of users I have? And that's an amazing thing because
this is something which not many frameworks offer in case they're moving ahead. So
Angular team is making sure that they're moving ahead, but they're also making sure
the developers who have been using your frameworks. They're also able to move ahead
without like going into trouble with this, like the migration is fooled. But
the funny problem with migation is you may get struck because not of Angler framework,
but the third party libraries. It's always like that, right, I
mean, if you use who or React, it's always not React or who,
but it's third party libraries which you use, which causes issues some time.
And the same applies for Anglers. So you have to make sure that
you have less number of third party dependencies as much as you can. Of
course there are things which you cannot avoid, but try to trust on the
libraries which are already which are often updated, right because as I said,
like the migration path is very easy. You can just do and G update
and then you are migrated with an expression, which is very good. And
another thing is backward compatibility. So as I said, like, of course
we are going towards signals, we are going towards stand alone components, we
are going up towards stand alone APIs. But you can still go ahead and
write a code like with your existing code base and start adopting these new features,
which which is really cool about analytic because you can just leave your old
code best as it is, so you don't have to like rush into migration
to adopt this new feature, and then you can throw this parallet. So
start writing your like new code with signals or stand alone component or with standardone
APIs, and then start slowly, slowly migrating your previous code, which is
which most of the developers needs, right. I mean they don't want to
actually rush and adopt new new features because just they cannot do without them.
For example, if you have to just strike adopt signal into my whole code
base first before adopting signals, it will make my life is life harder.
Even so, those are few amazing things which happening in it very cool,
Steve, Did you have any other questions? I guess I'm just curious about
this migration tool because I'm thinking what exactly does this target? Because I mean,
you could have the same code written fifty different ways and fifty different applications,
and trying to have a one size fits all tool that's autogmatically going to
migrate code seems like you know, a whole different framework within itself. So
I'm just curious as to what exactly does this this migration tool that you're talking
about updates to just look for certain certain code snippets that you know might be
of an updated feature and try to convert it for you. Or because I
could just imagine something that you were written and then breaking things, you know,
somewhere down the line. Obviously you'd have like tests and you know,
maybe type to catch certain things, but that's not going to catch everything.
So what exactly does this migration to do for you? So as you said,
like people can write the code into fifty different pasts, that's not true
for Anglers. So Angler has like very good structure to write the coorte from
day one. So if you follow those structure, for example, if you
have a component class and then you follow the patterns which are actually provident Banglar,
there are not fifty different ways to do this in Angler code based basically,
and that's why actually Angler it also makes the life easier for Angler team
because they know that okay, this is the code which we have to migrate.
For example, as I said, standardone component, right, so there
is a migration which can convert your old cote which has Angler modules to stand
alone. Because we know that everyone was using Model then there is no other
way to do this. And that's where your your migrations can just run and
say, okay, this is the component we need to convert to stand alone.
A bit another thing, so if you if if you are coming from
WU right, so you have something called who for or something we we four
or we if right, so those are direct and yeah, so we also
had directives, so of course we have chief and four. And now anger
is actually has has adopted something called control flow syntax. So control flow syntax
is something which says at the retief uh and then at the red four and
then you can just write it without without need for any extra apple which is
uh, which is I think adopted from swelled if I'm not wrong, so
it has something similar. And then to migrate, we know that okay,
there is something called n g if and four which already exists anral migration.
What it does is it removes and four n g if with the new control
for syntax behind. And if I talk about like there is a new magazine
coming from STTP client module, so everyone uses a STIPI client module, there
is not that way, so they know like okay, we have to just
plow a stipre client module with a new new fund Chinese often so this this
makes the life vizier for many of the tub represents because if I change a
job, I know that this was going to be detained in the same way
as it was in my bigbas shop. So that makes life zil for the
frement, even including the library of Autus, because they know that this is
the believer that like in which my librity will be used. So in other
words, the fact that that Angler is very highly opinionated in structure is what
makes it easier to migration. That makes sense. I mean, I've seen
maybe you can speak to this a little bit. The hierarchy of opinionation factors
amongst the different frameworks seems to range from React, which is very unopinionated,
and there's you know, a bazillion different tools whether it's routing or state or
whatever you know, up to view, up to angular and then maybe even
Ember, if I've understood, can be you know, more opinionated, and
then Angler I've heard that before. Does that sound fairly accurate? Angler is
openated for sure, So it says from the table, and I think because
if you see like Angler has there's no other people do routing, right,
I mean, of course there was in Anglo gsts and now there's just Angler
Outer. So Angler provides out even for forms. Angler provide forms even as
a state lak. For data fitching, Angler has something but a cityp already,
so no one else, no one is doing actually data pitching using other
libraries apart from esterty. So that ends, as I said, as as
you also mentioned, so that those are the things which are pretty cool about.
Sorry, what is the name of the library that does the data fetching
you just mentioned? Angler slash, common slash, storty. Okay, So
is that its own thing from the ground up, as compared to maybe like
a wrapper or around axios or something like that. It's a good question because
Angler had xmlesty pretris for so they had to develop it based on it.
But now most of the browser supports right, Oh okay, so it's using
native vetch. So now it's using against deference, so it's like uh uh,
it's so it's it's not by default, you can enable it, so
it's it's still like, okay, haying some features. So let's say when
you're using a stratipic line, you'll just say use fitch and we'll start using
fletch. Okay, that makes sense. The default only made Yeah. I
know, for a while view as the view to compare has had view Router,
you know, by default that's maintained by the community. Had vu x,
which was maintained by the community, but you weren't required to use them.
You had to opt in to use view Router. You had to you
know, you had to install it, and you had to configure your app
to use it, which means that you can use other ones. Now by
default, it's much easier to use the one that's more commonly used and is
maintained by the community. But you've always had that option to use other tools.
If that well, if for you know, if for some reason you
want to Now, what about the last question I have? I know we're
getting short on time here, Chuck. Is one thing I don't see as
much is rappers for Angular with other tools. Case in point is inertia JAS,
which is one of my favorites and I've talked about quite a bit,
which is basically a plug uh glue layer between your front end and your back
end makeing incredibly fast, very easy to work with because you don't have to
use your jobscript writer on the front end. You rely on your back end.
You can plug it in with note or Ruby or Larabelle or so on,
or other tools like Chuck. Maybe you can tell me Fred shot Astro.
I don't know if they have an Angular plugin or not, but I
don't see plugins for Angular ass you know with third party integration tools like that
as much as I do with reacts belt View. Do you see that changing
in the future as Angler becomes more easy to use and less more for the
enterprise level or what do you think? I mean, all the cool kids
are going to be using singles, signals and Angular as as I get it,
Yeah, from what you've been saying. So I'm just curious about that.
I found it Astro Angular. Oh they do, okay, deal,
Well it's for analog. Yeah, so I would assume it works just with
Angular. But no, but that me Tangler. It doesn't talk, so
analog jays Analog guys actually plugging to work with Okay. True, Yeah,
I mean this is where the me definite books can fit. The gap step.
So now, if like let's say, once Angler becomes less complicated,
like the thing is, they have their own what do you say compilers,
which makes things a little bit harder for everyone to adopt. But once that
compiler becomes easy, I think more people will start adopting it. As of
now, like Analog team figured it out like how to do it, so
they wrote their entire framework made of framework using Angler plus jays. I think
that's the that's the Yeah. I think on jas is one they have used,
if I'm not wrong. Uh, and Next also uses it, right,
so they actually took the inspiration from the Next team and just made this
made of framework. So I think they're like everybody's working together to get this
done. And the belief thing which is stopping most of the people is the
way angular compiler works. It's like for a longer period of time, it
was one leverb pack, so it was just a putting you back. There
was no other way to do it. Now it's adopting es build. So
now it's it actually uses es build and uh, it also uses wheat.
But let's say once in future, let's say, let's just think about so
once it's it's start supporting bet for the production bill DESM. I think this
is where it will become less complicated for the authors who are actually creating made
freeworks on top of it. So but it will it will? I think
I see a future where it will be possible, but not not right now,
anything else, Steve, before we jump in the picks? Uh no,
that's all I got. All right, Well, do you want to
start us off with the picks, then yes, we'll start with the uh
my picks, which are santos in case who aren't aware of the Dad jokes
of the week are the highlight of every episode. I just gotta get a
mind up here. I'm so busy talking. H okay, So question,
would it let see where to go? Would it kill the maker of avocados
to put a different toy inside? I mean I already have like f fifty
wooden balls already. The other night, my son whose younger son, said
Dad, there's a monster under my bed? Can I sleep in your room?
And I said, look, it's you. He's after Why make him
my problem too? I was very sympathetic, as you can tell. And
here's a question for you, Chuck or santoge what was more important than the
invention of the first telephone the invention of the second telephone? Very good,
thank you, thank you. I'm impressed. Check you know, without one
phone, really nobody to talk to. One of the funniest sketches I ever
heard is if you remember Andy Rooney, Chuck Andy Rooney, he used to
do his little bits at the end of sixty minutes, and he played a
bit one time where they supposedly had the answer to the first call to alex
endergrind Bell's telephone, and it was I'm sorry, I'm not here to pick
up the phone right now, but if we leave a message right the answering
machine is first phone. It was great anyway. Yeah, that's all I
got for picks, all right, Well then I'll jump in with picks.
Yeah, this last week I've mostly been doing the political stuff and not the
board game stuff. So I'm gonna pick two games that I've picked before that
I played either with my family or my friends. The first one is and
this is what I've been playing with the family. It's called The Crew,
and it's a card game and you get basically, you get assignments. There's
a little log book basically that tells you what to do. So it's like
you have to get these four cards and you assign them out, you know,
to different people, and then yeah, anyway, it's it's really fun
board game. Geek rates it waits it at one point ninety five, and
basically you just have to be old enough or mature enough, and you're thinking
to figure out, Okay, how do I play these cards so that the
right person gets the right card. And it's very fun. We really really
like it, and so we're on there. I think there are seventy five
stages that you go through. Right in the first bunch, you just breeze
through them, like the first ten or fifteen, right, and so then
they get progressively harder. So the last one you have a way of communicating,
and you couldn't use that the communication option until the third trick. And
then there were six cards that had to be taken in. One of them
was a sign to be taken first and the other was a sign to be
taken last. And it took us a bit of doing to get it with
five people. So yeah, anyway, the crew it's way fun. The
other one on Wednesday, me and my buddies got together and we played another
round of Risk Legacy, which is also just I grew up playing risk and
so I kind of have this nostalgic love of the game Risk Legacy is if
you've played any of the legacy games, right, so the last game you
played and the game before that, I'll impact the current game. And anyway,
it's been really really fun. I don't think you keep trackle that,
so it has ways of doing doing that on the board. Right, So
we've played four rounds or five rounds. I think we've played five rounds now.
I won the first two and so now everybody's gunning for me to make
sure I don't win again. But I think one of my friends just won
their either one of them won their first round or somebody just won their second
round because I was, I was actually eliminated from the game. They wiped
all of my guys off the board. This time. It has a board
game weight on Board Game Geek of two point five to nine. But it's
been way fun. And then, like I said, I really love playing
Risk, and so yeah, so I'm gonna pick those and then yeah,
getting the page up for JavaScript Geniuses. You can find that at javascriptgeniuses dot
com. And yeah, I think those are all my picks. Santoche,
what are your what are your picks? It can be anything or it could
be anything. Yep, Yeah, Okay, so we are like posting our
new next episode actually tomorrow on this is TUK Talks. So the new episode
is with the Angler contributors. So in case we are looking forward to contribute
to Angler, just go through the episode and uh, next one would be
like I'm I'll be there at Waterkin Festival, which is a very big given
here in Germany, which can it's like a lot of open source contributors,
open source companies like our early stage companies. It's interesting. Case you're going
coming there in New York from Germany, just let you know we can we
can meet from it cool And if people want to find you online, where
where are you usually at? So my Twitter handle is deep I think it's
there's some type of year, but it's you can find me on LinkedIn and
both places with the same handle. Awesome. All right, well let's go
ahead and wrap it up. Thanks for coming. This was lot of fun.
You can. Thanks so much. All right, till next time,
folks max out how heos