Good. A reduction in dependencies and tooling. Once matured, no more: isomorphic fetch, pkg, nodemon, mocha/jest. Now if we can do the same for webpack and typescript, that would be great. There must come a day when a developer can bootstrap a reasonably sized Node project with just the built in tooling.
Deno does this by default, plus you can use npm packages in Deno as well. It also has a compile option that turns the entire project into a binary you can deploy, which is great to not have to ship source files and run them with Node as is usually the case.
For the frontend, Vite works well, and NextJS if you're using React in particular.
This is why I’m excited about Bun. I’ve built a handful of 0-dependency utility web apps (internal company tooling) with it. It’s early days, but it’s already quite good.
I don’t think I’ve gotten free performance since Node 12. There’s a little juice in Node 16 for async code and certain class patterns but those are mostly avoiding penalties, not getting new benefits.
We’re supposed to be thrilled about a years old API finally landing in Node? A built-in test system when there’s so many great choices by not being batteries included? A standard update to catch up to the latest Chromium?
Other than the fourth point (yay a better watch mechanism!) this actually persuaded me to think that maybe Node is stale.
Well… not stale. Stable. Maybe at my ripe old age of 36 I’m a curmudgeon, but I think it’s fine to just focus on maintenance mode and following the browser for API and feature guidance.
This is a slight misnomer in my opinion. When those dependencies are bundled into Node you have fewer listed dependencies, yes, but you haven't actually reduced the amount of external code you rely on.
You have a single vendor to worry about— like Microsoft when you use .NET, Google when you use Go, etc. You obviously will always have external dependencies unless you build everything from your own hardware up. But it’s clearly a win to vet and trust one vendor, and have one solid, trusted platform to build on vs pulling in literally thousands of dependencies from random vendors as is common in most JS stacks.
That's a fair point. Currently I'm not convinced all of this is the right direction for Node, but we'll see how it pans out. Node is already huge so I would much rather they pick their battles and do those features well, rather than try and be mediocre at everything.
Yea for real. I’m sure there’s tons of reasons why it took so long, there’s gotta be some devil in the details. Maybe the standards compliance, complexity of the code base, something something “ecosystem”, all the above…
Feels like a similar situation to CJS/ESM, which is still a headache in Node regardless of its support
Test runners have been super requested lately in the Node GitHub issues. I have not understood why that is because writing a test running of your own is trivial.