Deno 2 with full Node compatibility is huge, presupposed it works reliably without runtime surprises. I wouldn't mind if I get a warning when a Node package is not supported, but runtime must be rock solid, especially with server packages like node-postgres (pg).
Apart from this little doubt, I love it:
The APIs and std lib are so extensive that we don't need huge amounts of third party packages. Typescript support is great. Deno actually can check Typescript (not just run it by stripping it as Node or Bun). Compiling (bundling) is another great feature.
Question for those who use Deno in their $job: How well does Jest work with Deno to test TypeScript? I was wondering because the announcement says it supports typescript natively, which is intriguing after I've had issues with node+jest+es6+typescript.
(Issues = mts vs ts, configuration problems, lots of conflicting documentation. It doesn't help that I'm mostly DevOps and don't spend every day on writing Lambdas for AWS etc)
Edited to add: The installation page[1] talks about asdf[2] but I find mise-en-place[3] to be faster than asdf.
Mise/asdf are pretty great. A .tool-versions file in your homedir will set up default versions, and you can override them with .tool-versions in your repos. And because 2 different tools can read those versioning files, you can include them in the repo and pin versions.
I've started using Deno for some small hobby scripts and projects, and it's been really good so far. Their LSP server and VSCode extension are way faster and better than the default one, and configuration for a new project is much easier. Plus all the things like `deno fmt`. In comparison Bun only ships the runtime, without any of the tooling niceties.
I think I wouldn't use TypeScript without Deno now :)
Doubt it too, because -if I remember the public discussion correctly- how to migrate projects over from node to deno without basically rewriting anything was a question straight from the beginning. And bun was not a thing, or was it? - First bun 1.0 release was 2023, deno 1.0 2020.. so maybe, but unlikely :)
Deno has had node compatibility for longer than Bun has been announced
It's always been controversial in the deno compatibility since they originally promised to take a principled stance NOT to support node in order to move the scene forward. But they quickly realized that they were in a market and they needed to compete and backtracked on that almost immediately
Finally something that comes close to Dart tools, or it reminds me a lot of it.
Does "deno install" behave like pnpm with the way it handles node_modules efficiently?
Also, is there any summary of the Deno 2 presentation? 1 hour is a bit too much to take in. It's almost like a movie.
The site presents Deno 2 as if it has finally beat Bun in terms of performance, is that the case? Either case, I downloaded Deno 2 from asdf and I'll give it a try, looks exciting!
> The site presents Deno 2 as if it has finally beat Bun in terms of performance
Bun's HTTP server performs 51% faster before parallelism. Their benchmark is incorrect. They posted a correction, and their correction is also incorrect. Benchmarking correctly is hard, and we put a lot of effort into making sure our benchmarks are easily reproducible.
Bun v1.1.30: 283,386 requests per second (51% faster)
Deno v2.0.0: 187,359 requests per second
Deno v1.45.5: 185,522 requests per second
The following code:
let i = 0;
export default {
async fetch(request: Request): Promise<Response> {
return new Response(`Hello, world! ${i++}`);
},
};
This was tested on a Linux x64 machine running Debian 11 with a 32 core Intel i9-13900 CPU and 64GB of RAM. In this benchmark, the HTTP server runs on a single thread, so the CPU core count is not as relevant but still worth mentioning.
If we increase the number of concurrent connections from 10 to 1,000 - Bun's HTTP server performs 267% faster.
Bun v1.1.30: 209,133 requests per second (267% faster)
Apart from this little doubt, I love it:
The APIs and std lib are so extensive that we don't need huge amounts of third party packages. Typescript support is great. Deno actually can check Typescript (not just run it by stripping it as Node or Bun). Compiling (bundling) is another great feature.