Skip to content
HN On Hacker News ↗

Zig Creator Calls Spade a Spade, Anthropic Blows Smoke

▲ 1554 points • 785 comments • by crowdhailer • 4mo ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 5 of 5
SEGMENTS · AI 0 of 5
WORD COUNT 1,939
PEAK AI % 0% · §5
Analyzed
Jul 13
backend: pangram/v3.3
Segments scanned
5 windows
avg 388 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,939 words · 5 segments analyzed

Human AI-generated
§1 Human · 0%

I harass the sea with my tiny boat and am called a pirate, you do it with a great fleet and are called a king.

Anthropic is actively campaigning to end software engineering. They need you to believe they can do that. Well, maybe it’s not you that they need to convince. Maybe it’s your C-Suite, various world leaders, or the manager of your retirement fund. They’ve raised $132 billion in investment, and are approaching an IPO valued over $1 trillion. Since they cannot show profitability, this depends on selling their hypothetical future impact. In literary terms, Anthropic is an unreliable narrator. One of their key narratives is: Coding is going away, then the rest of software engineering, and eventually most other human labor. This kind of money behind this kind of story has an impact, regardless of how true we think the story is. People will make architecture, product, and staffing decisions based on these events. Many of those decisions will be based on fear - fear of layoffs, rapture-esk warnings of being “Left Behind”, Doom Trolling, etc… To make good decisions we need to think clearly, which is hard right now. Put on your skeptical hat. Views are my own. I have no history with Zig. I’ve never spoken to Andrew Kelley, but found his recent JetBrains interview a great watch. My interest here is in public literacy about AI in software. That’s been my career focus now for 3 years, along with improving the technology itself. During half of that time I was Chief Architect of a coding agent startup - both a customer of Anthropic’s models and competitor to their agent Claude Code. My current project is The Coding Agency. So where were we? This week, Anthropic / Bun put out their explanation of the decision to port Bun from Zig to Rust. This explanation came two months after merging the migration to the mainline. Explaining the direction beforehand would have been more traditional in an infrastructure project like this, but meanwhile the delay conveniently allowed the story to be carried by sexy headlines like The Register’s Anthropic’s Bun Rust rewrite merged at speed of AI. Much invest. Very wow. Zig’s creator Andrew Kelley has now put out a response with his own thoughts. It’s blunt, to an unusual degree.

§2 Human · 0%

That has questionable optics. As a general rule, you would not want to worry that when you switch programming languages you will wake up the next morning to the old language’s leader unloading on your personal flaws. As Dax hilariously put it:

guys we have a pretty substantial opensource zig codebase and i’m terrified he’s gonna look at it

Still, as I read Andrew’s piece I found myself cheering out loud. I may have briefly jumped around the room. Some called his take a “meltdown”, all I can say is he’s gained a new fan today. Sometimes things need to be called out. What is model behavior? On my best days I’d aspire to something like Buddhist right speech, a high standard that everything we say should meet all five of these criteria.

Is it true? Is it helpful? Is it timely? Is it kind? Is it from kindness?

We’re breaking decorum a little, straying into “true, but unkind” territory. I’m defending someone’s choice to do that. I don’t do that lightly, and I hope it’s helpful. Background Just to catch you up…

Bun is a TypeScript runtime, like a faster NodeJS. Zig is a systems programming language, like a modern C. Bun was written in Zig until recently - one of the largest Zig codebases. Bun claims near 100% AI contributions. Zig allows 0% AI contributions. Bun was acquired by Anthropic, a leading AI model lab. Bun’s founder experimented with a massive agentic rewrite from Zig to unsafe Rust. That experiment was merged days later and is now the official version.

This is situation is controversial on a few fronts, though apparently no one involved actually wants Bun to stay in Zig. The drama lives purely in the meta-discussion. The migration process itself is pretty interesting, I would consider doing something similar in the right situation. Who to believe When people choose between Zig and Rust for their projects, they will naturally see the Bun situation as a data-point. That fact that one of the biggest Zig users wound up reversing the decision feels relevant, regardless of the reasons. People will try to understand what happened, and decide which is more true:

Anthropic/Bun story: Bun tried everything reasonable, and was still overwhelmed by memory bugs because Zig wasn’t up to the task.

§3 Human · 0%

Andrew’s story: The Bun code is a mess because of their engineering decisions, including overusing AI agents to write and review everything.

I’d lean more toward the latter, but I suspect the dominant factor is more boring:

Ray’s story: Faced with a legitimate challenge of memory bugs, there were several viable options. Management eagerly approved the Rust rewrite option because it was a great marketing opportunity to showcase their new Fable model, Anthropic already uses Rust, and Zig is openly against using Anthropic’s products.

