> he could have easily achieved a solid living via crowdfunding, even for San Francisco standards.
That sounds completely surreal. Is Bun really used that much?
> The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it.
I was on a platform team and I had a constant backlog of bugs (introduced by others) that I was working on and the two most impactful things for preventing bugs were Typescript and Cypress (playwright-like testing before playwright).
I've dealt with many shitty code bases and the only way that worked for removing bugs was automation. It didn't matter how many bodies you threw at the problem.
> Then why are you saying you have so many annoying bugs in the Zig code? What happened to the test suite being sufficient to catch everything?
You can't use tests for trying to catch use after frees and other memory bugs for the same reason you can't use unit tests as a replacement for type checking, the combinatorial explosion of possible inputs into functions makes unit testing types across an entire project impossible.
Anyway, Jared donated $60k a year to this project and tried to resolve this in the most diplomatic way possible and still got personally attacked. The lesson from this article is don't donate to the Zig project because if you migrate away from it they will try to ruin your reputation.
edit: changed month to year
Nice writing by Andrew IMO, please don’t be discouraged by people criticizing the writing style, it is firmly on the lighter side of what I would expect. It even feels a bit passive aggressive to me so it would be better have a more direct and harsh writing style maybe?
As a side note, never trust someone saying they use fuzz testing just because they say so. Odds are they don’t even understand what fuzz testing is.
And it was glaringly obvious they don’t know how to program in this context from their complaints around memory safety. The issue should never that the code randomly segfaults, it should only be it maybe exploitable in an adversarial scenario.
For all comments that will write something like “I can’t believe how rude this is”:
No one really care about this, there are real problems in life, please get a grip, you are just being annoying
I recall an instance where he mocked the project as "Microslop" on his blog and then quietly edited the post later. That aside, the earlier rewrite from TypeScript to Go involved efforts to minimize regressions as much as possible—such as announcements to users and the community, and a phased, one-on-one migration. This project, however, is a different story. It becomes from a buggy product to an entire slop product.
>We became increasingly horrified at the programming practices we saw in Bun's codebase. Hacks on top of hacks. Abuse of assertions. Most of all, recklessly speeding past feature after feature with very little time taken for reflection and elimination of bugs and technical debt.
I'd like to know what the poor code quality in Bun looks like. Does anybody have concrete examples?
Is the bun rewrite actually done? There's no tag for the release, and as it stands robobun has almost 1.3k open PRs on the repo: https://github.com/oven-sh/bun/pulls/robobun
It doesn't look done.
And it looks like work on the rewrite began in early may: https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd573...
So... its more like a 2 month rewrite that is definitely not done yet????
The project needs an adult in the room - preferably someone less on the spectrum - who approves this content before it goes out. This reads as an incredibly butthurt, petulant rant, authored by someone deeply hurt that users are putting all the blocks into the square hole. Andrew would have been served better by a Linus-style curt takedown, rather than this drivel.
Disclaimer: I'm bullish on Rust. And I think LLMs are overhyped, and kind of overhated.
Honestly, I think it would have been better if he had done the smart thing and ignored the noise around Bun's Zig -> Rust, and focused on code.
If he was willing to ride the coattails of Zig being hyped by Bun, then he should have taken the hit when Zig and Bun parted ways.
Hell, if he is that happy that they are leaving, he shouldn't have written that he is happy. Just smile and wave...
So now Jarred wrote a very matter-of-fact post about migrating Bun to Rust, and Andrew Kelley wrote a ranty blog about Jarred sucking at Zig, and being glad he's gone.
Ex-Bun employee for transparency. I have skin in the game.
I respect andrewrk and Jarred in different ways. My understanding are that neither are media trained. Very patronizing post from andrewrk and shows his hostility towards Jarred. I mostly agree with the core meat and potatoes of his post, but the hostile tone, the snarky VC-related remarks, the fact that *most* of his comments felt like a defensive remark.
Yes -- bun has problems. Yes -- bun moves very quickly. Yes -- the 1.4 post seems quite heavily copy-written. Yes -- Jarred doesn't have a syseng background.
But god fucking damn Andrew, you have some problems too -- you have your head up your ass. Every Zig feature that people would love to have, which you personally disagree with will NEVER enter Zig. Why do I still need anonymous structures for lambdas? Sure, no closures I get, but no lambdas? My friends at Tesla tried Zig and then churned to Rust too, for the very same questionable leadership model. Zig will never be a general purpose language because the people -- who have many different generic and general purposes for a language -- simply don't get what they want. Zig is an andrewrk-purpose language at best. Is this leadership for the future of Zig?
I don't want to slander andrewrk. With the brief hiss I've provided, I think he does a more-or-less great job with Zig. It's a really small team, and they're really productive too. The ZSF is a really nice set of people too, from my brief fly-on-the wall moments with meetings with them. They care about Zig and they work really darn hard for it. I've also learned a huge amount from andrewrk, and I respect that he's an off-the-cuff guy. Surprisingly, I am too. Chances are, in his shoes, I'd probably get equally rage-baited to write a similar post.
But reflecting upon this, this is just not productive. These kind of public outlashes are not healthy for the language, don't cause good publicity, and could have been a useful reflection point for the ZSF -- not in terms of money, but in terms of what they want to do with the language. Instead of being a strawman at Jarred, it could have been:
- Bun's not the greatest code quality. (And it really isn't -- I was very stressed by this at work) - Zig doesn't aim to give you tools to manage complexity. We expect the developer to adhere to high code quality. (And this is also very true, coming from C++ -- I was also very stressed by this reality.) - The AI-generated rewrite is not a good idea for reasons XYZ (and I personally think this is true). - We are grateful for Bun being part of the ecosystem, but agree it doesn't adhere to our ethos, nor design philosophy, so it makes sense.
The discussion in the Rust circles (which I am a part of too) is completely different and so much more nuanced -- folks are talking about the code, how many unsafes there are, some of the very valid concerns, but the tone is significantly less enraged.
This is a perfectly legal, polite way to leech on top of the media attention (I mean we are all doing it), maybe throw in some spicy bits with references to some GH issues to stir Twitter up but remain polite and respectful. This was just rude for no good reason, esp. because Jarred CLEARLY was only very respectful towards ZSF.
Personally, I won't run Bun in prod, but I no longer write any Zig either. Good old node for me, and good old C, Rust and C++ too.
This is 2017 Biden vs Trump for people who know who Godbolt is
Never heard of Bun or Jarred before today I enjoyed his blog post about the migration to rust, it is an impressive feat if real ! I didnt see anything bad about Zig in the post, on the contrary it shows respect and that big projects can be done in Zig
Next, I read Andrew's post, and the thing I see is: Jarred looks like an achiever, Andrew more like a butthurt childish whiner I also can see why Jarred made the migration, it is not only technical, and it was a great call IMHO
The video he links to at the end is such a strong message, somehow able to celebrate the promise of AI while not afraid to point out whats complicated, or even fraught there. AI is, truly, a reflection of ourselves, our own hangups, prejudice, desire. Its both what draws us to it, but also inspires us to be critical. Thanks for the prescient reminder there OP.
It feels like the first half of blog post is less of "thoughts on the Bun Rust Rewrite" and more "I don't like Jarred, he's a bad programmer and manager".
Maybe I'm wrong, but it strongly feels this way. I'm not saying that Andrew is right or wrong, it's just that you could throw out most of the first half of the post and not lose anything actually on topic.
> But having graduated from the Thiel Fellowship school of thought rather than university, he was essentially groomed from a young age into uncritically embracing the Silicon Valley mindset, and he took venture capital.
> Jarred was a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show, from an employment perspective.
> Jarred was already writing slop well before he had access to LLMs
I read the post and roughly summarized it as:
1.It felt uncomfortable that Bun was presented as a representative example of Zig. From the internal Zig perspective, it looked more like a bad example of how to use Zig.
2.It felt uncomfortable that they spoke as if Rust prevents things that could actually be handled by Zig's style guide.
3.I(OP,andrewkelly) don't think badly of Jarred as a person, but after signing a contract with VC, the management side has been poor.
4.The Bun documentation looked like marketing.
5.Bad contributions driven by AI came through indirect promotion of Bun, which attracted interest from people after it was acquired by Antropic.
I understand that it's burdensome to see Bun as Zig's representative success story, and I get the wish not to see Rust rewrites through a lens of language superiority. But on the flip side, I'm not sure I would have ever learned about Zig if not for Bun.
While the criticism is valid, I also understand Bun's position. After all, Antropic's acquisition of Bun was ultimately about showing that even a 'new language' can be used effectively with AI, and that's precisely where the friction arose.
I think the refusal to accept AI from a purely human programmer perspective is a matter of personal values, and I find the Zig team admirable on a human level. (Though I'm an active proponent of AI, so my view differs.)
Both sides have valid points, but sometimes I wish someone would turn the emotional and political dynamics of open source into a novel. I think it would be fascinating
I desperately hope that the Andrew Kelley style of software engineering will survive all of this; that users will continue to value quality and not be content with slop. This, of course, presumes that products built fully by agents will produce sub-par quality in the future. If they will be able to manage to glue all of this slop together without the project collapsing in on itself, none of this will matter. I just hope that this isn't the future of the industry.
Such a refreshing take after all the marketing nonsense from Bun. Zig is a glimmer of hope in a world of slop.
> We became increasingly horrified at the programming practices we saw in Bun's codebase. Hacks on top of hacks. > Jarred was already writing slop well before he had access to LLMs
Ufff, the creator of zig saying that the biggest zig project is slop was definitly not on my bingo card.
Its sad to see that on of the biggest projects was more or less badly written zig code. On that note, I wonder which big project have good zig code?
Andrew sounds whiney. His reasoning seems sound until he begins to attribute Bun for an uptick in drive-by slop contributions.
The man may need some time to decompress, away from social media.
So bun went from bad Zig code to absolute slop Rust code?
I notice something more interesting. This post shows Andrew to not only personally criticise Ben but also clearly shows an ideological stance against AI. I can see it from multiple angles - refusing AI PR's, refusing Anthropic's donation and multiple other things.
Either this ideology helps Zig position itself as a hand crafted language. Or this ideology is self defeating.
While I agree that the Zig code in Bun could be better, and that the Silicon Valley pressure to move fast and break things prevented a lot of suggested improvements, this feels like the same argument as people who write C or C++ where people think they wouldn’t make mistakes.
For example this section
> We've been trying to warn you about your comptime abuse for years.
You could replace comptime with templates in C++ and it would be the same story. People will abuse features you put in the language. Is C++ a good language that people are just using wrong? According to Bjarne Stroustrup yes, and the C++ core guidelines fixes those issues, but a lot of people seem to disagree. Don't believe me here is an interview where he talks about memory safety in C++? ^1
> Ryan: One thing that I think C++ is uh infamous for is kind of like memory safety issues or kind of foot guns that exist there.
> Bjarne: I'm so tired of that. Um I haven't had those problems for years. Um, and somebody did a a study of the obvious problems with buffer overflows and um people hacking in using that kind of stuff and uh almost all of the uh these cases when people writing C style code or in C and uh Herb Server has a a talk with with actual numbers and they they are quite significant. It's it's sort of that kind of problems more than 90% are for people that don't write modern C++. They they use raw pointers to pass things around without um the number of elements. No fat pointers, no spans. um you you have them in C++. You can use them. You can use uh vectors. We have hardened libraries. Everybody has hardened libraries that that does the runtime checking. Uh Apple has it. Google has it. Microsoft has it. It's just not standard till now. C++ 26 has a hardened option that are standard. uh and the work I'm doing on profiles will give you a way of guaranteeing that you don't do the stupid things. Um so anyway, uh fundamentally theoretically the problem was solved many years ago and people just do what they've always done and get the problems they've always had. And uh that makes me sad and uh it's one of the things that makes me work on uh coding guidelines and on enforced profiles and on education. I mean education is one way to solve the problem. Is there a way to get the compiler to just prevent people from doing all those risky things? And is that enabled by default in modern C++ today? No, but it should be. I'm proposing that for C++ 29. Uh the simpler versions of that should have been in in in uh C++ 26, but there are still a lot of people even in the C++ standards committee that are very devoted to uh their old code and their old ways of doing things. Um there's people who says you should only standardize what is common in industry. But when the bugs are common in industry, you should do something else.
Is this going to be Zig's answers to real issues that people have in the real world? I'd argue that's not good enough for a modern systems programming language.
> We became increasingly horrified at the programming practices we saw in Bun's codebase. Hacks on top of hacks. Abuse of assertions. Most of all, recklessly speeding past feature after feature with very little time taken for reflection and elimination of bugs and technical debt.
The vast majority of software is written by businesses, who have to cater to the lowest common denominator in their code base, including slop programmers, pre or post llm. They are not incentivized to go slower. We will never see a mass adoption of Tiger Style programming (though I would be happy to be proven wrong). That is the reality of what we need programming languages to help with in 2026. I've never met a professional programmer that has not seen or said the same thing about a code base that they've worked on.
New programming languages need to contend with that reality if they want to be adopted en masse. If not they are doomed to not be adopted (which is okay I've created many programming languages that are just for me). But if a programming language in never adopted then the supposed benefits or improvements of the language never trickle down to us the users of the software, so they just remain interesting ideas (which again is okay).
> This attention could have been harnessed in a few different ways. For example, he could have easily achieved a solid living via crowdfunding, even for San Francisco standards.
Andrew kelley runs a tight ship, and his foundation does not need a lot of money to keep going, but he has talked about how working on all the organizational transparency is not his favorite part of the project, and I can see why a lot of young programmers wouldn’t want to go that way.
Now let me be clear I actually like Zig, and have promoted it on Hacker News before, and written some code myself. I actual uses Zigcc in one of my projects because it makes my life easier. I genuinely love the tooling of Zig, and I feel like the language respects my time. I want the language to succeed
I also think that Andrew Kelley is a principled man with good engineering sense, and has turned down opportunities that would have made him a lot more money, were he to violate his own principles. That is admirable, and he has demonstrated it on so many occasions that it is currently not a question to me. What I would like to see, and what Andrew has said Zig focuses is how Zig can improve program correctness even more, without requiring me, or my coworkers to be a 10x programmer
This is quite an interesting read from Andrew's perspective. But one line tells me everything I needed to know.
> The blog post is expertly written. It's almost like the marketing department of a trillion dollar company has a lot of money riding on this article.
Even Andrew knew that this was going to be Anthropic's marketing opportunity for AI to rewrite Bun from Zig into Rust. This post from Jarred says it all. [0] If you have access to hundreds of billions worth of resources (infinite tokens and compute), they don't care what others think and some relationships are just cheap to discard.
Like I said before in [1] and [2], Bun (now Anthropic) does not care about you. They did this to market the capabilities of their AI models and this rewrite was an example of that in broad daylight. Even if Zig allowed AI generated contributions, this move was going to happen anyway.
I cannot believe that many commenters in [0] at the time did not see that this rewrite was eventually going to happen.
[0] https://news.ycombinator.com/item?id=48019226
[flagged]
[dead]
[dead]
[dead]
> The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it.
Why don't YOU spend the engineering resources to add RAII and a borrow checker instead of blaming your users?
Why do I feel like reading the post of someone jealous or with low self esteem issues? Zig was not a good fit so why does it have to be a personal attack on the Bun maintainer over his life choices and his management decisions? Whatever beef you have with someone it should not be « zig is for elite and you are just an evil corporate maintainer because you are holding it wrong »