I'm planning on using Deno long term too and have also made some contributions to their standard library. But I completely disagree with you on NPM support. I think that gap early on contributed to bun's success. I almost quit using it because of how difficult it was to use react with Deno. Now it's pretty easy to use react and other npm packages with Deno. Before that, a lot of the most popular packages were just forks of npm packages adapted for Deno, but not as well maintained since less people were using them. Then deduping dependencies was just harder when they were all urls. If your package had a dependency using a different version url, you'd need an import map just to remap them all to using the same version. I'm pretty happy with the current deno.json with jsr and npm compatibility.
As an early Deno purist I must invoke the 10 Mistakes talk that Ryan gave when he launched Deno: https://m.youtube.com/watch?v=M3BM9TB-8yA&t=11s&pp=ygUScnlhb...
As someone who has mostly just tinkered with this stuff (while using Node extensively at work) I see two truths:
- Deno initially seemed like something a number of us were clamouring for: a restart of the server JS ecosystem. ES modules from the start, more sensibly thought out and browser compatible APIs, etc etc
- that restart is incompatible with the business goals of a VC funded startup. They needed NPM compatibility but that destroyed the chances of a restart happening.
I’m just sticking with Node. I know Deno and Bun are faster and have a few good features (though Node has been cribbing from them extensively as time has gone on). I just don’t trust a VC backed runtime to keep velocity in the long term.