That makes fine business sense, it just isn’t a marketing story. The marketing needed to focus on how their AI was powerful enough to do this rewrite (even though it was not powerful enough to catch a use-after-free). For better or worse, this baggage is now top-of-mind in the Rust vs Zig question. The situation tends to pit Jarred’s judgement against Andrew’s in the eye’s of the community. Any face-saving exaggeration spoken through Anthropic’s megaphone could unintentionally affect Zig’s reputation. I can understand why rather than leave well enough alone, Andrew would decide to… add some context. Is this a smear? From my perspective, Anthropic is the party we need to hold accountable here. That’s what this is all about. Bun founder Jarred Sumner is getting caught in the crossfire in a sense. So is Zig. It would be nice if this could be discussed strictly on the technical points, and we’ll get to them. However, I don’t think Anthropic is making a technical argument, they are dealing in spectacle. Anthropic is using Jarred’s credibility to help sell their narrative. In responding to that, we’re commenting on his credibility. That’s messy. I don’t love it. Still, if reporting the things that someone says and does comes off as a smear, then maybe that behavior was part of the problem too. The meat grinder My first impression of the Bun project was the 2022 announcement, including this warning to recruits.

Oven is going to be a grind, especially the first nine months or so. If work-life balance means a lot of time spent not working, it’s probably not a good fit.

When I see a statement like that from a prospective manager, it says a number of things, not the least of which is “this person has no idea what they are doing”.

§4 Human · 0%

A lot of reasonably good coders have never seen an example of a good manager, and have all kinds of weird ideas about what management is. Running at “crunch time” all the time is bad for health and bad for productivity. That is a robustly established fact about knowledge work. For some references, see the Human Factors section of Hillel’s Empirical Software Engineering. My advice? Don’t work for people that brag about 90 hour weeks. Work for people who will defend your ability to sleep at night. In Andrew’s piece, he summarizes what he’s heard from the grapevine of the Bun team’s experience:

Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show

I mean… of course it was. The hearsay is essentially repeating what was announced publicly. Their job listing might as well have said, “now seeking applicants for total shit show”. It’s bad form for us to say this out loud. We’re supposed to let the Tech Bros go on about how cutting corners is some genius productivity hack. Then the people that listen to them can eventually call us in to fix the results. It would be a great arrangement if I cared less about outcomes. It’s quite lucrative. FWIW, I’ve used Bun a few times and liked it well enough. Cool tech is often produced in spite of bad work environments. I’m not the one saying that their environment resulted in a buggy unmaintainable mess, Bun is the one saying that. Say something nice The piece about the migration process is very cool, with details that are reusable. No complaints, I think that’s the real contribution here. I particularly like the honesty in explaining that this was a port to unsafe Rust, allowing a literal file-by-file migration to minimize risk, paving the way for redesign in future steps. That’s a sensible move explained well. There’s some truth to the idea that language choice is becoming more reversible. This method will take it’s place among other types of rewrite automation with pros and cons. These techniques can be combined and further hardened with Formal Methods. Darpa’s TRACTOR (Translating All C to Rust) research program published a report this year which should cover the state of the art. My favorite book on software modernization projects is Kill It With Fire by Marianne Bellotti.

§5 Human · 0%

As agents allow us more moves we can make with old code, we still need good judgement and communication in deciding where to go. Let’s talk about that next. The rewrite rationale is fluff These are the basic ingredients of explaining a technical decision:

What is the motivation? What options did you consider? What are the pros and cons?

Here’s a great example by Richard Feldman on his decision to move the Roc compiler from Rust to Zig. I was initially shocked by that move (I’m somewhat fanatical about language safety), but ultimately his points made sense and this started my curiosity about Zig. When the Bun rewrite was merged, I’d hoped to see a similar treatment. This is what we got instead, two months late.

✅ What is the motivation? ⚠ What options did you consider? 🚫 What are the pros and cons?

For the aspiring tech leads out there: When you skimp on these ingredients, especially the “pros and cons”, you risk giving the impression that you approached the problem with one answer already in mind and are giving it a post-hoc justification. Maybe you have reasons that you aren’t saying. It feels dishonest. All pros no cons Rather than a real tradeoff comparison, we get a “Bun is better in Rust” section covering only upsides. A change like this always has trade-offs, an obvious one would be build time. Typically when you use Rust for a large codebase, you are buying safety and paying in slower compilation. There’s no shame in that, it can be a winning bargain. In that past, this factor was important enough to Bun that they forked the Zig compiler to try and improve it. If we’re right that the Rust port increased build time for contributors, why not disclose that? It comes off as more credible to own the impact and the priorities that make it right move overall. They also seem to be padding the list by mixing in other improvements they’ve made after the rewrite that aren’t really related to it. They didn’t try a style guide? Recall that the motivation was memory bugs. Definitely not Bun’s only source of bugs but a frequent one, causing four fix commits per week by my count. Painful. Theoretically, every memory bug represents a violation of some convention - an expectation of how this kind of object should be dealt with.