edit: There's also nub which is built on top of Node.js and removes some rough/legacy edges: https://github.com/nubjs/nub
edit: There's also nub which is built on top of Node.js and removes some rough/legacy edges: https://github.com/nubjs/nub
They do seem to have just merged in support for Web Workers though, which I've been following for a while: https://github.com/nodejs/node/issues/43583
So I don't think they're opposed to standardising, but it's trickier when you have some past cruft built up. Lets not forget that the fetch() standard was built for browsers, and is a bit of a stretch to make it work on servers at all. You have to diverge from the fetch spec to even make it make sense in a server environment (with things like Cookies handling off the top of my head).
Which leads to confusing things like the fact that there are two streams APIs in Node now:
Streams: https://nodejs.org/docs/latest/api/stream.html
Web Streams: https://nodejs.org/docs/latest/api/webstreams.html
And they have to support going back and forth between the two: https://nodejs.org/docs/latest/api/webstreams.html#nodejs-st...
It's exactly the same story for crypto as well. Node created it's own standard, Web standards emerged, Node has to support both:
https://nodejs.org/docs/latest/api/crypto.html
https://nodejs.org/docs/latest/api/webcrypto.html
Fwiw I think it's good they're not removing the legacy code, but they should probably do a big cleanup major release and lean into the modern standards and remove the old stuff. But there's obviously push back in doing so... and probably stuff you can do in the old modules that you can't do in the new and vice versa.
When we used to code by hand, Bun used to have an amazing list of articles on how to convert from almost any kind of streamable to almost any other type. I used it a lot, and that was when I started liking Bun so much.
- esbuild - this is normally for TS compilation, which Node can run natively now by stripping types: https://nodejs.org/docs/latest/api/typescript.html#type-stri...
- jest/vitest: Node has a test runner: https://nodejs.org/docs/latest/api/test.html
- dotenv: Node can read .env files: https://nodejs.org/docs/latest/api/cli.html#--env-filefile
Performance, maybe you're right - but if you're doing any IO, I doubt the runtime is really the bottleneck.