It'd be useful if Deno released a comprehensive benchmark suite, otherwise it's difficult to compare runtimes, like Deno may measure one thing and Bun may measure another thing, if the measurements aren't about the same thing they are a bit meaningless.
That's nice to hear, hypothetically that may not always be possible, like V8 doesn't have proper tail call optimization for example, realistically how can Deno optimize that if V8 doesn't even want to ship this optimization? Most scenarios should be fixable though.
True but most slowdowns are at the runtime/bindings level and not V8. ...and V8 usually accepts performance improvements, like this patch that adds Uint8Array support in Fast calls chromium-review.googlesource.com/c/v8/v8/+/3767…... it had direct impact on Deno FFI performance).
I personally don't see the huge benefit of TCO. There are isolated cases where it may make some sense, but it's not the magic performance pixie dust that some people make it out to be. It's more of runtime feature than a performance optimization IMO.
I agree with that, I guess I was just being annoyingly pedantic regarding:
> Our goal is to make Deno the fastest JavaScript runtime - full stop.
Like that's just not possible under every scenario. Being faster on average is much more interesting though, sure.
I suspect that bun's performance compared to Deno may come from Deno optimizing for size instead of speed, but I haven't been able to build it myself yet to try it
Really nice to see increased deno - node compatibility. I am a bit worried the huge influx of npm packages will kill the fledgling deno ecosystem though
We at @StripeDev recently put in a bunch of work to make sure stripe-node works in non-Node environments. It was hard, but worth it. Very happy to see Deno making npm modules "just work" without requiring the effort we had to put into it.
not gonna lie... I am not happy about adding greater support for node packages. Deno felt like a clean start without the dumpster fire... I wish you guys would reconsider
Many of us use node/JS both for backend & front-end. Eg write schemas, models and validations as an npm package and utilize it on both ends. It is an enormous productivity booster when you write this way vs doing it the traditional way,ie repeating same logic on front and back
I build SPAs (PWA/offline capable). So running it in a browser is a must. Plus it must be compatible with TS in React/Vue/Angular without any acrobatics involved. Correct me if I am wrong but it is not possible at the moment unless you embrace wasm builds
In node I can spit out ESM compatible library easily and on the front-end side I can do all the tree-shaking. I just do not see how it is possible in Deno. I did look into it and the message was pretty clear - it is not for browsers period
Feel like Node had its chance to make a clean break and force a spring cleaning of NPM by making ESM first-class, so ".js" and not ".mjs". ESM will never be serious on the Node platform.
The thing is this enables incremental migrations. You can move to native packages where they exist, but aren't cut off from *the rest of the ecosystem* if you need something
Super exciting stuff!
> “… will allow Deno to easily import npm packages and make 80-90% of npm packages …”
Do we know what will differentiate the 10-20% of packages that won’t work?
I was thinking in regard to moderation of modules on deno.land/x. Although, the handling of NPM package imports in remote modules would also be interesting.
I thought the whole point of Deno was that npm packages were "a mistake"?
What's differentiating you now from Node? Other than the unsubstantiated claims of the "fastest web server"...
Not sure, maybe:
Pretty better developer experience for newcomers to javscript/typescript ecosystem.
Easy Rust ecosystem access, compared to hard C/C++ nodejs ecosystem access.
Easy to newcomers to install, run, distribute and deploy code.
WebAssembly?
I don't know.
I think, being fastest should not be the goal. 90% of the so called apps will not require that much performace. Instead focus on dev velocity and rich ecosystem. Rest you are on absolutely right track! Keep rocking!
Finally! This upcoming npm support is going to be huge, and change many developers minds. Supporting most npm packages might be challenging, e.g. many npm packages I’ve tried importing into bun have failed and needed an issue and a fix. I predict the same teething with deno.
Any plans to document package compatibility as the broader npm support ships?
It'd be great to have a searchable db of what still doesn't run vs what runs under a compat layer vs what doesn't depend on node libs in the first place/is isomorphic