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:
Like that's just not possible under every scenario. Being faster on average is much more interesting though, sure.
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.
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
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.
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