Hacker News new | ask | show | jobs
by bartlomieju 1 hour ago
> Seems like the core of these issues was a Claude-coauthored PR: https://github.com/denoland/deno/pull/33208

Disclaimer: I'm the author of the linked PR. Using AI here is not really at fault here - it was just a giant rewrite that replaced how we do `node:http` in Deno. Replacing the engine while driving is never easy and we did the best we could. While we have a lot of test coverage and we use tests directly from Node.js codebase, we just don't catch everything. We're constantly working on improving the situation and I'm sorry you hit a problem. I can assure you that we are fixing all Node compat bugs as quickly as possible.

3 comments

> Using AI here is not really at fault here

Maybe reality isn't represented by the git logs, but according to them, you appear to have composed, reviewed and merged 131 commits affecting 58 files and 6000 lines -- a task that you say amounts to "replacing the engine while driving" -- in the span of one week.

If that's accurate, of course your reliance on AI is at fault here. It invites you to mistake velocity for quality and conflate test satisfaction for completion.

Without AI, this effort would likely have taken much longer and an experienced team would have approached it with due meticulousness, being especially stringent in review. Absorbed in it, the work would have weighed on their unconscious while they slept, with "Ah shoot, did I consider XYZ?" moments striking them in the shower. Ideally, familiar with the specific contributors (i.e. you) and their style of work, the reviewer who later consider merging the work would have ideas what to watch out for and would spend extra time looking at the details you might not have fully considered. It's a whole decades-matured craft practice that can do a pretty good job of making sure that a refactor of this scale doesn't land in main too broken.

And while that version still probably wouldn't have been entirely flawless either, or might never have even been attempted because of its greater calendar and attention burden, that doesn't mean that using AI wasn't responsible for why and how this version is broken.

This is exactly how AI makes things worse and why many people are wary of relying on third-party projects that embrace it too blithely. If you're going to use it, that's great, and maybe it will help you keep landing big features more quickly than otherwise -- but at least accept responsibility for the tradeoffs that you're inviting when you do so.

> Rewrite the entire node:http stack to use llhttp (Node.js's HTTP parser)

Can we please not turn Deno into junk? If you do the above -- what's the point of Deno?

Once you bolt everything on like that you might as well just use Node.

Deno started off with its own tools. Bun has managed a good balance between compatibility and its own thing (the recent moves aside) without resorting to these tactics...

We tried to build `node:http` on top of Rust libraries (like Hyper) but we failed for a couple years. So earlier this year we decided to make it compatible (by using llhttp to have very high coverage - at the moment 88% compatibility for node:http module) and then focus on improving performance and slowly chipping away llhttp parts while keeping compatibility.
It's so easy for others to casually dismiss how difficult of a problem it is to get this right, especially, as you say, this is happening in flight for many thousands of users. Kudos to you for being transparent and building a genuinely cool and useful platform.
> We tried to build `node:http` on top of Rust libraries (like Hyper) but we failed for a couple years.

Are you sure you "failed"? Maybe there was good enough compatibility and that wasn't the problem?

The problem sounds like a business 1 where you're after more users and you deem this "magic compatibility" is fixing it. Well maybe that's not it.

A lot of people tried Deno and even tried to build libraries for it back some years ago. What you "failed" at is building the traction, ecosystem and community support.

Compatibility doesn't buy you moat. Deno specific ecosystem, libraries and services etc do.

> what's the point of Deno?

To demonstrate how amazing bun is in comparison.

Of course the AI is not at fault, you were responsible as an engineer and you abdicated your responsibility
Sure, we also managed to close ~30 outstanding issues with this rewrite and set us up to reach ~90% node:http compatibility, so overall I consider it a success.
AI lets people be reaaaaaaally "productive" when leaning into entirely the wrong work. Deno has no future if all it wants to be is a clone of node, so it just seems to me like your work is to speed the collapse
> A "node:http" regression caused by a PR fixing many of outstanding issue. Author explains and apologizes.

> "Deno has no future"

I think there may be other things bothering you? These comments aren't really productive and discourage maintainers to even continue replying.

Disclaimer: I am a maintainer.

Oh, you bet that my goal is not to give the AI users a pat on the back. I want them to know my unfiltered contempt for their unfiltered contempt for me (and anyone like me who still works with their hands).
for the record the fact that I'm radically anti-AI also doesn't mean that I'm wrong that over the long term average it is a force that creates compounding debt and unmakes communities
> unfiltered contempt for me

bro what