so I haven't seen this one I saw him
just release this I'm happy that
fireship is back let's get this thing
going 2023 has been a wild Year my bank
collapsed Elon bought Twitter almost all
my friends got laid off all my favorite
crypto Bros are going to jail Tesla
successfully made it the DeLorean with a
Pontiac Aztec bringing us the Cyber
truck and chat GPT made me obsolete but
all this good news pales in comparison
to the changes web developers those are
all things that happened like like that
perfectly does sum up 2023 you know
they're all going to jail all the crypto
the rug the official rug pole rug pole
has been pulled and now look at us this
beautiful this is beautiful I would say
that the s that the Sam B freed bankman
situation SB sfb or s i I can never say
his name correct there's a dash and
there's like a lot of them um there's
too many names for one human to have uh
Sam my favorite part about that entire
Saga was the fact that they had
Wang write a back door back door Wang in
the code and then not only did he do
that not only did he write it he like
put nice commit commit messages like
backdoor Wang coming in with a good
oldfashioned back door and you're just
like damn why you got to put that in the
commit messages Sam Sam why you why you
letting backdoor Wang do that to you
like he just like just just just
straight up documented backdooring it
was beautiful it was beautiful all right
let's keep on going seen in JavaScript
land over the last year where almost
every framework decided to reinvent
itself in 2023 in today's video we'll
look yes 2023 was the year that
everybody became a nextjs framework what
do you spelt how about spelt kit hey
what do you solid solid starter whatever
it's called hey what what are you view I
don't know what views is but I'm sure
Vue has one what are you angular you
have signals now you know like I don't
know what it all was but there's there's
been a lot of them that are all doing
the same thing no what are you view you
noon okay we're nting out here look at
10 recent changes I don't know why I
turn it into like an old
Hollywood Italiano mobster what are you
what's going on have you talked to Fat
Tony about that like I don't know why
what's going on here but all of a sudden
it's just like the moment I start
talking about JavaScript Frameworks I I
turn into a stereotypical
mobster is to JavaScript that you may
have missed every year new language
features get standardized in ecmascript
at which point they're implemented in
browsers one of my favorite new features
this year is object Group by imagine you
have an array of objects where the
objects share a similar schema these
might be records from a database where
every object has a field of age you can
use groupy to separate the children from
the adults by defining a function that
groups anyone under 21 into children and
anyone over that into adult the end
result is an object organized into
groups that's a nice little utility but
when I find myself
using I don't know how I feel about that
one I I'm still trying to figure out
like
why you
know you know there's
like there's like see there's squeal
you've heard of squeal right and you can
do like group eyes and and stuff in your
database which is written in in in in a
fast
language
and so when I see this it's like M more
data
processing doesn't sound better than
less data processing in
JavaScript that's useful for no JS and
no squeal yeah no squeal was largely a
mistake just saying over that into
adults the end result is an object
organized into groups that's a nice
little utility but when I find myself
using even more often is array two
sorted along with two spliced and two
reversed this is hilarious I love the
fact that because JavaScript is a
language in which you don't know if a
function mutates you now have reverse
and two reversed
ah beautiful JavaScript already had
methods for sort and reversed but the
problem is that they mutate the original
array in place and that's confusing
because other methods like map and
filter don't do that instead they copy
the array and return a new one with
these methods you can now sort reverse
and SP did we not get like a oh my
goodness they should do two map that
does mutating like I feel like that
would be the only way that JavaScript
could remain so consistently
inconsistent that the only way to do
this is to make mutating ones called two
map and two filter like to me that
that's the way that's the way if they're
going to commit to this consistently
inconsistent Behavior that's the way
that is the way treating the original as
an immutable value which tends to be the
more sane way to write your code web
developers also got some cool updates I
don't know if it's more sayane I love I
you know I immutability is definitely a
Hot Topic among you young you young JS
devs it's just that maybe a better
language for it would be would be nicer
you guys just want to be a bunch of
hascal nerds without being virgins and
so I think there's like a problem here
it's like you want all the
benefits
of hll without the best benefit The
Virginity part in the form of brand new
HTML Elements by the way that is going
to make the entire hasal Community all
21 of them super upset I'm I'm pretty
sure I'm going to appear in a white
paper the proximity of virginity and hll
where they disprove my theory there's
going to be graphs there's going to be
an abstract it's going to be so
amazing dude
if you if you actually look at it it's
actually two standard
deviations more likely for virginity but
if you think about it the this isn't a
normal distribution It's actually an AB
distribution of virginity okay it's
different they actually go into two
different categories it's post virgin
Hess or prever virgin Hess okay you
really need to understand the difference
dude it's going to be so good it's going
to be so good the search tag is a more
semantic way to define a search box on a
website which can replace the more
generic form tag that's nice but the
dialogue element is way more powerful
which allows you to create actual modal
dialogues and then control them with
JavaScript using built-in methods like
show modal and close another
nice that okay finally thank you for
just I really would like more leaning
into like the first off Modells are a
modals models uh however you say it uh I
feel like they're a mistake to begin
with almost exclusively you create a
website in which you cannot replicate
that state I've largely thought them to
be bad uh I'm happy that you now have
like specific HTML around it at least
that does put some sanity back into
things that this this really crazy odd
behavior can be specified in a more nice
way I'm happy about that I'm curious
about how this
works it's quite old I don't know about
it sorry I don't keep up with the HTML
you know like obviously we read that one
where it showed how stupid we all were
with HTML like I just don't keep track
of HTML stuff a mistake uh we have
Marquee but not dialogue I just just
saying utility but that brings us to
index 3 after years of begging and
pleading with Apple iOS finally allows
push notifications to come from web apps
and that's a huge win for the
0.00001% of website users who actually
allow websites to send them push
notifications which yep that's me I do
it every time this thing shows up I'm
like
no thank
you is most likely your grandpa who
accidentally clicked the allow button
and now has no idea how to turn it off
but now it's time to talk about the fun
stuff Frameworks the world's most
popular JavaScript framework nextjs is
an entirely different framework than it
was last year thanks to the app
directory which became stable in May
with version 13.4 the most notable
difference is that you can now fetch
data directly inside react components
thanks to Ser I'm very happy that at
least it's trying to encourage you to
write squeal this is good I do love that
people like I think template strings are
interesting it's kind of a cool way to
allow Behavior inside of a template uh
data I like that I think we can all
agree that that's pretty nice um I'm
curious what this actually looks like
how does a I've never implemented a
template string so you must get the
chance to to like do a mutation on this
data before it gets put into the actual
template litting so neat
neat but about that squeal injection no
see no no no no no stop saying that if
you if you say the word squeal injection
you're just being a dumb dumb okay
always ask a question before you just
claim an
outcome right that's that's what you
need to do always ask a question before
you claim an outcome just once maybe
twice maybe three
times components which react components
that can run on the server the reception
to the app directory has been somewhat
mixed on one hand it has a lot of
awesome new features and can simplify
your code but many have complained about
it feeling rushed and Half Baked kind of
like the way they launch video games
nowadays where they just get something
out the door then patch it up over the
next few years wh why is this Western
man twerking on this guy's
boot what is
this I don't want boot twerk video game
okay that's not what I want I don't want
this it's not even twerking I don't even
know what this is grinding we're
grinding we're we're shoe grinding we're
shoe
shining did I just did I just make up a
new dance move the shoe shine I think I
might have we're going to call that the
shoe shine babies uh let's go on people
have complained about having to use the
used client directive everywhere due to
Breaking existing react libraries people
have complained about the slow Dev
server which is powered by rust which is
weird because anything powered by rust
is supposed to be fast and people have
compared its new server actions feature
to to PHP one of the most offensive
slurs you can make against a JavaScript
framework but the biggest issue is that
running nextjs is fairly hard to do
correctly outside of versel and I I've
heard this is this has been a bit
exaggerated uh like the thing that makes
versel really useful is that they they
they spawn up all the edging you get to
be a public Edge Lord like you get to do
all the stuff that you need and they
they handle all the infrastructure
whereas
running nextjs I heard it's pretty easy
a throat in a Docker image and blah blah
blah blah like I hear it's it's been
pretty
exaggerated uh the thing is is that
running nextjs and having versel are
very different things and so I think the
pro it's it's Express right yeah it's
like it's not like something wildly out
of control it they just read your
directory and write an Express server
that maps to your directory like is it
really that wild there's some other
things obviously uh but I'm just saying
like is it really that
crazy that's led to projects like open
next that take on the tedious job of
getting it to run anywhere next is no no
that's that yeah it's it's more that
it's it's doing the whole like
serverless part I could I bet you in an
afternoon I could make an nextjs Docker
niess or in five minutes
finding the docker image that exists
that you just run right but that's then
you then you're you're manually running
the server and people don't want to do
that in this day and age they want
someone else to they want to pay more
money for somebody else to do it the
dominant meta framework but nujs and the
view ecosystem also had a lot of cool
updates in like it's Dev tools these
press one in the chat if you think view
is amazing people seem to love view
every time I hear anyone talk about view
they seem to just love
it lot of ones okay yeah yeah yeah yeah
yeah yeah yeah it just seems so
surprising people seem to love view
tools run directly in the browser and
make it much easier to understand the
structure of a complex
application if this is your application
and you don't immediately think I done
[ __ ] up I don't know what you I I like
I don't know what's going through your
head
right yeah this is this is just how you
write client side applications this is
there's no other possible way there's no
other possible way to write them it does
this this looks like obsidian but it's
not it does actually look like it's not
obsidian but one thing you may not know
about n is that many of its components
are available through the unified
JavaScript tools ecosystem like if you
don't care about VJs and just want a web
server you can use Nitro to build a fast
server with plain JavaScript what's
funny is I think the VJs ecosystem has
changed the least in 2023 and as a
consequence it feels like the most
stable and predictable ecosystem spelt
on the other hand got rued in 2023 in a
shocking announcement a couple months
ago spelt announced a new feature called
runes that will dramatically change the
developer experience in version 5
instead of defining reactive variables
with let there's now this thing called a
rune which is essentially a compiler
macro that tells the spelt compiler this
value is reactive spelt is also getting
rid of the dollar sign [ __ ] syntax and
stores with runes like derived and
effect the initial probably just makes
it a lot easier to honestly the compiler
and what you can do is probably just a
lot easier than having this whole like
using labels and running blocks and
stuff like that like I I think that it
it does make things easier because you
need less of a compiler now like this
this exists now this is just JavaScript
as opposed to conf like translating a
scope block plus a label into well an
effect right I I like Chang were some
with some users feeling like these
changes Mak spel look a lot more like
react which is the type of developer
experience they're trying to get away
from but on the other hand a lot of
people love these changes and see them
as necessary to evolve the framewor in
the right direction as a hardcore user
of spell myself I'm waiting for the
final release of version 5 before I form
an opinion the award for the most Chang
framework in 2023 though goes to angular
signals baby let's go it has a long list
of new features but the most notable by
the way uh up to 90% faster runtime
built with in control flops I don't
whenever someone says something's faster
I just don't believe it until you till
you measure it changes for angular
haters out there would be the new
template syntax which provides a cleaner
way to handle conditionals and Loops
replacing things like ngf and ng4 in
addition angular has also adopted
signals much like all the other
Frameworks out there and brings a new
feature called defer views which enables
decare lazy loading directly in a
template but most importantly angular
has a brand new logo which was really
the only thing holding it back from
being the world's most popular framework
in the past a lot of crazy changes on
the front end but on the back end no. JS
has been quietly getting better with no.
JS version 20 it released a new
permissions model which improves
security by controlling which features a
script has access to much similar to
yeah I was about to say that sounds like
Dino Dino has like kind of built-in
permissions and all that so okay cool
cool dino changing the uh ecosystem good
job Dino released a few years ago and
then with the release of note 21 it
introduced its own websocket client
which is based on the websocket API in
the browser the biggest disruptor with
backend JavaScript in 2023 though is BU
it's a new javascri interesting that
they did that because uh
micro cuz microweb sockets are already
exists U web sockets and they're that's
what bun uses and they're really well
written and they're fast right I like
that like I I I think we should try to
go towards something that's that's good
you know one time written in Zig that
came out with an awesome developer
experience and some wild claims about
performance and quite a few bugs were
discovered after the initial release but
it still remains a promising new way to
do backend JavaScript in the future and
with that we've looked at 10 different
ways JavaScript changed in 2023 but I
almost forgot the biggest one of all
htms the framework that showed us that
anyone can capture the imagination of
the JavaScript ecosystem if you [ __ ]
post and meme hard enough on Twitter but
most importantly as I've shown here with
science HTM X can actually eliminate a
ton of JavaScript compared to the status
quo approach taken by all the major
Frameworks it's the ideal JavaScript
framework for the JavaScript haters and
that's why today I'm thrilled and
honored to present the HTM X team with
the JavaScript framework of the Year
award which is basically the Nobel Prize
of JavaScript thanks for watching and I
will see you in the next one that is so
good I think h MX deserves it HTM X
deserves it absolutely loved it the name
is the HTM X agent