Friendship ended with Deno, now Node is my best friend

(dbushell.com)

95 points | by ibobev 5 hours ago

17 comments

  • Barbing 12 minutes ago
  • isyouaint 2 hours ago
    I helped Deno bring the Standard Library to v1 [as a contractor] and have always loved the team and philosophy. But these days I’m saddened by what seems to be their slow decline into obscurity. After the layoffs, there seems to be no roadmap, no comms, etc. I’m just so curious as to where they’re heading and still hope the best for it. I’ve always liked Deno more than Node and Bun.
  • tuveson 2 hours ago
    > This restriction is philosophical rather than technical. I get it though. TypeScript is a Microsoft product. Opening that floodgate would pollute the entire ecosystem.

    Bad news (well not news, this happened a while ago): https://www.cnbc.com/amp/2020/03/16/microsoft-github-agrees-...

    • arcanemachiner 55 minutes ago
      Don't worry. I'm sure Microsoft will be as good of a steward of npm and its ecosystem as they have been for GitHub.
      • beart 15 minutes ago
        The article is from 2020, so you may already be able to make that judgment.
      • judge2020 44 minutes ago
        GH still has its own login system thankfully, and I can't even sign in with Microsoft or link my Linkedin profile in any way (at least from Github.com; I'm sure there's a public Linkedin-developed Github App). I'll take what I can get.
  • theturtletalks 1 hour ago
    With LLMs becoming prevalent, it seems people are “quitting” their projects more quickly. Not necessarily a bad thing, but just shows that the opportunity cost is too high right now if you’re building the wrong thing. Deno isn’t the wrong thing, but LLMs don’t reach for it and that’s a huge blow right now.
    • doginasuit 6 minutes ago
      > Deno isn’t the wrong thing, but LLMs don’t reach for it and that’s a huge blow right now.

      This only matters if you don't know what you are doing. LLMs can work with any tool. I'm working with a very unconventional stack and the LLM seems right at home.

    • lukan 1 hour ago
      "Deno isn’t the wrong thing, but LLMs don’t reach for it and that’s a huge blow right now"

      Well, in my case I suddenly had deno installed, while letting run fable in auto mode, even node was already there and I had to look up what deno was. "Ah, that node replacement."

  • fastball 3 hours ago
    I know Bun is kinda not the fan favorite right now with the Anthropic acquisition and the Rust re-write drama and such, but on every one of the dimensions listed in this article, I like Bun better than either Node or Deno.
    • vlz 15 minutes ago
      The author gives his (non-technical) reason for not using bun here:

      https://dbushell.com/notes/2025-09-10T12:08Z/

    • Muromec 2 hours ago
      I use bun for the sole reason of it running perfectly on riscv64, while void zero is sleeping and not providing vite/tsdown/oxwhatver builds for it.
    • shard972 3 hours ago
      Bun is awesome. It feels great these days to start with bun or convert a nodejs app over and reduce deps down, sometimes to 0.

      Ive just gone all in, no more mega bash scripts that constantly bug out on the silliest problems whenever you try to do anything complex involving a list data type.

      It just feels like its something you can pretty much always bend towards what you need without needing to breakout into another language and I'm keen to see some of the new performance stuff their continuing to work on.

  • raspace 47 minutes ago
    Turns out the 'boring enterprise runtime' spent its time actually shipping stability while everyone else was chasing the next shiny runtime hype cycle.
  • solarkraft 3 hours ago
    Oh look, we’re consolidating again. My only gripe with it was that it wouldn’t directly run Typescript. Other than that it just felt a little ... antiquated.

    Bun seems popular too, what would be reasons to choose it?

  • jeffyaw 31 minutes ago
    if you want to try a new runtime oam.js is focused on TypeScript & MCP servers.
  • chrysoprace 3 hours ago
    I wanted Deno to succeed to have a single standardised toolchain, but with Deno having its own APIs you'd effectively have to architect your application to be a "Deno app" and it created two different ecosystems. The best way to make your app portable would be to use the provided Node APIs, cutting a lot of the value from Deno.
  • Naitronbomb 1 hour ago
    > Why? Just strip the types bro, I know you can! Let me sign a deal with the devil!

    > This restriction is philosophical rather than technical. I get it though. TypeScript is a Microsoft product. Opening that floodgate would pollute the entire ecosystem. Nobody wants more Microsoft.

    The reason Node disallows this has nothing to do with TypeScript being owned by Microsoft, it's because there's no guarantee the TSConfig settings used in the library you're pulling in match the ones in your project. A mismatch would mean you would get type errors inside the library code (assuming you're doing some form of type-checking in your application, otherwise what's the point of even using TypeScript).

    > No TypeScript packages mean I need to find the latest churnware slop to bundle my stuff.

    The TypeScript compiler itself comes with everything you need for this. See: https://www.typescriptlang.org/tsconfig/#declaration

    There are other advantages to bundling, but it's not strictly necessary if all you care about is publishing TS on NPM. Declaration files solve the problem by supplying the resolved types of the publicly exposed identifiers. Also has the added advantage of not locking out plain JS consumers.

  • brlewis 45 minutes ago
    There are good reasons to stay positive about deno. Some of them: https://lobste.rs/s/a9kwzv/friendship_ended_with_deno_now_no...
  • austin-cheney 3 hours ago
    I want to run my node project on Deno for performance testing, but Deno has problems when executing OpenSSL in a child process.
  • seer 1 hour ago
    I wonder what the future of all three is mode bun and deno, their original goal has always been to be able to code in one language across frontend and backend, and typescript itself is a hell of a good language too.

    But now that people seldom even look at the code, does it even matter? Our shared language now is English - across tests, frontend, backend, product briefs and design systems.

    I have written a crap ton of node code before, because I liked it, but now I do everything in specialized stacks where each tech is chosen to best fit its environment. Backend - use Go, frontend - react/svelte/custom ,game simulation code - C#.

    I just debate what would be best fit with an agent, do a few pilots to prove it and just go. Languages I’ve never coded in are super fast to execute - just insist on following best practice, modern conventions and do some spot checks against o(n) problems, architecture and parallelism - and it works, and vibe coded codebase with strict linting rules vastly outperforms fine tuned code in a shared language (node).

    I honestly don’t see a bright future for them, and tbh I was surprised at Claude’s migration _to_ bun - why not just make the jump to something like ocamel that would let their agents have even more performance, context and linting tools, but I guess if they did it once the will do it again when they feel like it.

  • bhavikjadav 45 minutes ago
    Love the site!
  • elendilm 2 hours ago
    I never found Deno compelling enough compared to Node.

    Bun was promising, but as long as they don't fix their http GET implementation to accept the request body, its broken for me.

    Note: Many real world tools like Elasticsearch's GET /_search with a JSON query DSL is one example. It breaks Axios. Many custom infrastructure tools expect it.

    Advertising as node compatible and having this breaking change is undesirable. Hope it gets fixed soon.

    • HumanOstrich 2 hours ago
      You shouldn't be sending a body with a GET request. Sounds like your code is broken.
      • elendilm 1 hour ago
        No. There are use cases for GET with body. Curl allows it. Node allows it. Bun doesn't.
    • zahlman 1 hour ago
      Enabling the GET implementation to "accept the request body" would literally be the opposite of fixing it. The broken thing here is your expectation. You are looking for POST (or possibly PUT).
      • elendilm 1 hour ago
        You would be surprised how many technologies expect GET with a body. In practical backend engineering, tools like Elasticsearch, GraphQL, complex query engines, and legacy internal APIs rely on GET with a body every day. Apparently even axios messes up on curl GET requests with a body as mentioned in the associated github issue.

        Perhaps the broken thing might be how you expect existing softwares to break so that your expectation can be satisfied. You should look at GET more closely.

        There is a reason curl allows to send GET requests with a body. There is a reason node allows to receive GET requests with a body.

        • pdpi 39 minutes ago
          A request body in a GET is not standard HTTP. Refusing to handle non-standard requests might be inconvenient, but it's an eminently defensible choice.

          I understand why you'd want it, and that's why RFC10008 introduces QUERY as a GET-with-body alternative.

          • what 16 minutes ago
            Technically every http method can have a body? But the specification says the semantics are undefined on get and any compliant implementation is free to ignore it.
      • ButlerianJihad 1 hour ago
        It was funny a few years ago, when I had to grade students answering a quiz about web services. There was a question about which components were necessary for a valid GET request. The required answer was a list of 4-5 components, such as the "GET" verb, the URI, the HTTP version, etc.

        And it was rather controversial that some listed a body as necessary for a GET request, and doing my research I came to find out that a "request body" was often quite undesirable and perhaps contrary to the RFC standards, and sending a "body" in a GET could result in undefined or unpredictable behavior. But it's all in good fun.

    • zja 1 hour ago
      They just implement the fetch api from the web, does the fetch api allow get’s to have a body?
      • elendilm 1 hour ago
        Node allows it. Curl allows. Not having it is a breaking change and undesirable for node compatibility.
        • dullcrisp 1 hour ago
          If you need bug-for-bug node compatibility you should be using node.
        • what 12 minutes ago
          A body is technically allowed on any http request but it doesn’t mean anything on a get, a server is free to ignore it, anything in the middle is free to strip it, etc.
  • debo_ 3 hours ago
    You need better friends
  • moralestapia 2 hours ago
    Node is really good, and whatever thing that comes out outside of it will eventually be engulfed by it. Node is the safe bet :).