After reading through this thread, I'm personally leaning toward Deno for my first non-Node project. Demo seems to be more thoughtfully managed, more pragmatic (e.g. Node/NPM compatibility), more secure, with better technology choices (e.g. Rust vs. Zig) overall.
Bun is miles better in this regard.
Deno initially did not even want to focus on Node/NPM compatibility, and then backtracked once they understood the importance of it.
Bun OTOH runs the entire Node.js test suite on every commit, and the mentality of breaking less existing node/npm code is clear. e.g, just in this release, `bun publish` has the exact same CLI as `npm publish`, and bun also works out of the box with .npmrc.
About the Node.js test suite.. many modules are at 100% compatibility, and many are at 90%. You can track it here: https://bun.sh/docs/runtime/nodejs-apis
Also, they reimplement the V8 public C++ API in JavaScriptCore (!) so that packages like npmjs.com/cpu-features work [1]
Every new feature has this aspect to it, e.g the postgres client inbuilt is a drop-in replacement for the `postgres` package.
As far as Node/NPM compatibility, and thought given to compatibility in general, is concerned, there is absolutely no contest.
And if I'm allowed a little snarky slight... Deno couldn't even maintain compatibility with their own API for reading and writing files during the Deno 1->2 update.
[1]: https://bun.sh/blog/how-bun-supports-v8-apis-without-using-v...
> more pragmatic (e.g. Node/NPM compatibility)
Both projects are good on this front. Deno actually originally explicitly promised NOT to work on node compatibility to "move the industry forward". They realized this was a failing move and backtracked (which has been a little controversial amongst the core base)
> with better technology choices (e.g. Rust vs. Zig)
I think it's a little silly to take the choice of language as a "technology choice". Both are new languages, both still have a lot to prove, and both have pros and cons the other lacks
In the end, it's all JavaScript (or TypeScript if you like Kool-Aid), as long as you know the language you can pretty much effortlessly jump between node, bun and deno, they're more similar than they are different :) Migrating projects on the other hand, well...
Most of my production code ends up ClojureScript for frontend stuff.
That's cool that you get to write front-end code in an interesting language though! How long have you been doing that? How big is your team? I feel like larger teams tend to have more boring choices of software
> Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
There's nothing to gain from a different versioning scheme. People just want 1.0 and this is just another way to ask for it.
It'll be done when it's done.
Python certainly isn't stable, for example. (And likely never will be, the devs just don't care.)