NodeJS 22 Just Dropped, Here's Why I'm Hyped

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 28. 04. 2024
  • NodeJS 22 is the latest LTS and it's now GA! I'm hyped. There's a lot of cool stuff in this release. You should be hyped too.
    SOURCES
    nodejs.org/en/blog/release/v2...
    openjsf.org/blog/nodejs-22-av...
    nodejs.org/en/blog/announceme...
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • Věda a technologie

Komentáƙe • 173

  • @jonkoops
    @jonkoops Pƙed 17 dny +117

    As an author of several NPM packages, I cannot stress enough how great the require(esm) feature is, and it is LONG overdue. Up until now we had to keep building a CommonJS version of every package, which adds a lot of complexity because now we need a build system, even for simple packages. I can tell you from experience that ESM & CommonJS interoperability is a minefield, so having this handled by Node.js in a consistent manner is wonderful.
    Finally we can have a proper migration path off CommonJS and look forward to an ESM-only future, where we're not shipping the extra legacy baggage to future devs. I hope this will get backported to Node.js 18 & 20 as well, so that we don't have another 2 years of module-based horror.

    • @felix_xb
      @felix_xb Pƙed 16 dny +5

      There wouldnt be a need for a build system if ESM didnt exist to begin with (not to mention with ESM there it's a problem for everyone not just the package devs). And so far, outside of some specific development-only scenarios that could have been achieved either way with just a slight change to the spec (just make default require not dynamic or error out for those builds), every promise ESM has made has not been fulfilled in any meaningful way that's useful for things we ship. Need to ship code? you're still bundling even after years of this thing being out, the only difference is you now have to do it while there's this holy war of CJS vs ESM in the background and have deal with nonsensical problems caused by it.
      This idea of "only browsers matter" is also extremely unhealthy stance to take to base one of the key features of the language.

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny +2

      @@felix_xb ESM design had a massive design flaw, if it had of gone `from "module" import { method }` , at least if node did implement we would have had better code completion, and that would have given us at least something better than CJS.. :)

    • @anonp
      @anonp Pƙed 16 dny

      Word. 💯

    • @Useful4Many
      @Useful4Many Pƙed 13 dny

      Great to hear all that. BTW it would be great to know some direction on learning how to write NPM packages and some tips.

  • @Woeden
    @Woeden Pƙed 16 dny +22

    Glad to see Bun's success is making NodeJS mantainers rush for better stuff. It was a win win.

    • @stokbrood
      @stokbrood Pƙed 3 dny

      They've been gatekeeping NodeJS from adding these cool features, because "it shouldn't be part of NodeJS", but suddenly when they got a bit of competition they started implementing them. They did add them in a short period of time, so unsure how stable they are

  • @Fiercesoulking
    @Fiercesoulking Pƙed 17 dny +91

    I can't help every video I watch from him looks for me like a salesman promotion video

    • @tantalus_complex
      @tantalus_complex Pƙed 16 dny +8

      It's just a cultural thing with the way he speaks, combined with him wanting to keep his tone and content mostly positive.
      Personally, I appreciate it. Snarky criticism gets more views, but this man doesn't encourage the habitual, seething negativity that many do.
      We can all be thankful he's not reading stuff like a reporter at a television news desk or baiting us with his sexual or parasocial charms either. 😉

    • @MrMudbill
      @MrMudbill Pƙed 16 dny +1

      @@tantalus_complex He used to be a lot more snarky before. I can't lie, I'm probably more happy than not that he's shifted. Feels more mature and respectful. Sometimes it's fair to be bothered by things, but when you're bothered by everything (especially when it stems from lack of understanding) it's just kinda frustrating to watch lol. But then I have also focused on reducing rage bait in my life. It's nice.

    • @bintangnaufal
      @bintangnaufal Pƙed 15 dny

      it's the stash

  • @christian-bromann
    @christian-bromann Pƙed 16 dny +11

    This video doesn't have a single appreciation to anyone on the Node.js team who has been working hard (paid or unpaid!!) to get this release out. Instead you hear things like (quote): "[Watch Mode] is a really nice change and again like this is one of those things Bun did well" or "[So] yeah how nice is that this this should have been node forever ago like this has been in bun from day one". Bun and Node.js are two completely different projects, this should not be a direct comparison framed like this. I wish CZcams Tech influencer but be more aware of differences between VC funded open source projects and those ones run on open governance. We should appreciate the people that do all this for free and allow you make content of it and "enrich" yourself from their hard and often free labor.
    I acknowledge making this video brings tremendous value to the community and you've done a great job walking through all changes this release brings. I hope I can leave this settle critique here though. Thank you!

    • @kaaaxcreators
      @kaaaxcreators Pƙed 15 dny +1

      Still both a runtime. Comparing them makes perfect sense

  • @RulerOfCakes
    @RulerOfCakes Pƙed 17 dny +38

    4:11 The JIT's getting JITtier every day. đŸ€”

  • @tonysolar284
    @tonysolar284 Pƙed 16 dny +5

    When do we stop using one function packages? the more dependencies a project requires the more space it needs and the higher the risk is for malicious packages to be included.

  • @cooltrashgamer
    @cooltrashgamer Pƙed 17 dny +8

    I’ve never heard someone pronounce it no demon, always node mon (short for monitor), but I like no demon way better lmao

  • @tinrab
    @tinrab Pƙed 16 dny +15

    I wonder if Node will ever get a built-in TypeScript support.

  • @chrisanderson687
    @chrisanderson687 Pƙed 14 dny

    I'm getting re-hyped about good 'ol NodeJS! It's always been great, and getting better. I tried Deno, Bun, etc. and I just find myself always coming "home" to Node. :)

  • @nathanbourquin6554
    @nathanbourquin6554 Pƙed 16 dny

    Hey question: when using npm run dev on a nextjs project it seems like files are updated on save without the update and -watch. How was this done before + will this be faster now?

  • @Kraszer
    @Kraszer Pƙed 17 dny +1

    So node didn't work on ARM windows before at all or x86 emulation handled it?

  • @burningtree878
    @burningtree878 Pƙed 15 dny

    Nice, these features look dope!
    FTW built in glob and watch 💯

  • @leg1tvids
    @leg1tvids Pƙed 16 dny

    Can you do a vid on your desktop env?

  • @RoryDent
    @RoryDent Pƙed 16 dny +4

    hyped for node --watch

  • @moinbagban87
    @moinbagban87 Pƙed 16 dny +3

    Font & VS Code theme?

  • @IbrahimAbdallah-tr4wq
    @IbrahimAbdallah-tr4wq Pƙed 16 dny +1

    Man, you had me in "kill esm" 😅

  • @mfanakagama
    @mfanakagama Pƙed 17 dny +10

    Even without node 22 Theo wouldv'e still been hyped

    • @ijazkhan3335
      @ijazkhan3335 Pƙed 16 dny +3

      Doesn't take much to hype him up

    • @tantalus_complex
      @tantalus_complex Pƙed 16 dny +1

      When you commit to keeping your community mostly positive, it's almost unavoidable that you come off that way.

  • @kaustav07
    @kaustav07 Pƙed 17 dny +26

    A video on modules? Really confused about ESM, CJS, AMD, etc...

    • @mribi
      @mribi Pƙed 17 dny

      I’d love to see that too

    • @ronanru
      @ronanru Pƙed 17 dny +7

      bun team has a nice article on this

    • @kamikaz1k
      @kamikaz1k Pƙed 16 dny

      @ronaru link it

    • @ouwyukha
      @ouwyukha Pƙed 16 dny

      You should've paid attention to History of JavaScript class 😂

    • @gro967
      @gro967 Pƙed 16 dny

      If you are still using anything else than ESM at this point, you missed out for a few years 😬

  • @erics2133
    @erics2133 Pƙed 16 dny +1

    I'll admit to being hyped. Set operations? Yes please. A lot of that other stuff looks interesting as well.
    I'll definitely be trying 22 soon. We don't use node much in production at this time, but that changes later this year, so developing in 22 is practical. I'll hold off on the stuff behind experimental flags, however.

  • @Gaijin101
    @Gaijin101 Pƙed 15 dny +2

    thanks bun for pushing node

  • @moumous87
    @moumous87 Pƙed 16 dny +1

    Theo is always hyped

  • @tangaucheplease9621
    @tangaucheplease9621 Pƙed 17 dny +2

    Just updated my dockers with it c:

  • @mdev790
    @mdev790 Pƙed 16 dny +1

    What vscode theme is that?

  • @gkiokan
    @gkiokan Pƙed 15 dny

    If node22 fixes this stuff, is there a reason to use bun anyway? I still had no time to test it but heard different opinions about it. And tbh, Never change a running system and I will stay probably on node/npm anyway.

  • @jmatya
    @jmatya Pƙed 16 dny +3

    To the Editor: good job 👍 on cutting the vid, figuring out the jumping around in the original recording must have been a headache 😅

  • @sonicewave
    @sonicewave Pƙed 17 dny +2

    problem is other libraries supporting N22, many NPM modules will have dependencies to other libs that throw error or lateset version of node, I've had problems with Angular CLI breaking just using N20 so had to drop back to N18 (also opened a bug on the offending module to fix support), it's really stupid but that's the state of crappy JS

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny +2

      But to be fair that's not a Node issue but an Angular one, it's similar with binary packages, and if the dev of the package doesn't do a binary build for it, again it's not really NodeJS fault. I would also say it's not a JS issues either, other languages have issues if the dev's of package X don't come out with updates for a new feature / breaking change in language X.

    • @sonicewave
      @sonicewave Pƙed 16 dny

      ​@@keithjohnson6510 that's not what I said, I said the problem is NPM modules failing to keep up so they break, angular cli was using some module that only support node 18 till I logged a bug to get it fixed with the maintainer.
      So indirectly it's going to be a problem with node if you can't simply just install the latest node LTS, unless you code with js and have zero depencencies with node modules.
      Coding is JS sucks, there is way too much constant change causing stuff to break, get deprecated in toolkits that you're forced to keep up to date, then some idiot hipster decides they going to change how we all should do X because the new way is more cool. These Clown don't understand or respect backway compatibility.
      Imagine the web breaking because some clown decides to change how HTML, CSS should work or be coded.
      Just remember all we're doing is rendering a web page, and handling dom events. This doesn't need constant churn. For a node server it's dealing with simple request / response. Only express js and or Koa have stayed unchanged, increasing ROI and developer producitivity. Who needs to waste their time fixing code when you do an update and now something is broken.
      JS coding is futile, it's full of hipster clowns doing agile releases. Why should anyone have to keep re-learning and fixing working code?

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny

      ​@@sonicewave NodeJS came out over 14 years ago, but to be fair it's backwards compatibility has been pretty good. Yeah, upgrading to newer versions of node doesn't always go smooth, my main issues have been when binary packages don't get updated quickly. You could say JS has it's flaws, like many other languages I use, but a good experienced coder doesn't bitch about his tools, but adapts to it's Pro's & Con's. Can you image the developers of uTube and all the websites you visit, just spitting there dummy out and saying, JS is just a Joke, Nahhhh!!.. Now sonic, pull yourself together, re-read what you have just posted, and say to yourself, "Am I really that person?". I believe in you, you just need to believe in yourself.

  • @hunterbertoson156
    @hunterbertoson156 Pƙed 16 dny

    I plan on upgrading soon to Node 22. Since I dont use a lot of Lambda.

  • @andresarrieche522
    @andresarrieche522 Pƙed 16 dny

    Is it recommended to use node 22 to develop an app for production in an enterprise? Or just use node 20 which is in LTS?

    • @jonkoops
      @jonkoops Pƙed 16 dny +2

      For production you should always use an LTS release unless you really don't have any other option.

  • @7heMech
    @7heMech Pƙed 14 dny

    seems like bun is a very positive influence on node

  • @penguindrummaster
    @penguindrummaster Pƙed 16 dny +1

    Happy for a lot of these features. Glob is good, but I already found a minor workaround using RegExp and iterating over reddit (Edit: readdir was auto-corrected). It'll be a nice performance bump to have the native implementation, but I'm more excited about the watcher and the engine updates. I work in CLI land (proprietary automated testing library for my employer) so improvements there are great. That, and the require(ESM) change will make my life so much easier for providing support, since up to now I've been manually authoring type declarations, CJS and ESM files. Realistically, it wasn't the worst thing (ESM just imports the CJS module and re-exports the members), but it was tedious.
    The last little bit I'll say is, as a library author, I'm always forced to work on an older release until it becomes deprecated, so I won't see any of these improvements for another 2 years sadly. C'est la vie

    • @tantalus_complex
      @tantalus_complex Pƙed 16 dny

      "...using RegEx and iterating over reddit" was almost the best troll comment I've seen in a while, even if it was accidental.

  • @itsthesteve
    @itsthesteve Pƙed 16 dny

    I never thought of it being no-demon. Ive always said node-mon.

  • @ouwyukha
    @ouwyukha Pƙed 16 dny +10

    5:18 WAIT!? ESM is not the future!?
    EDIT: 5:48 hahaha

  • @kearfy
    @kearfy Pƙed 16 dny

    I’m very excited for not having to use isomorphic websocket libraries from october next year onwards

  • @sama7496
    @sama7496 Pƙed 17 dny +7

    With node watch now we no longer have to use nodemon right ?

  • @SethuSenthil
    @SethuSenthil Pƙed 16 dny

    Finally RIP Watchman!

  • @dstick14
    @dstick14 Pƙed 16 dny

    Me still using node 16: (chuckles) I'm in danger

  • @stokbrood
    @stokbrood Pƙed 3 dny

    12:30 Guillermo isn't the creator of NextJS

  • @jpaulbamberg5058
    @jpaulbamberg5058 Pƙed 16 dny +2

    What terminal is that?

  • @packtrouble6270
    @packtrouble6270 Pƙed 16 dny

    Can someone explain why require(esm) is such a good thing or atleast point me in the right direction to figure it out myself?

    • @packtrouble6270
      @packtrouble6270 Pƙed 16 dny

      Wait nevermind, theo just made a oof. He confused me there for a second now I've got it.

  • @owenwexler7214
    @owenwexler7214 Pƙed 16 dny +1

    *looks worried in just upgraded to Node 20*

  • @obinnaokafor6252
    @obinnaokafor6252 Pƙed 16 dny

    do people still use Nodejs?

  • @Harish-rz4gv
    @Harish-rz4gv Pƙed 16 dny +1

    Which browser Theo uses??

  • @anon_y_mousse
    @anon_y_mousse Pƙed 16 dny

    What you said about Watchman is kind of funny. Do you know how the `make` program determines when to rebuild a file? When the source has a more recent timestamp than the binary. It's really that simple. And the same process can be used on Windows by just stat'ing the file. Back when I used Win98 I knew how to use the Win32 API to stat a file and compare timestamps. So if any devs for any project needed to use a third-party program to determine when to rebuild files, they should be embarrassed. Hopefully I'm not calling you out, it's just something I found funny.

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny

      Yeah, but that has nothing to do with watchman. This is talking about watching for file changes, a build system doesn't watch for file changes, it checks for file changes when you request a compile. In fact watching for file changes over network shares is still pretty lame, and poling needs to be used. BTW, this is nothing to do with Node either, it's just that OS's have not always been great at exposing a file change callback api.

    • @anon_y_mousse
      @anon_y_mousse Pƙed 16 dny

      @@keithjohnson6510 Maybe you're looking at the wrong thing, but the Watchman he references does indeed watch for file changes. A distinction for when the build system does anything is irrelevant unless you're saying that the project he was referencing that supposedly used Watchman didn't actually use Watchman. If that's the complaint, then you'll have to take it up with him.

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny

      @@anon_y_mousse So what's your point on a build system and comparing timestamps got to do with it?.. Comparing timestamps is not the same thing as making the OS watch for file changes.

    • @anon_y_mousse
      @anon_y_mousse Pƙed 16 dny

      @@keithjohnson6510 He used it as an example. I criticized such a usage. If he was erroneous in it being used for the purpose stated in the video, then take it up with him.

    • @keithjohnson6510
      @keithjohnson6510 Pƙed 16 dny

      @@anon_y_mousse Take what up with him?, Theo mentions what a pain watchman was for watching files, to known "WHEN" to do a build. And again what has that got to do with how a build system compares dates when "DOING" a build?. I'm really finding it hard to see what point your trying to make here. Yes, we all know how say a C++ compiler works etc. Are you just saying it's funny that he used a 3rd party service to watch for file changes, seems a strange thing to find funny, because how you watch for file changes in Windows is totally different to Linux, that is again different to Mac, sure maybe Theo should have spent time writing all this, instead of using a 3rd party lib.

  • @skydivertyler
    @skydivertyler Pƙed 16 dny

    My question is: Node 18 was “Hydrogen” (H), Node 20 was “Iron” (I), what will Node 22 (J) be called? There aren’t any periodic table elements that start with J đŸ€”

  • @lancemarchetti8673
    @lancemarchetti8673 Pƙed 16 dny

    Super cool

  • @CristianKirk
    @CristianKirk Pƙed 17 dny +1

    Is there a way to make node compatible with Win7?

    • @jonkoops
      @jonkoops Pƙed 17 dny +3

      No, and you should not use Windows 7, it's end-of-life.

    • @somenameidk5278
      @somenameidk5278 Pƙed 16 dny +2

      please don't use windows 7, it dosen't get security fixes anymore (and no, just not downloading sketchy programs won't protect you, RCE vulnerabilities exist)

  • @SamyarBorder
    @SamyarBorder Pƙed 16 dny

    You know node really did change something when he talks about node

  • @pedroalonsoms
    @pedroalonsoms Pƙed 16 dny

    damn were still on v16 at work

  • @gabrielbianchi2246
    @gabrielbianchi2246 Pƙed 17 dny +1

    Yeah I’ll have to wait until we have lambda support

    • @moussaadem7933
      @moussaadem7933 Pƙed 16 dny

      lambda functions ? we already have function expressions and arrow functions

    • @somenameidk5278
      @somenameidk5278 Pƙed 16 dny

      @@moussaadem7933 AWS Lambda. The video mentioned it as well.

  • @mang_tomas
    @mang_tomas Pƙed 16 dny

    WHUT!! but we're still using node 8!!

  • @ml210993
    @ml210993 Pƙed 16 dny

    Totally different from prime''s latest title about uninstalling node :D

  • @parkernilson
    @parkernilson Pƙed 16 dny +1

    That’s a lot of nodeable changes

  • @okoyl3
    @okoyl3 Pƙed 16 dny +10

    Why do you so advocate for lambda and the vercel bullshit? It's not difficult to run a real node app on a linux instance, which is way cheaper.

    • @phil-l-tech
      @phil-l-tech Pƙed 16 dny +2

      Gotta pay the bills bro, I don’t blame him

    • @mihalypapp3710
      @mihalypapp3710 Pƙed 15 dny +1

      Lambdas can be way cheaper though if you expect little to no, or spiky traffic. Idk about vercel

    • @martinadoesthings
      @martinadoesthings Pƙed 9 dny

      He sells a service, and his mindset is that people should pay for what they can have for cheap.

  • @gustavcoetzee5018
    @gustavcoetzee5018 Pƙed 16 dny

    Hey need to say this. By coincidence. I was trying npm wasm rust for some webgl power. Today. Updated to 22. Wasm rust she wants node 16... fml i dont know. Perhaps someone does

  • @mwcavanagh
    @mwcavanagh Pƙed 17 dny +1

    node daemon ... daemonized node O_o ... nodemon

  • @FlohtheGamer
    @FlohtheGamer Pƙed 16 dny +3

    The JS Ecosystem needs to die, sorry to the Frontend Devs but the industry took some weird turns. Now we celebrate features which solve problems that should not be there in the first place. JS had it's time in history, i get that. Now let it rest in history and move on.

    • @anon_y_mousse
      @anon_y_mousse Pƙed 16 dny

      How about a C compiler targeting WASM? đŸ€Ł

    • @somenameidk5278
      @somenameidk5278 Pƙed 16 dny

      @@anon_y_mousse yes, that's Emscripten? what's so funny about that?

    • @anon_y_mousse
      @anon_y_mousse Pƙed 15 dny

      @@somenameidk5278 I guess you'd have to be into C to get it.

  • @martinlesko1521
    @martinlesko1521 Pƙed 17 dny +1

    I love those thumbnails

  • @slipperyeel9206
    @slipperyeel9206 Pƙed 16 dny

    I use nodemon. I also call it no demon 😈

  • @inventionpro_
    @inventionpro_ Pƙed 16 dny +1

    9:39 You know what else is free on youtube, the dark theme :)

  • @JacobGlanz1234
    @JacobGlanz1234 Pƙed 15 dny

    You’re hyped because you’re always are
    The problem is that the hype only lasts for five minutes until the next




  • @lautarodapin
    @lautarodapin Pƙed 16 dny

    f* currently moving from node 14 to node 20 and now i have to move to 22? lol

  • @andriypashynnyk4278
    @andriypashynnyk4278 Pƙed 16 dny

    i am excited to drop node 22 and use bun instead

  • @PGDJ88
    @PGDJ88 Pƙed 17 dny +4

    I came from twitter

  • @jatinhemnani1029
    @jatinhemnani1029 Pƙed 16 dny

    rip nodemon

  • @moussaadem7933
    @moussaadem7933 Pƙed 16 dny

    i hate when he goes "whooooh!"

  • @BhargavaMan
    @BhargavaMan Pƙed 16 dny

    It's not no-demon, it's node-mon
    As in, node monitor
    I am VERY fun at parties, I must say.
    EDIT: AAH FUCK chat beat me to it.

  • @vantadaga
    @vantadaga Pƙed 16 dny

    Its node mon....

  • @ashnur
    @ashnur Pƙed 16 dny +1

    cjs will never be killed :)

  • @MiSt3300
    @MiSt3300 Pƙed 17 dny +104

    Hello everyone from a Polish software engineer! Polish programmers are the best in the world. period. Change my mind XD

    • @mrkostya008
      @mrkostya008 Pƙed 17 dny

      JAAA PIERDOLE, POLSKI PROGRAMISTA!!

    • @flamakespark
      @flamakespark Pƙed 17 dny +16

      Polska gurom đŸ’ȘđŸ‡”đŸ‡±

    • @TheRagePumpkin
      @TheRagePumpkin Pƙed 17 dny +23

      Als deutscher Ingenieur bin ich da anderer Meinung

    • @SzaboB33
      @SzaboB33 Pƙed 17 dny +27

      Insert Obama honoring himself meme

    • @MrEnsiferum77
      @MrEnsiferum77 Pƙed 17 dny +3

      My mother was born in Poland (my grandparents escape from aegean, greece calvary against them, expelled) and I can take polish citizenship, but I don't like, because they don't support Russia

  • @abel.3000
    @abel.3000 Pƙed 16 dny

    IMO never gonna touch node or npm again. The module transitions has been handled so horribly 
 they should just close the committee,move on and let the new generation of runtime take over

  • @tranquility6358
    @tranquility6358 Pƙed 17 dny +3

    The charade of JavaScript on the server continues...

    • @CHN-yh3uv
      @CHN-yh3uv Pƙed 16 dny +3

      Old man yells at the sky

    • @tonyb3123
      @tonyb3123 Pƙed 16 dny +1

      Node is good on the server.
      Its just less good than about 10+ other options and more or less exists for those who cant be bother to learn any of them

    • @boscodomingo
      @boscodomingo Pƙed 16 dny +1

      Honestly I would like to move to Go or C#, but at this time it's just more efficient to remain on TypeScript+ Node. Is it perfect? No, but it's good enough. Is it the fastest? No, but it can handle more requests/s than the APIs I'm building will ever need, plus we use serverless anyways so they would easily scale to the point the DB would be the bottleneck way before a large bill would come. I'm happy with TS and the Node team are doing a killer job at improving performance, capabilities and security and it shows. Don't forget it's all C++ underneath via libuv, so they can tap into serious gains that way

    • @tranquility6358
      @tranquility6358 Pƙed 16 dny

      @@boscodomingo When your database is a bottleneck, you add a caching layer or you add another node to your cluster, or you do both.
      I prefer Go for its ease of use and actual concurrency. The performance gains are indeed massive too.

  • @StinkyCatFarts
    @StinkyCatFarts Pƙed 16 dny

    Node is crap