Paige_Niedringhaus:
hey everyone, welcome to a special crossover episode that we're doing today between React Roundup and Adventures in Angular. I am one of your hosts today and I'm joined by
Jack_Herrington:
Ha
Paige_Niedringhaus:
our
Jack_Herrington:
ha ha.
Paige_Niedringhaus:
great panelists. So I'm Paige Needringhouse and I am joined by our React Roundup panelists, TJ Vantol.
Tj_Vantoll:
Hey everybody.
Paige_Niedringhaus:
and Jack Harrington.
Jack_Herrington:
Hello there.
Paige_Niedringhaus:
And our special panelists who are joining us from Adventures in Angular are Charles Wood.
Charles Max_Wood:
Hey, it's good to be back.
Paige_Niedringhaus:
And Lucas Paganini.
Lucas_Paganini:
Hey everyone.
Jack_Herrington:
That's three
Paige_Niedringhaus:
So,
Jack_Herrington:
on two. Wow. Okay.
Charles Max_Wood:
Ha ha ha!
Tj_Vantoll:
Yes.
Paige_Niedringhaus:
a little bit of an unfair advantage,
Jack_Herrington:
Right.
Paige_Niedringhaus:
but
Jack_Herrington:
Exactly.
Paige_Niedringhaus:
I will take it.
Jack_Herrington:
Okay.
Charles Max_Wood:
Right.
Lucas_Paganini:
Yeah, we're definitely in a disadvantage here, Czech, but I don't have the go. Let's start with that. None of us have the go of trying to convince the audience of using a different framework. So for those of you listening to this on Adventures in Angular, we won't try to convince you to use React. For those of you listening on React Roundup, I'm not gonna try to convince you to use Angular. So the go of this episode is just for us to give an overview things are going in the other side. So on Angular, we already know, for those of you that are listening on Adventures in Angular, we already know the most recent technologies and, oh, we have this problem. What do we use? Oh, let's use that. That's the solution that everybody uses for Angular. But we don't know that for React. And the same holds true for the audience on React Roundup. So how would that be done in Angular? And I think that before you close this and say, I don't care about that. I actually think you should, because today we still have three big JS frameworks. Like Angular, React, and Vue are still the most used frameworks worldwide. And I mean, not to troche that Vue. Vue is great. But I think React and Angular are in its own kind of category in terms of popularity, in terms of usage. Vue is still. clearly in the third place there. It could rise, but still clearly on third. So I think knowing what's going on in the other, also super popular alternative framework is extremely relevant because you might bring some of that knowledge to how you do things in your framework or maybe who knows, you might just realize that you actually prefer Angular. Oh, shit, I said I wouldn't try to convince you.
Charles Max_Wood:
Ha ha
Lucas_Paganini:
But...
Charles Max_Wood:
ha! Well,
Lucas_Paganini:
Yeah.
Charles Max_Wood:
I'm just gonna chime in on this too, because I was a panelist on this, I was gonna say on this show, but we've got two shows.
Jack_Herrington:
Ha
Charles Max_Wood:
I've
Jack_Herrington:
ha.
Charles Max_Wood:
been a panelist on both shows, right? And I've been doing the Angular podcast a lot longer than the React podcast. And some of the things, yeah, it's a different approach, makes you think about your problems different. But the other thing is, is like, the Angular CLI adopted Webpack before they started moving it over or Bazel or whatever they're calling it these days. Right? And a lot of the other ideas have been adopted back and forth between the frameworks. And so seeing how one framework does things in a way that advantages developers, it may actually bleed over into what you're doing. And so being aware just kind of gives you that extra advantage in if it gets adopted into whatever framework you're using. And the other thing is, is that sometimes thinking about the problem differently is an in the sense that you you see a solution that is better fitted for your problem then the way that people kind of traditionally. Reach for the same thing over and over and then realize hey look i've got a shoehorn a whole bunch of stuff in here in order to make it work.
Tj_Vantoll:
Yeah, I think all of us are going to be, at some point, there's always going to be a next app you have to build.
Jack_Herrington:
Ha ha.
Charles Max_Wood:
Mm-hmm.
Tj_Vantoll:
And the best technology choice might not be the tech that you're currently using. So it's always good to just keep an eye on what's out there and such. But before we get into the tech stuff, do we want to start with just a round of intros? Because I think some voices are going to be definitely
Charles Max_Wood:
We
Tj_Vantoll:
unfamiliar
Charles Max_Wood:
should.
Tj_Vantoll:
to everybody in some of these feeds. So I can start off. I'm TJ Vantoll. I'm a long time web developer and also developer advocate. I work for a company called Blues, where we're making some fun, stuff and I am hashtag team react in this conversation.
Jack_Herrington:
Haha!
Lucas_Paganini:
Ha ha ha
Charles Max_Wood:
Ha ha ha!
Paige_Niedringhaus:
Nice.
Tj_Vantoll:
Paige, you wanna go next? We can keep the react train going.
Jack_Herrington:
There you
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
go.
Paige_Niedringhaus:
absolutely. So my name is Paige Needringhaus. I'm also a web developer and it just so happens that TJ and I work for the same company. I'm more on the front end web development side whereas he's more into the DevRel space but there's a lot of crossover between us. So I'm also one of the hosts for React Roundup and definitely on the React train. But always open to learning new JavaScript frameworks playing with new toys like Svelte so yeah, I'm just happy to be in the web development world and getting to use all these cool technologies.
Jack_Herrington:
And they are very cool. So I'm Jack Harrington. I'm a YouTuber and also a full time principal engineer. I've been doing React, boy, since like React, Angular 1.5. That's split. So very early React days. And I was actually advocating for Angular way back in the day because I thought it was actually a more complete framework. And it actually, I got to say, seeing the evolution of both systems has been very interesting.
Lucas_Paganini:
Thank
Jack_Herrington:
Ha ha.
Paige_Niedringhaus:
Thank you. Bye.
Charles Max_Wood:
Ha ha ha
Lucas_Paganini:
you. Interesting that Jack, you didn't say which team you're on. I think we can keep going. Yeah, you don't need
Jack_Herrington:
I'm
Lucas_Paganini:
to.
Jack_Herrington:
on
Lucas_Paganini:
Oh,
Jack_Herrington:
Team Web Dev. Man,
Lucas_Paganini:
great.
Jack_Herrington:
I use whatever it takes. I like view. I like solid. I like it all.
Lucas_Paganini:
Thank you. At least that's like a two versus two.
Jack_Herrington:
Ha ha! Two and a half versus two and a half, how about that? But
Charles Max_Wood:
Ha
Jack_Herrington:
I gotta
Charles Max_Wood:
ha
Jack_Herrington:
say, I'm
Charles Max_Wood:
ha!
Jack_Herrington:
not
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
super angular at the moment though. I, mm, like the angular CLI, that's actually something you could talk
Lucas_Paganini:
Yeah.
Jack_Herrington:
about. That's like one thing I'm like, oh, really? But anyway, go on, sir. I'm not super angular at the moment though. I'm not super angular at the moment though. I'm not super angular at the
Paige_Niedringhaus:
That's
Jack_Herrington:
moment though.
Paige_Niedringhaus:
the...
Jack_Herrington:
I'm not super angular at the moment though. I'm not super angular at the moment though. I'm not super angular at the moment though. I'm not super angular at the moment though.
Lucas_Paganini:
Okay. Charles, do you want to go first?
Charles Max_Wood:
Yeah, whatever. So I'm Charles Max Wood. If you've listened to the older episodes of React
Lucas_Paganini:
Thank you.
Charles Max_Wood:
Roundup, I'm on there. If you listen to Adventures in Angular, I did take a break from that show too for a little bit, and now I'm back. And I run the podcast network, right? And so I'm doing a lot of that kind of a thing. To be perfectly honest, if we're pinning it down, I'm on Team Ruby.
Jack_Herrington:
Hehehehehe
Paige_Niedringhaus:
Thank you. Bye.
Charles Max_Wood:
But...
Lucas_Paganini:
Oh man, that's getting too hard on my side.
Charles Max_Wood:
I know right? But at the end of the day, I mean, I'm really just in favor of people, you know, figuring out what works best for the problems we're trying to solve. And I mostly focus these days on helping people level up on their skills so that they can move ahead with their career and build the kind of career that lets them get the top pay they can get, build the reputation they want, get notice for the things that matter to them, and then contribute to the community. And so when we're kind of dialing that in, ultimately, yeah, I'm trying to put out resources that do that, right? That's why we have so many shows on so many technical topics. Just kind of for a moment of shameless self promotion, few things that I am putting out there lately, and this is gonna hurt Lucas's feelings even more, but I'm putting out some video series on different topics that people are asking me about. it's career focus, I'm gonna have career focus series, you get a couple videos every week, and then the same thing for, dare I say it, people are asking me for a react. And so I'm gonna put out a series on react, and I'm gonna put out a series on game development is the other one that people keep asking me for. So keep an ear and eye out for a new show on that. I also just launched the developer toolbox show, and you know, interviewing people who build open source or paid what are we trying to solve? But yeah, you can go find all of that stuff. You can also find our book club. Just go to topendevs.com and that's where all that stuff lives. And yeah, if you have another idea of something you're trying to figure out, need help with or learn, let me know.
Lucas_Paganini:
Awesome, awesome. And well, I'm the last voice in the show. My name is Lucas Paganini. I am the host of Adventures in Angular. So along with Chuck, we're every week posting content about Angular, so we're keeping everyone updated on all the newest things that are released in the related technologies. I am also the CEO of Unvoid. Unvoid is a software development company offers design and software development services with specialization in Angular and functional programming. So as you may have guessed, Angular is a strong preference of us. So we tend to actually even reject React projects, not that we don't like React, but it's just that since it's not our strong suit, I think that there are options, there are better options. So if we get a client that a better job. In the future I plan on hiring excellent React developers and having that as an expertise of ours too, but for now we are extremely focused on Angular projects. Of course, Foo Stack, but specialized in Angular. So this is what I do. And yeah, I am Team Angular, but there are a
Tj_Vantoll:
Mm-hmm
Lucas_Paganini:
lot of things that I like So I am not ashamed of saying that in any way. I really want us to try to find the best of both worlds, or actually the best of all worlds, because there are many other frameworks that are doing awesome things, and we are all the time bringing ideas from these other frameworks too. There are new things in Angular that were ideas that were borrowed from other frameworks. It wasn't from React. I imagine that React had a similar... something similar, maybe there are a lot of new things coming to react that started in other frameworks. So as Jack said, I am team web development, but
Jack_Herrington:
Ha ha ha.
Lucas_Paganini:
my personal preference, if I'm starting a new project, I would start with Angular.
Tj_Vantoll:
Well,
Charles Max_Wood:
Yeah.
Tj_Vantoll:
okay, I've got an opening question here because when I think about the two frameworks and people would ask me about the difference between the two of them, my usually my high level answer was that React lets you make more choices,
Jack_Herrington:
Yeah.
Tj_Vantoll:
like pick and choose your own CSFs implementation,
Lucas_Paganini:
Yeah.
Tj_Vantoll:
state management,
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
whatever, whereas Angular is kind of more the complete package where everything is baked in. So first I'm curious if people agree with that sentiment still true to this day. And then I'd also be curious from the angular people, like, what are some of the things that are baked into angular that some sort of features that you get by default with a framework when you just install it and use it?
Lucas_Paganini:
Okay.
Charles Max_Wood:
Well, I think one thing that's interesting is you mentioned the CSS framework and the state management, and neither of those are really baked in. I mean, you can pull them in and you have stuff like NGRX that's designed to work hand in glove with Angular, but you can go pick a MobX or something else and, right? So those aren't decisions that are made for you, but yeah, the framework definitely does more for you than say just straight up plain old React with no, nothing else added
Jack_Herrington:
So
Charles Max_Wood:
onto
Jack_Herrington:
there's
Charles Max_Wood:
it.
Jack_Herrington:
no built-in
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
state management primitives at all? In Angular?
Lucas_Paganini:
I mean,
Charles Max_Wood:
No.
Lucas_Paganini:
there are some primitives that make it easier for you to do a state
Charles Max_Wood:
Yeah.
Lucas_Paganini:
management system, but an entire module for state management, no. But the thing is, the Angular community, they got used to this idea of choosing for an opt-inated answer for everything. So even though we don't have something like that baked in, every time that we have something a lot of other developers are going to have, generally there's one solution that rises to the top and everybody
Paige_Niedringhaus:
Mm.
Lucas_Paganini:
uses that.
Jack_Herrington:
Hmm.
Lucas_Paganini:
So in Angular, we are very opinionated even in the third party libraries. So that makes it easier for us, even though it isn't from the core team, it's still the official solution. And that's it. I hope you enjoyed this video. I hope you enjoyed this video. I hope you enjoyed this video. I hope you enjoyed this video. I hope you enjoyed this video. I hope you enjoyed this video. I hope you enjoyed this video.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
It's gonna say in the react world, there are 27 solutions.
Jack_Herrington:
Ha ha ha
Tj_Vantoll:
There's
Paige_Niedringhaus:
And they're
Tj_Vantoll:
chaos,
Paige_Niedringhaus:
all pretty good.
Tj_Vantoll:
there's drama.
Charles Max_Wood:
Bye. Bye.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
You get some great tech out of it, but you also get complete and other insanity as
Paige_Niedringhaus:
I mean, routing is one that comes to mind in particular.
Tj_Vantoll:
well.
Lucas_Paganini:
Yeah.
Charles Max_Wood:
Yes.
Paige_Niedringhaus:
There's a million React routers that you can choose from depending on what the flavor of
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
the week is. So, I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that. I'm going to go ahead and do that.
Jack_Herrington:
Right, plus the framework itself can do routing. I mean, you got Next.js
Charles Max_Wood:
Right.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
and Remix and those all. I mean, Remix is based on React Router. So, you know, you got all these options. Yeah, it gets complicated pretty fast. But that was the thing I was thinking about, like Angular, the CLI, right? And I actually got into a kind of Twitter fight with some of the Angular folks a while back about the Angular CLI. And I was
Charles Max_Wood:
Good
Jack_Herrington:
trying,
Charles Max_Wood:
for you.
Jack_Herrington:
yeah, right, as
Lucas_Paganini:
Thank
Jack_Herrington:
if
Lucas_Paganini:
you.
Jack_Herrington:
it changed anything, right?
Tj_Vantoll:
Keeping
Charles Max_Wood:
Uh-huh.
Tj_Vantoll:
him honest,
Jack_Herrington:
Yeah.
Tj_Vantoll:
yeah.
Jack_Herrington:
And I was like, every other framework, solid or view or react, whatever, I can go and take any project that doesn't have a framework, and I can npm install that framework into that project and then just start using it. I just create whatever, react, whatever. I'm going to get server-side rendering or any really sophisticated features, but I can at least use a framework. But I
Charles Max_Wood:
Mm-hmm.
Jack_Herrington:
can't do that with Angular. And they were like, yeah, but you should write your whole app in Angular and that's it. Like as if there's it's either or and then and I think that's actually One of the things that really distinguishes the two which is
Lucas_Paganini:
Thank you.
Jack_Herrington:
you know react was meant to be a view framework That you could then have like you could adapt it with ember or whatever It's like hey you can use as much or as little as you want right whatever and yes It's become kind of
Charles Max_Wood:
Thank you.
Jack_Herrington:
bigger
Charles Max_Wood:
Thank you.
Jack_Herrington:
and more than that obviously but There's no migration path with angular. It's like oh what if I wanted to dabble with I can't really do that. I can't dabble with it. It's either my app or it's not. And that's kind of where I got to with it, which is not great. I mean, if you want adoption in your framework, you want to give people a way to slowly get into it. Like as an example, I can go and take Svelte and put it into my React app. I can make a Svelte component and just mount it in my React app and be done. And then now I'm playing with Svelte and React simultaneously. Yay! Right? But I can't do the same thing with Angular.
Lucas_Paganini:
Okay, I'd like to take that one
Jack_Herrington:
Yeah,
Lucas_Paganini:
because
Jack_Herrington:
hear me.
Lucas_Paganini:
there are ways for you to do that currently. We didn't have that in the beginning, so I'll give you that. And it isn't very easy, like as easy as you plug in another library, but there is a way to do that. And basically the way is using a module that Angular has a native module from Angular, which allows you to transform your Angular components custom elements. So by using that, then it's at the end of the day is just a native custom element using web technologies and then you can just use it as you would any other native HTML elements. But when we were discussing that and also the question that TJ brought up in the beginning about the conceptual differences between React and Angular, I realized that we skipped a big history lesson here. which is the difference between AngularJS and Angular. So I'd like to take a quick three minute detour just to give that context to the React audience. For the Angular
Charles Max_Wood:
Watch
Lucas_Paganini:
audience,
Charles Max_Wood:
out,
Lucas_Paganini:
yeah,
Charles Max_Wood:
people
Lucas_Paganini:
yeah. Yeah.
Charles Max_Wood:
have
Lucas_Paganini:
Yeah. Yeah.
Charles Max_Wood:
feelings
Lucas_Paganini:
Yeah. Yeah.
Charles Max_Wood:
about
Lucas_Paganini:
Yeah.
Charles Max_Wood:
this.
Lucas_Paganini:
Yeah. Yeah. Yeah.
Jack_Herrington:
Ha
Charles Max_Wood:
Ha
Lucas_Paganini:
Yeah.
Charles Max_Wood:
ha
Lucas_Paganini:
Yeah.
Jack_Herrington:
ha ha
Lucas_Paganini:
Yeah.
Jack_Herrington:
ha!
Charles Max_Wood:
ha
Lucas_Paganini:
Yeah. Yeah. Yeah.
Charles Max_Wood:
ha!
Lucas_Paganini:
Yeah.
Paige_Niedringhaus:
A lot of us have experience with this too.
Jack_Herrington:
Yeah, right. Exactly.
Charles Max_Wood:
Yeah.
Jack_Herrington:
A lot of us, that's why we're using rack right now, but please go on.
Lucas_Paganini:
Okay, I'll try my best. So we have a three year gap between AngularJS React and Angular as we know it today. So AngularJS was released in 2010, React in 2013, and Angular as we know it today in 2016. So what is the difference? Isn't it AngularJS and Angular, isn't it the same thing? It's the same name, which makes it extremely hard to differentiate, but it's actually a complete different thing, like completely different. The team at Google that built Angular, the current version of Angular, built it using different technologies and even some different architectural patterns. So if you try to look at AngularJS code and Angular code, you will be pretty confused because They have a lot of conceptual differences. So the first thing for us to know here is they are different things. So AngularJS is one thing, Angular is another. If it was the right call to have the same name or not, there's no reason to get into that. It is what it
Jack_Herrington:
Ha
Lucas_Paganini:
is.
Jack_Herrington:
ha ha.
Lucas_Paganini:
That's how it was done.
Charles Max_Wood:
Thank you. Bye.
Lucas_Paganini:
I do think that if we're going to call this a mistake or a good marketing idea, I think that part that I would touch is that I think the migration should have been easier and that would not have made so many haters right from the beginning of the Angular framework. So if you were as easy as it is today to migrate an AngularJS application to Angular, then I think we would be in a good place because today the Angular team heard us. They know the challenges that we were presented when this migration happened and now they provide great solutions to that so you can migrate an AngularJS application to the newest version of Angular. I won't say that it's easy but it is much easier than it was before but at the time that it happened it wasn't that easy and then Angular itself started out with a lot of haters in its club. So from the audience that should have been the enthusiasts about it which are the developers that were using AngularJS A lot of them became haters because it was so hard to transition and it was so different
Charles Max_Wood:
Thank you. Thank you.
Lucas_Paganini:
that it was literally a different framework, but with the same name. So it's almost as if you are using an iPhone your entire life and then Apple launches a new iPhone, which is called like iPhone 15, but it's running Android and it has no touchscreen and like you just. talk to it is just an AI says, I don't know, like it's completely different. You know, it's too many changes make it become a new thing, a different thing instead of just a new version. So I think that was the biggest problem at the time. But yeah, the interesting thing is to know that Angular, as we know it today, is growing every day. Like they have release major versions two times a year, so every six months on average. And they are outputting new versions constantly. Like we are on version 15 of Angular and we are rapidly approaching version 16. And.
Tj_Vantoll:
You're rapidly approaching React's versions as well.
Lucas_Paganini:
Right.
Jack_Herrington:
Yeah, you
Charles Max_Wood:
Ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha
Jack_Herrington:
know, they'll exceed
Paige_Niedringhaus:
That's
Jack_Herrington:
it in
Paige_Niedringhaus:
your
Jack_Herrington:
a couple
Paige_Niedringhaus:
pass,
Jack_Herrington:
of years.
Paige_Niedringhaus:
I'm pretty sick.
Jack_Herrington:
Okay, but I can I can I just jump in? Like, I don't understand.
Lucas_Paganini:
Go ahead.
Jack_Herrington:
So it does angular JS still exist? I mean, this is eight years ago. This
Lucas_Paganini:
Mm-hmm.
Jack_Herrington:
is like pre COVID. Is there is history?
Tj_Vantoll:
I
Paige_Niedringhaus:
it
Tj_Vantoll:
think
Paige_Niedringhaus:
does.
Tj_Vantoll:
a lot of our listeners,
Jack_Herrington:
Like,
Charles Max_Wood:
Nothing
Tj_Vantoll:
we're getting
Charles Max_Wood:
ever
Tj_Vantoll:
to the
Charles Max_Wood:
goes
Tj_Vantoll:
point,
Charles Max_Wood:
away.
Tj_Vantoll:
yeah,
Jack_Herrington:
wait, so.
Paige_Niedringhaus:
You
Tj_Vantoll:
a
Paige_Niedringhaus:
can
Tj_Vantoll:
lot
Paige_Niedringhaus:
still
Tj_Vantoll:
of our listeners
Paige_Niedringhaus:
find
Tj_Vantoll:
probably
Paige_Niedringhaus:
the docs.
Tj_Vantoll:
don't even know this happens.
Charles Max_Wood:
Yeah.
Jack_Herrington:
Oh Lord. So is this still a thing though? I mean, or is it just like, oh, there's way there's old legacy AngularJS applications that haven't even converted
Charles Max_Wood:
Yeah.
Jack_Herrington:
yet? I mean, is that it really? But I mean, okay.
Charles Max_Wood:
Yeah, that's basically it.
Lucas_Paganini:
It has reached end of life. So the end of life for AngularJS was reached on December 31 of 2021. So two years ago. And but it still exists because imagine that you are a really, really big company and you really made a huge bet on that framework. Maybe you you still have that running and you don't want to touch it. You're afraid of just breaking a lot of things. by doing this migration. By the way, if that's the case, just hire my company, we can do that for you
Jack_Herrington:
Ha
Lucas_Paganini:
without
Jack_Herrington:
ha.
Paige_Niedringhaus:
Thank
Lucas_Paganini:
breaking
Paige_Niedringhaus:
you. Bye.
Lucas_Paganini:
the entire thing.
Tj_Vantoll:
Thank you. Thank
Charles Max_Wood:
Ha
Tj_Vantoll:
you.
Charles Max_Wood:
ha ha!
Lucas_Paganini:
Yeah, that was a great place to put up a
Tj_Vantoll:
Hey.
Lucas_Paganini:
promotion there. But yeah, it still exists, but it's no longer, they don't release new features, but they still do security patches. So if there's any security issues, the Angular team will still fix that and you will have a new point release of AngularJS which will have the security fixes. So they still support that for security reasons, but they don't do any new features on it. Everything is done on Angular, not AngularJS. But AngularJS is known as Angular version one. So everything that is Angular one dot something, this is AngularJS. Everything that is Angular version two above is Angular. Does that help, Jack?
Tj_Vantoll:
Um.
Jack_Herrington:
Sure, just for
Lucas_Paganini:
Thank
Jack_Herrington:
those
Lucas_Paganini:
you.
Jack_Herrington:
budding framework developers out there, don't do that. Just
Paige_Niedringhaus:
choose different names.
Charles Max_Wood:
Well.
Tj_Vantoll:
Thanks.
Jack_Herrington:
learn from Angular. Just don't ever
Tj_Vantoll:
Hey. Hi.
Jack_Herrington:
do that.
Charles Max_Wood:
Well, it's interesting because we get into, because I know React releases with breaking changes.
Tj_Vantoll:
Thank you.
Charles Max_Wood:
The difference
Jack_Herrington:
It does?
Charles Max_Wood:
is, is that they don't do them all at once.
Jack_Herrington:
They release
Charles Max_Wood:
It does?
Jack_Herrington:
with Debra Cation. And then
Charles Max_Wood:
Yeah,
Jack_Herrington:
eventually,
Charles Max_Wood:
that, well, and then they take,
Jack_Herrington:
but you get
Charles Max_Wood:
yeah,
Jack_Herrington:
console
Charles Max_Wood:
and then they take
Jack_Herrington:
warnings
Charles Max_Wood:
the stuff
Jack_Herrington:
out of the
Charles Max_Wood:
out.
Jack_Herrington:
yin-yang. Yeah, but eventually. I
Charles Max_Wood:
No,
Jack_Herrington:
mean...
Charles Max_Wood:
it's true, but my point is, is that you, you don't get
Jack_Herrington:
Thank
Charles Max_Wood:
all
Jack_Herrington:
you.
Charles Max_Wood:
of those, hey, we're deprecating all this stuff,
Jack_Herrington:
Thank you.
Charles Max_Wood:
and then we're taking it all out all at once. And I think that was one thing. The other thing though, was that it was a forward looking, change. It was just, they saw a lot of things that they wanted to do with Angular that the architecture at the time didn't provide for. And so they decided that a rewrite was an easier way to get there. And what's also interesting is that the web has changed so much over the last, I don't know what, 10 years, 12 years since Angular was released. And then, you know, the current version of Angular, you know,
Lucas_Paganini:
Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you.
Charles Max_Wood:
all the stuff we went through since then. that Mishko is actually writing a new framework that does things even more differently because he's trying to account for other things that, you know, the current architecture makes it
Jack_Herrington:
He's trying to fix react-cyderation problem.
Charles Max_Wood:
kind of tricky on.
Tj_Vantoll:
Quick,
Jack_Herrington:
Quick, yeah.
Tj_Vantoll:
it's quick, isn't it? Yeah.
Jack_Herrington:
Yeah.
Charles Max_Wood:
Yeah,
Jack_Herrington:
..
Charles Max_Wood:
yeah, quick. And well, you know, Angular has some of the same constraints.
Jack_Herrington:
Go.
Charles Max_Wood:
And it's just because they were written for, you know, the way the web worked at that time. And you either have to introduce some massive breaking changes, which, you know, he and others figured out the hard way is not something people like, or you can write a new framework. And so that's kind of a place that we get to. But yeah, I think
Tj_Vantoll:
Bye.
Charles Max_Wood:
one other thing that that's kind of interesting to talk about with this is that the surface area of Angular, right, as we mentioned before, it kind of
Paige_Niedringhaus:
ʻʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀʻĀ
Charles Max_Wood:
is something that people generally use across their whole website.
Lucas_Paganini:
Yeah.
Charles Max_Wood:
Whereas the surface area of React, just on its own, at least initially, was mostly focused on the view layer.
Jack_Herrington:
Yeah.
Charles Max_Wood:
They've added some other things that changed that a little bit. But for the most part, the surface area of React itself is still rather small. And so if they need to make some of these changes, it does it doesn't affect as much of your stack because a lot of the rest of your stack
Paige_Niedringhaus:
Thank you.
Charles Max_Wood:
is other stuff and
Lucas_Paganini:
Yep.
Charles Max_Wood:
a lot of it's orthogonal to the way that React works and so I don't know
Paige_Niedringhaus:
Thank you.
Charles Max_Wood:
that you would have ever run into something like this with React just the way that it started out and has grown
Paige_Niedringhaus:
Thank you.
Tj_Vantoll:
I will say the one note from when Lucas was talking earlier that caught my eye is he mentioned the word consistent release schedule, which is something
Paige_Niedringhaus:
No.
Tj_Vantoll:
we do not know about in the react world.
Jack_Herrington:
Haha!
Tj_Vantoll:
It's sort of like the way the wind is blowing and Meta's offices every
Paige_Niedringhaus:
Thank
Tj_Vantoll:
couple
Paige_Niedringhaus:
you. Bye.
Tj_Vantoll:
of years they randomly, that's like the react world famously, there have been some features that have been coming soon for
Charles Max_Wood:
Thank you. Thank you.
Tj_Vantoll:
years, like
Paige_Niedringhaus:
Thank
Tj_Vantoll:
literal
Paige_Niedringhaus:
you very much.
Tj_Vantoll:
years. And then sometimes they
Charles Max_Wood:
right.
Tj_Vantoll:
just randomly appear one day. There is no cadence. I don't think there's any official, roadmap, we don't know what's going on.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
I mean, there's a bit of transparency, but there's no regular cadence for the updates. So it's
Charles Max_Wood:
Yeah.
Tj_Vantoll:
kind of interesting
Jack_Herrington:
And that's
Tj_Vantoll:
to
Jack_Herrington:
an interesting
Tj_Vantoll:
hear that...
Jack_Herrington:
thing I would say is that that connection to meta, like, you know, there, there was definitely some pushback and then still is about how connected React is to a particular company in that case, meta. And if, and if we're really working with our own, with a framework, or if we're working with kind of, you know, whatever the, the leftovers from meta doing its own thing and needing its own framework. And then
Charles Max_Wood:
Mm-hmm.
Jack_Herrington:
we just kind of, oh yeah, it seems like a cool framework or that kind of thing.
Lucas_Paganini:
That happens with Angular 2
Charles Max_Wood:
Yeah.
Lucas_Paganini:
in terms of, I don't know if that's still the case, but I know that a while ago, Google internally ran a more advanced version. Like there were some features of the Angular framework that I think only existed for Angular's internal projects. I don't know if that's still the case, so I don't want to spread misinformation. Maybe today, Google just uses what everyone else has access to the framework and they just add other things on top of it as external libraries instead of customizations to the core parts of the framework. That's probably the case because I think that at the size of it is right now, it would just be way more complicated for Google to be making changes to the core of it than just adding external libraries, especially because if you make changes to the core, then you lose all the security of having the community using your framework to test it. and make sure that everything is working correctly. So you would have bugs that only exist in your own core version. So I think at the moment, Google does use the version of Angular that everyone else also has access to, which is interesting because Google has a lot of projects, and that gives it a lot of security. Because you know that Google won't just kill that easily because they are also using it, and a bunch of other companies are also By the way, even the entire idea that Google is this big company that is always killing projects, I don't think that was true for the case of Angular. There are certainly some technologies that Google has created that I liked and they ended up killing, which made me sad. But in the case of AngularJS, I'm going to give it to them. It was released in 2010. And the end of life was in 2021. That was 11 years and Angular, the new version, sorry, the new version was released in 2016. So they supported the legacy framework for five years. I think that's something. So I'm going to give that one to them. But coming back to what Chuck was saying about the surface area of Angular versus the surface area of React and also connecting to what TJ said about the release cycle. they are both connected. So the release cycle and the surface area have, they influence each other in the sense of, since React is very isolated in its responsibilities, and it uses other tools to complement it and create all the other things that you might need in an entire application, then first it makes it harder to do some breaking changes because you might lose compatibility other surrounding tooling. So you think a lot about that. That certainly should make it harder for them to release major versions of it. But also, because they give people the control to choose whatever they want to use along with React, then I don't know if you feel that much of an impact
Charles Max_Wood:
Thank you.
Lucas_Paganini:
when
Charles Max_Wood:
Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you.
Lucas_Paganini:
something is taking too long to arrive in React Core, because you can still use external to add a similar functionality. But on Angular, you don't have that. As Jack was saying, Angular is something that even though now you can use parts of it, along with other frameworks, in general, when you decide to use Angular, you use it as a whole. You use it entirely. I'm going to have an entire application run on Angular. And if that is the case, then you become so dependent on the Angular team that they need to do it, otherwise you don't have an external solution to plug, even though you could, because all those modules are isolated. When you install Angular, you don't install just Angular, it's not just a single dependency, it's multiple dependencies, and you could technically replace one of the core dependencies with a third-party version of it that adds some other functionalities. Although you could, it's not something that I have ever seen because the beauty of Angular is how it assumes that you're using all the core modules and then they integrate so well that you don't have to deal with a lot of architectural challenges that you would have to deal with otherwise. So bringing that to a more concrete example, there, these are some of the things that Angular has on the core functionalities. about third-party
Jack_Herrington:
Thank you.
Lucas_Paganini:
popular libraries, just the core things
Charles Max_Wood:
Thank you.
Lucas_Paganini:
that come
Charles Max_Wood:
Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you.
Lucas_Paganini:
with the Angular framework. Just going to say things from the top of my mind. They have dependency injection, internationalization. That's like,
Charles Max_Wood:
hahahahahaha
Lucas_Paganini:
I haven't seen another framework that has internationalization baked in. You always bring another tool to do that. No, Angular has its own module just to do with internationalization. They have forms handling. I know that React has different libraries to Angular has its core library and everyone uses that which makes it super easy to reuse code. They have scoped styles, so I know that React doesn't have that by default, which is why we have styled components being so famous on React. But on Angular, we don't have that because it already comes with scoped styles. It already has a solution for server-side rendering, which is something that, again, React uses next. or Gatsby or whatever to bring that. Angular has that in the core modules. They have routing, another thing that React provides a lot of solutions. Lazy loading, that's something that React does provide. They have an entire module for animations. They have a command line interface, which allows you to, for example, you don't have create React app. You just have the Angular CLI. And everybody uses the same CLI. They have a style guide, coverage initial setup for unit and integration tasks, an HTTP client, and lastly, they have a module to convert Angular components into native web, native
Jack_Herrington:
Custom
Lucas_Paganini:
web,
Jack_Herrington:
Elements.
Lucas_Paganini:
yes, customer, sorry, almost
Jack_Herrington:
Yeah.
Lucas_Paganini:
lost
Charles Max_Wood:
Thank you.
Lucas_Paganini:
that. So
Jack_Herrington:
Noice.
Lucas_Paganini:
it's
Jack_Herrington:
Noice.
Lucas_Paganini:
a lot of things. It's way, way more than then a lot of developers are going to use, which makes it harder to start. It's so hard for you to to not not to start but to feel Confident about it, you know, you can start quickly but to really feel that you understand everything that is going on That takes a lot of time, but when you do get the hang of it, then you don't worry about any architectural challenges Okay, not gonna say that you don't deal with any architectural challenge But a lot of them are abstracted away and they are abstracted in a way that if you have 50 different applications, they can all use the same abstraction, but still you don't feel like you're fighting the framework. You can still do anything that you want, but you don't have to deal with those architectural decisions. And it also makes it easier for onboarding. When you learn how one application works, you learn how all other applications work as long as you are using the best practices. So these are the... That's the surface area. of Angular and it is huge. TJ said in the beginning, conceptual difference of React and Angular. React gives you more options to customize it the way you want. Angular is more opinionated. That still holds true and that's something that I like personally.
Jack_Herrington:
Hehehehehe
Tj_Vantoll:
Well,
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
and I
Paige_Niedringhaus:
I
Tj_Vantoll:
think
Paige_Niedringhaus:
think.
Tj_Vantoll:
that's why both frameworks continue to exist as well. And Paige, you were going to say something. Go
Paige_Niedringhaus:
I
Tj_Vantoll:
ahead.
Paige_Niedringhaus:
mean, that's exactly it. It's two very different types of development team styles. It's the one where the React team wants to choose everything, make it really, because every React project I've worked on is a special unique snowflake. It's got different
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
routers, there's different
Tj_Vantoll:
Thanks.
Paige_Niedringhaus:
CSS, there's
Lucas_Paganini:
Thank you.
Paige_Niedringhaus:
different state management,
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
whereas every Angular application that I've done, and it has been a few years granted since I have worked on it, but it's very, it reminds me a lot of Java application. locations where it's like this is the source folder and this is where your routes go and this is where your CSS lives and it's like
Charles Max_Wood:
Mm-hmm.
Paige_Niedringhaus:
as long as you follow that pattern, it'll be the same across pretty much all the projects that you interact with and you'll know where stuff is just by having learned that kind of architectural style and decision making. And you know, like you said, depending on who the team is, they may be way more comfortable using something like that. Or they may feel like they just need to. pick and choose everything because their application is such a unique use case. So yeah, I think it really depends on what you're building a lot of times.
Charles Max_Wood:
Can't you split some of the difference though with like a create react app or something like that, that kind of just installs sort of a default set of stack elements and then from there it's, hey look if you're using these together this is generally how you do it. You know
Jack_Herrington:
Thank you.
Charles Max_Wood:
it's not necessarily the react way versus you know Angular really does have kind of an Angular way and an Angular style.
Paige_Niedringhaus:
Yeah, I mean, Create React app will give you a good starting point, especially when you just want a really quick kind of proof of concept type of application. But if you want something that is going to be really production ready, robust, you know, server side rendering, SEO benefits, all of that stuff, API calls and data fetching, you're probably going to end up going with Next.js with remix with one of the on top of react under the hood.
Jack_Herrington:
next day, yes.
Tj_Vantoll:
Yeah, create React app has actually been in the drama recently because it's no longer the recommended approach to build React apps anymore. Instead, there's a fairly complicated thing on the React docs, but the reality is most React developers nowadays building serious apps are in basically next JS. I mean, there's others, there's a lot of competing, but next JS is the elephant in the room, the gorilla in the room.
Jack_Herrington:
Ha ha ha There's also...
Tj_Vantoll:
It's really taking over a lot of market share and mind share.
Jack_Herrington:
Yeah, there's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
also another girl or girl or elephant in the room or whatever. And whatever you
Tj_Vantoll:
Man.
Jack_Herrington:
that
Charles Max_Wood:
irrelevant.
Jack_Herrington:
girl exactly.
Tj_Vantoll:
Thanks. Thanks.
Jack_Herrington:
Uh, I mean, there's no angular native, right? There's no way of doing that kind of thing. Is that true?
Paige_Niedringhaus:
Oh,
Lucas_Paganini:
There
Paige_Niedringhaus:
for
Jack_Herrington:
True
Lucas_Paganini:
is
Jack_Herrington:
story.
Paige_Niedringhaus:
mobile?
Lucas_Paganini:
Ionic.
Jack_Herrington:
There's I, well, yeah, but Ionic's different though. It's not, it's not using native components. It's, it's still web, right?
Charles Max_Wood:
true.
Lucas_Paganini:
Yeah.
Jack_Herrington:
Right.
Charles Max_Wood:
Mm-hmm.
Tj_Vantoll:
We tried to be that with native script. And native script is still technically around, but it's a tiny fraction compared to what React Native is. And yeah, Ionic is a web view. Ionic is a web view. Ionic is a web view. Ionic is a web view. Ionic is a web view. Ionic is a web view. Ionic is a web view. Ionic is a web view.
Jack_Herrington:
Right.
Tj_Vantoll:
Ionic is a web view. Ionic is a web view. Ionic is a web view.
Jack_Herrington:
Right. Okay. So
Charles Max_Wood:
Yeah.
Jack_Herrington:
that's one of the things that's interesting here is that, you know, React is actually agnostic to whether it's being rendered for web or whether it's being rendered for native or like I was using this one project recently, we're remotion and you can literally, you know, render to a movie, which is I think is wicked cool, right? But you're not getting that on the Angular side because yeah, the Angular core does have all of this kind of very web-centric stuff baked into it, which is cool. I get it. If you're doing web stuff, that's great. But the idea of being able to say share, you know, there are actually component frameworks out there that render to both native and web. And
Lucas_Paganini:
Mm-hmm.
Jack_Herrington:
you could actually build, you know, a native app with React, which I think is a unique benefit there.
Lucas_Paganini:
That's a huge point in favor of React. And I like that very much in React. I wish we had more ecosystem for those types of solutions in Angular. What you said is absolutely true. And I think it goes back to the surface area thing. So since React is a thing that you can plug to fix a specific problem, then you can plug that into so many different things easily creates a big ecosystem. There are design tools today that integrate super well with React. I think Framer is a big design tool today that allows you to write, react components and import them into Framer, into the design tool. So there are a lot of things like that that exist for React. And although we do have alternatives for Angular, in most cases, I think, you know, React dominates in that scenario. So that kind of situation where the framework is a small thing in, like in terms of its secondary. So for example, what is primary when you're building a mobile application? It's something that runs on mobile, right? And that runs on Android and iOS. So after that, you choose the library. So then you have React Native, for example. And I don't think we have, solutions as good as React does for those situations. So, yeah, React wins on that. And that's it.
Jack_Herrington:
Ha ha ha.
Charles Max_Wood:
Hmm.
Lucas_Paganini:
Although for hybrid mobile applications, I don't think I would use neither. I would probably check out some of the solutions that are specific to that because at the end of the day, you're still... you're still not using it as it was intended. So React was still intended for web development usage and Angular is for web development. So although you can use that to create hybrid mobile applications, I would probably check out something that was built specifically for that. So I would probably take a deeper look into Flutter, for example, and the same would hold true to the other scenarios. So if I want to do IoT, I don't know if I would use something like that, if I would use an approach that integrates with React, or if I would use something that more deeply deals with the challenges of the environment
Jack_Herrington:
Thank you.
Lucas_Paganini:
of IoT.
Jack_Herrington:
depends on the nature of the native app, I think. And also the size of the team. If you only have a couple of developers, maybe one front end developer, having the ability to reuse a lot of that code, or you reuse a lot of that experience is great. I mean, for sure, Flutter is awesome, but Flutter Web has its issues.
Charles Max_Wood:
Mm-hmm
Jack_Herrington:
So, potato, potato kind of thing there.
Paige_Niedringhaus:
Thank you. Bye.
Lucas_Paganini:
Yeah.
Tj_Vantoll:
Yeah, I lived in this world for a very long time. So I could, if we have three more hours, I could give my follow-up thoughts
Charles Max_Wood:
Haha.
Tj_Vantoll:
on that. But
Lucas_Paganini:
Thank you. Bye.
Tj_Vantoll:
if I could summarize,
Charles Max_Wood:
Hang on, let me cancel
Tj_Vantoll:
if I could summarize
Charles Max_Wood:
some stuff.
Tj_Vantoll:
it,
Jack_Herrington:
Haha
Tj_Vantoll:
yeah,
Paige_Niedringhaus:
Thank you. Bye.
Tj_Vantoll:
I could try to summarize my thoughts in like 15, 20 seconds. It's definitely like, it's a told world. I think what Jack said, I kind of agree with. I think I saw very few examples of people making code sharing working in that sort of environment where like, I'm gonna build one repo or a native app and a web app, that
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
almost never worked. But I did see examples of
Charles Max_Wood:
It's
Tj_Vantoll:
especially
Charles Max_Wood:
a beautiful
Tj_Vantoll:
small
Charles Max_Wood:
dream.
Tj_Vantoll:
team.
Jack_Herrington:
Thank you. Bye.
Tj_Vantoll:
It's a dream and I think that's why it exists and why people, it's like the holy grail, right? People think it's
Charles Max_Wood:
Yeah.
Tj_Vantoll:
achievable. I did see examples though of like small teams that have web dev experience that were able to build React native apps that would have never achieved iOS or Android apps otherwise.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
Usually it's like, usually a totally separate repo, but just knowing React get a small lap out the door that they wouldn't have otherwise.
Paige_Niedringhaus:
Yeah. And speaking specifically about IoT development, as I said, TJ and I both work for an IoT company on the web development side. We have almost nothing that I know of that's actually written in JavaScript that runs on our embedded devices. It's all C++, Python, Arduino, and maybe a little bit ago, but JavaScript is just too heavy and resource intensive for most of those little tiny microcontrollers that run on Raspberry Pi and such. So it's a nice idea. It would be awesome as a web developer to be able to write some of that code in JavaScript, but it just, it's not really, I think, a very achievable goal yet. I know that there's some libraries out there, but I don't think that they're super robust yet.
Lucas_Paganini:
I do think eventually we'll get to that point like everything that can be done with JavaScript will be done with JavaScript isn't that the same but
Paige_Niedringhaus:
That'll be
Lucas_Paganini:
Yeah,
Paige_Niedringhaus:
rough.
Lucas_Paganini:
definitely Rest
Charles Max_Wood:
Yeah,
Lucas_Paganini:
too
Charles Max_Wood:
it's uh, Atwood's Law.
Paige_Niedringhaus:
Thank you.
Lucas_Paganini:
Yes, yeah.
Paige_Niedringhaus:
Bye.
Lucas_Paganini:
But definitely there are situations where we are not there yet.
Charles Max_Wood:
or we've been talking for about 45 minutes. We usually try and keep these to an hour, give or take. Are there other things, because we kind of talked through some of the things that go on in the different ecosystems we work in, but I guess one other thing that I would just like to have everybody put out there, you know, to kind of wrap up besides, hey, go subscribe to both of these shows, is if somebody is looking at learning Angular or learning React, what resources do you recommend, right? So if somebody is, you know, it's like, hey, I just got a job, I've been writing Angular forever and now I have to write React, where do they go to learn? And then vice versa, go in the other way. And then we'll go to PIX.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Well, I mean for React, I know that the React docs that have been in beta for years finally have been released as the new official documentation and it's all, you know, the latest and greatest React features. So definitely check those out. The docs are usually pretty good for just getting the basics down. And then from there, I would say figure out which framework if you're coming to an existing team. and then start looking at those documentation because Gatsby is very different from Next, is slightly different from Remix, so figure out what the actual framework is that your team is using and then start to dive into the documentation there.
Lucas_Paganini:
I like that and I think the answer for Angular would be the same. Although there are excellent courses out there, I myself have done more than 10 courses about Angular just to try to pick some different things that a different instructor might cover. I do, looking back, think that the most valuable investment that I did in terms of learning the framework was by reading the docs. So Angular.io website for the Angular framework and they have a very extensive documentation. There are a couple of very advanced cases which are there, which is amazing because there are things that are so niche that I didn't really expect it to see there, but there are also some of the super advanced things that are not there, which is common. I suppose that you will have to go look into courses that might cover these modules in more depth. But for the most part, reading the documentation is 95% of the way to get there. Like it is super complete. The Angular docs are really extensive and they even cover style conventions, which I think it's amazing. They don't just cover the functionalities in itself. How can you be consistent with how your teammates are going to work too?
Jack_Herrington:
And can I just sort of shameless plug? I've got a big playlist on YouTube that covers React, TypeScript, Next, and of course, a lot of individual videos on the various foot guns you can find yourself with in React.
Charles Max_Wood:
On
Tj_Vantoll:
Yeah,
Charles Max_Wood:
Adventures
Tj_Vantoll:
I was going to
Charles Max_Wood:
in
Tj_Vantoll:
recommend
Charles Max_Wood:
Angular,
Tj_Vantoll:
Jack. Oh,
Charles Max_Wood:
we
Tj_Vantoll:
I
Charles Max_Wood:
added
Tj_Vantoll:
was just going
Charles Max_Wood:
a
Tj_Vantoll:
to recommend
Charles Max_Wood:
section
Tj_Vantoll:
Jack
Charles Max_Wood:
for
Tj_Vantoll:
Harrington.
Charles Max_Wood:
shameless plugs.
Tj_Vantoll:
I
Charles Max_Wood:
Anyway, go ahead.
Jack_Herrington:
Ha ha ha ha ha!
Tj_Vantoll:
was going to say I do my my best learning from Jack Harrington's YouTube channel.
Jack_Herrington:
Aw,
Tj_Vantoll:
So
Jack_Herrington:
thank
Tj_Vantoll:
I'll
Jack_Herrington:
you,
Tj_Vantoll:
plug
Jack_Herrington:
TJ.
Tj_Vantoll:
that.
Paige_Niedringhaus:
Hit that subscribe button.
Tj_Vantoll:
But
Jack_Herrington:
There you go. Like and subscribe.
Charles Max_Wood:
Uh.
Tj_Vantoll:
I will say, like I'll plus one pages recommendation for react that dev, which is the new angular or the new react docs.
Lucas_Paganini:
내년
Tj_Vantoll:
And I like them because it's, it's kind of funny because Lucas was praising the angular docs for being so comprehensive, but I'm going to praise the react docs for being kind of simple and just giving like a more limited tutorial. Because I think when you're getting started, that's, you don't want to necessarily be overwhelmed and angular always overwhelmed me always. Like, I always felt like I had no idea what I was doing. So I, but I mean, I think that's the sort of shift that makes people, our teams choose one framework versus the other, right? Cause it's different styles, different ways of attacking the same problem. So
Paige_Niedringhaus:
Thank you.
Tj_Vantoll:
different people have different learning styles, different things they like in frameworks. So yeah.
Lucas_Paganini:
Yeah,
Tj_Vantoll:
Yeah. Yeah. Yeah.
Lucas_Paganini:
I
Tj_Vantoll:
Yeah.
Lucas_Paganini:
also think that in general, if it's been a while since you that is listening to this episode right now, if it's been really a while since you gave a chance to anger and some of the things that were said here today make sense to you somehow, then just check out their docs again because they are improving all the time. As we were saying, the React official docs were just released. So a while ago, people might be complaining like, oh, I don't like. that React doesn't have an official doc. When I tried to learn it, I didn't like the experience. But if you try it again now, then you will have a different experience with it. So we are all learning from each other. And I think that's something that makes me really happy. Although we do have this Angular versus React, like Iron Man versus Captain America. But still, like, I think that we are, as an entire community of web developers, we are really very respectful with each other in general. I don't see people like, I hate you because you use React or whatever. I don't see that, which is cool. And I see that we are learning from each other, and those things are getting better. So if you are listening on Adventures in Angular, you tried React, didn't like it. If it's been a while, maybe take another look. If you are in React Roundup, tried Angular, like things that I said here maybe make sense to your situation. Maybe try it again.
Charles Max_Wood:
Yep. Absolutely.
Paige_Niedringhaus:
Thank you.
Charles Max_Wood:
I love the experimentation. It's fun. But anyway, um, well, should we do the self promo section?
Lucas_Paganini:
Yeah.
Tj_Vantoll:
Yeah.
Charles Max_Wood:
All right.
Tj_Vantoll:
Or pics.
Jack_Herrington:
Oh yeah, can we do pick?
Charles Max_Wood:
And then we'll do picks.
Jack_Herrington:
Oh, okay, picks it is. Okay.
Charles Max_Wood:
We usually do self promo and then we do picks.
Jack_Herrington:
Okay.
Charles Max_Wood:
So, Lucas, why don't you go ahead and self promo first?
Lucas_Paganini:
Okay, I'm gonna self promo my company. As I said before, the name is Unvoid. We are specialized in Angular and functional programming. We do full stack development. So we do design, we do front, we do back, but we do specialized in Angular and functional programming. These are the things that we really shine on. So if you have a project that needs help on that, then consider contacting us at Unvoid.com. And I'm also still building my course. on web animations. I'm really liking the result. I think that web animations really need an update. There were so many new things on it and I think that the courses that are popular or the books that are popular about web animations, they are in general outdated. So I'm really excited to be talking about this topic and bringing the new things to all the web developers. So if you're consider checking out lucaspaganini.com slash web animations. Lastly, I'm gonna plug myself so I just realized that I'm in a different podcast so if you don't know me you want to I also post content about web development in general not just Angular so it's at Lucas Paganini on Twitter or Instagram. I'm trying TikToks pretty bad maybe don't look there
Jack_Herrington:
Ha
Lucas_Paganini:
but
Jack_Herrington:
ha ha.
Lucas_Paganini:
YouTube too so yeah these are channels where you can see what I'm doing.
Charles Max_Wood:
Awesome. TJ, I kind
Tj_Vantoll:
I really
Charles Max_Wood:
of took
Tj_Vantoll:
have much
Charles Max_Wood:
over.
Tj_Vantoll:
of a sh...
Charles Max_Wood:
It's fine.
Tj_Vantoll:
yeah, yeah. Don't have much of a shameless plug. I'll plug blues. If you're ever trying to get into IoT, you can check out usblues.dev. Yeah, that's all I got. I'm gonna go ahead and plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev. I'm gonna plug blues.dev.
Charles Max_Wood:
Alright, page.
Paige_Niedringhaus:
I don't have any monetization plugs, but I write pretty regularly about web development. It could be, it's mostly things that I've been learning either at work or inside projects. So you can go to my website pageneedringhouse.com and yeah, you can just check out what I've been writing about, learn some new things about CSS, about React, about GitHub actions recently. I wrote a Python web scraper that I'll probably be writing about. So yeah. learn something new from it.
Charles Max_Wood:
All right, Jack had to bail at a time thing. We all have lives outside of this, I guess.
Tj_Vantoll:
Thank you.
Charles Max_Wood:
I'm gonna
Tj_Vantoll:
Thank you.
Charles Max_Wood:
throw in my plugs just real quick. The first one is we do have a book club that we're running at topendevs.com slash book club. You can do book club with or without the dash. People always ask. Goes the same place. This is the book we're reading this month. It's the Pragmatic Programmer. This is the 20th anniversary edition. Yesterday on our call we had Andy Hunt. Next week on our call we have Dave Thomas. After that, are reading The Compound Effect by Darren Hardy. That's not a programming book. But after that, we're going to do seven languages in seven weeks. So if you're looking for those opportunities to level up, topendevs.com slash book club. And then just keep an eye out for the other stuff because it's going to come. I'm probably going to drop announcements into the feeds when we have something new coming up. The next big thing is the game dev thing. to give you an idea of what's going on. If you go to topendevs.com slash game dev, I'll set that up to forward to the right place. And you use the coupon code JavaScript 5. You can get access to the 2023 game development bootcamp, where Jason, he's a friend of mine, he teaches Unity 3D. He teaches it in C-Sharp, but you don't actually have to know C-Sharp in order to get into the course, because he teaches you what you need to know as you go. going through his course and then I'm gonna start the Game Dev podcast. But if you buy his course using that coupon code and using the the top-end Devs link, as I'm learning it, one of the things I found is that I learned better if I'm going through it with other people. And so I'm gonna do a call every week for the next, I don't know how many weeks, but the next several weeks until I get through the course at least. And we'll just talk about what we're learning and things like that is not going to really going to have a formal setup to it. It's mostly just going to be so that we can all help each other get through it. Incidentally, one of the people who's going to be on some of these calls, if I do it after school, is going to be my son. He wants to be a game developer. So anyway, that's the other big thing. So the book club and the game dev, go check them out. Let's do picks real quick. Let's do it in the same order. Lucas.
Lucas_Paganini:
Okay, my pick is gonna be Paige's course. So I don't like that Paige said that she doesn't have anything to monetize. I think she has a great course to monetize. I was checking that out before joining this episode and she has a course about modernizing enterprise React application. And it is unbelievably accessible. It's currently just $39. So if you are listening this from the Adventures in Angular show and maybe you're joining a company that is using React, you're probably going to jump into a project that is not from scratch. So the problem with all the courses out there is that they take you from the absolute zero. It's like you have nothing and you're starting the project from scratch. Guess what? That's not going to happen if you're being hired to work in a real company. I mean, if you're ever in a company and you're doing a project then you're already in a really senior position. So if you're looking for a course then this probably ain't gonna be the most realistic situation for you. The most realistic situation is you're joining a big project that probably doesn't 100% adhere to the current past practices and this is what Pages course is all about. So if you're interested in that just go check it out Twitter bio, but she also has a short link. We're putting that in the podcast description. So this course is gonna take you from understanding legacy code base and bringing it to the latest best practices and the latest recommended technologies. So I think it was a great approach for a course. So that's my pick for today.
Paige_Niedringhaus:
Thanks, Lucas.
Charles Max_Wood:
Awesome.
Paige_Niedringhaus:
That's really kind of you.
Charles Max_Wood:
TJ, what are your picks?
Tj_Vantoll:
gonna pick November 22nd, 1963, which is a Stephen King book. It's kind of classic Stephen King. So it's if you like Stephen King, you'll like this book. And if you don't, you probably won't. But it's about time travel. Basically, a guy discovers a portal back to 1958, and a diner, and discovers that he can go back in time and change history. And decides he wants to stop JFK from getting assassinated. So that's basically the plot in a nutshell and and whatnot as well and there's twists because it's Stephen King. So if you like that sort of thing it's an entertaining book. It's a little verbose because it's also Stephen King so it's like a you know good thousand page book but it's been a good read so far.
Charles Max_Wood:
Right, I was gonna make the joke that he keeps his parents from meeting and almost disappears. Alright, Paige.
Paige_Niedringhaus:
you. Bye. lot of another movie.
Tj_Vantoll:
Yes.
Charles Max_Wood:
Right.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
So my pick today is going to be a scuba pro dive skin. So this year my husband and I decided we were going to get our scuba certifications and one thing that we both ended up buying before our first dives in the open water, what were these dive skins and they are basically like very thin, almost neoprene scuba suits, but they just make putting on an actual wetsuit really easier.
Charles Max_Wood:
I think
Paige_Niedringhaus:
They
Charles Max_Wood:
it's
Paige_Niedringhaus:
give
Charles Max_Wood:
her,
Paige_Niedringhaus:
you.
Charles Max_Wood:
I don't think it's us.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
sun protection and they just make it a lot simpler to get going with scuba. So if you're getting into it and you are looking for something that's not quite wetsuit material I would definitely recommend picking one of these up.
Charles Max_Wood:
Awesome. I'm gonna throw in a couple of picks. The first one is I always do a board game pick. That's kind of my deal. I kind of stole it from the people who were picking like their favorite beer or whiskey every week. For me, this is my addiction. So I played this game with a couple of friends of mine. It's called a Tiwa, A-T-E-I-W-A. And of course, it's a bat game, right? It's cultivating. bats to win the game. But anyway, effectively what you do is you have a village and you can add different resources to the village right so you get a goat, you can get a tree, you can get and you can only put certain ones in certain places but then you know you can also expand your village and you can that live in the huts in your village to cultivate bats. And if they cultivate the bats, then you get certain bonuses and stuff for having the bats in your village. And I'm really not explaining this well because it is a little bit more of a complicated game as opposed to some of the other ones that are, it's like, here's the game in two minutes, right? And I've explained the whole game. Anyway, if you're into something that's a little bit more complicated but not so complicated like some of the other ones that I've picked on some of the other shows, Then yeah, this is definitely one of those games that yeah if you if you if you want a thinking game That's you know kind of on the borderline of a casual game where you can sit and chat while you play it Then then this is that game right? It's it's a little more complicated than just your sort of social game Board game geek waits it at 2.69 So usually a three is where the serious gamers are getting know excited about wow I'm really gonna have to pull it out and figure this stuff out. Two is generally where like my 11 or 12 year old could play it or a bunch of people who aren't deep into board games would sit around and play apples to apples and have a good time right and so this one's a little bit more than that but it's it's super fun really had a good time. I think we played it in an hour there were three of us. It's one to four players. I would imagine the three or four is kind of the sweet spot. That's what it says on Board Game Geek 2. So anyway, I'll put a link to it on Board Game Geek so you can check it out and a link to it on Amazon so you can buy it. But yeah, that's one pick. And then... You know, I'll just leave it there. I'll just leave it at the board game.
Paige_Niedringhaus:
Nice.
Lucas_Paganini:
Okay.
Tj_Vantoll:
Good stuff.
Charles Max_Wood:
Yeah.
Paige_Niedringhaus:
Well,
Charles Max_Wood:
Well, it was fun to talk to you guys again.
Paige_Niedringhaus:
yeah, thanks for joining
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
us on this crossover episode.
Charles Max_Wood:
Yeah.
Tj_Vantoll:
So wait, which one won? I thought we were picking one at the end, right? That's what we discussed?
Lucas_Paganini:
Let's
Tj_Vantoll:
No?
Lucas_Paganini:
leave
Paige_Niedringhaus:
A battle
Lucas_Paganini:
that
Paige_Niedringhaus:
royale.
Lucas_Paganini:
to the audience. So
Tj_Vantoll:
Ah,
Lucas_Paganini:
you,
Tj_Vantoll:
all
Lucas_Paganini:
the
Tj_Vantoll:
right. So,
Lucas_Paganini:
audience, you can just, if you're listening to that on YouTube, or if you're on Spotify or something that doesn't have a comment section, go to Twitter. We have a Twitter account for Adventures in Angular, a Twitter account for React Roundup. So make your tweet and say which one you like the most,
Tj_Vantoll:
Thank you. Bye.
Lucas_Paganini:
what were your thoughts on React, your thoughts on Angular, So yeah, let us know.
Charles Max_Wood:
Yep. So it's at Angular podcast and at react roundup on Twitter. Also, I'm just going to point out because usually I just say, well, whichever audience is larger will win. The audiences for both shows are about the same size. So. More or less, yeah. So anyway, but yeah, it was fun. And I look forward to talking to you guys more in the future. Bye folks, max out.