Deno 2

(deno.com)

81 points | by frou_dh 11 hours ago ago

15 comments

  • WuxiFingerHold 9 hours ago ago

    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.

  • Tiberium 8 hours ago ago

    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 :)

  • bloopernova 11 hours ago ago

    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.

    1: https://docs.deno.com/runtime/getting_started/installation/

    2: https://asdf-vm.com/

    3: https://mise.jdx.dev/

    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.

  • Alifatisk 6 hours ago ago

    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!

    • Jarred an hour ago ago

      > 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++}`);
          },
        };
      
      
      Run with:

          oha -c 10 -n 10000000 --disable-compression http://localhost:{port}
      
      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)

      Deno v2.0.0: 78,289 requests per second

      Deno v1.45.5: 76,628 requests per second

      Run with:

          oha -c 1000 -n 10000000 --disable-compression http://localhost:{port}
      
      
      Note that we add the --disable-compression for Deno's benefit here (as it does nothing for Bun right now)

      Have not yet spent enough time investigating their other benchmarks.

    • pier25 6 hours ago ago

      > 1 hour is a bit too much to take in. It's almost like a movie

      It's more like 20 mins.

      There's a general intro of like 10 mins on Deno and then like 30 mins of a livestream with the Deno team.

  • olestr 7 hours ago ago

    Well done, the Deno team!

    I found the FAQ in the announcement well made too, with some good and questions and answers.

    I'm already having a great time with Deno v1 on my side project - thank you!

  • adhamsalama 9 hours ago ago

    I wonder how much Bun pushed them to have full Node.js compatibility.

    • pier25 8 hours ago ago

      Who knows but I doubt it.

      It's probably more about people complaining they can't run Next or some other framework on Deno which directly impacts their business (Deno Deploy).

      • oleics 7 hours ago ago

        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 :)

        Anyways, that backwards compat is huge

  • daft_pink 6 hours ago ago

    hoping it gets added to homebrew soon.

    • pier25 5 hours ago ago

      they mentioned in the livestream they were working on it

  • msoad 11 hours ago ago

    being able to run Next.js with Deno is huge! I will give this a try!

  • fithisux 11 hours ago ago

    Deno 2 Python 3.13 TCL 9.0

    Full of surprises this October

  • 11 hours ago ago
    [deleted]