My thoughts on the Bun Rust rewrite
andrewkelley.me
andrewkelley.me
I know very little about Jared but his article yesterday, which I read, seemed appreciative of Zig. I now learn he's donated significant chunks of money to them.
This entire article is publicly and personally attacking him for choosing a different product.
It's insane to me that Andrew thinks this post will somehow exonerate Zig when it really just makes them look childish. Or maybe he doesn't care, and just wants to attack Jarred?
My reflection comes after reading Jarred's post yesterday, which I found interesting, and then Andrew's today.
I just pasted this article into an LLM to understand the tone and the summary is:
> The overall tone is deeply personal, cathartic, biting, and polemical, with flashes of humor and a deliberate attempt to soften the ending.
The author’s tone in this piece can be described as brutally candid, deeply relieved, and unapologetically sarcastic.
very different from "The overall tone is deeply personal, cathartic, biting, and polemical, with flashes of humor and a deliberate attempt to soften the ending."I tell them to try, and they laugh at me as they roll their eyes and waffle on about 'tricking' the AI like its some kind of hacking.
I don't really agree with using LLMs to do this but it correctly identified the attempt to soften the ending, which is to my mind significant in the whole piece; this person wants to repeat and frame unkind things he's heard, say unkind things, and then assert that he wasn't doing either.
I'm not snarking, this is a problem affecting 30% or more of the population here in the states, and it's getting worse because of tools like AI. I'm not judging you, I don't think you are bad or deficient people, but this externalsing of comprehension and trust is self-harm.
Worse, it will lead you astray in ways that you won't tie back to this core problem.
To use an LLM safely you must have the discernment to understand when it has fallen into sycophancy, folly, or madness.
Conventions are still being made, and I think this use might end up being acceptable.
myself i found the article contained a bit to much personal criticism. the kind that eg. on hackernews would not be welcome. so i guess i mostly agree with the LLM assessment.
That's your brain's job, don't outsource it.
It's not a happy breakup, but not a super sad one either.
I know nothing about the drama here other than what's in the blog post, but these feel more like unnecessarily public personal attacks which don't really reflect well:
- a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show, from an employment perspective
- already writing slop well before he had access to LLMs
- their vague "sell some cloud something" business plan was a farce
was the cherry on top.
This is a blog post: it's purely textual, language is the only thing it uses to convey meaning. The words chosen to do so reflect what the author thinks.
> where I'm from people just use the words they need to to communicate what they're trying to say
Yes. What ark is trying to say, via the words he chose, is what's earning him the description of "unprofessional".
He could say every factual thing in the blog post without being unprofessional, he just chose not to.
I'm sure Andrew could've switched out every word in the post and still conveyed the same meaning, and perhaps offended the peanut gallery's sensibilities a little less, but why should he?
In the example I was originally replying to, suppose Andrew had instead said "Jarred showed poorer than desired management abilities" and "Employees disliked working at Oven". Approximately the same message is communicated, a little watered-down maybe, but who's gaining from this tone-policing? Certainly not us, the readers. And I don't see how this affects how "professional" this is, unless "professional" is just performative nonsense and nothing to do with the substance of the text?
It changes my opinion of whether I trust ark to actually be right, or whether he has (and will continue to) let his emotions get in the way. The particular quote I noted was
> We probably tried to tell you to try enabling it and you didn't listen. We have good advice, damn it!
He wanted to say this, more than he wanted to know if he was right. It reduces my trust in his judgement.
I don't know what you're getting at with your final paragraph, I feel like he's in a pretty good position to assert something he probably did or did not do.
This post devolves into a personal attack one sentence in. There was no reason to go into Jared's life at all to begin with. The entire post doesn't need to exist at all if you're confident that Bun leaving will have zero or even positive impact. Why turn an already negative event of a slop rewrite into drama? It's petty and immature.
Quoting:
"He moved fast and tried a lot of different stuff, jumping head first into problems that he was not yet equipped to solve, leading to mediocre outcomes in terms of engineering, but learning a whole heck of a lot in the process. I see it as quite a healthy attitude, particularly for young people and students. This is the best way to level up and learn new things."
I don't know, maybe you just don't understand what he's saying here? Or rather, are applying some sort of a negative spin to what is a factual analysis of a valid approach to doing something?
The only connection it has is as a segue into calling Jarred a terrible manager here:
> It was at this point - when he suddenly became a manager - that this "beginner energy" started to hit differently for me.
Note how "beginner energy" is considered good in the first paragraph, but suddenly terrible when applied to a different thing here. Terrible work culture aside, and the fact that it seemingly worked out for those who joined aside, Jarred would obviously have beginner energy in management as well considering he's not done it before. Why is it suddenly bad here?
Honest question, is there any record of Andrew actually saying Jarred had "beginner energy," or was this invented for the post as well?
Also I learned nothing about Jarred's life from this post, so I don't understand that point. That he lives or lived in San Francisco I guess, and didn't go to university?
Again, this post never needed to say anything about Jared. It looks weird to pull him in in literally the first sentence. It really shows what you're actually writing about.
Should Jarred's post have mentioned how Andrew kept bikeshedding Bun code style and how he always felt superior about others?
Nobody is conflating anything, you're just misinterpreting the same words with different meanings.
A professional criticism can, in fact, be unprofessional, and even a personal attack. These are not mutually exclusive.
> Those are not personal criticisms
You're using "personal" to mean "regarding non-professional matters", whereas others are using "personal" to mean "regarding the individual person themselves".
> those are all professional criticisms
You're using "professional" to mean "regarding the profession" whereas others are using to mean... you know, the opposite of "unprofessional".
In my comment I was using the former.
I'm not really sure what you're on about me "misinterpreting" something. The author of the article claimed to not have personal criticisms, and I was pointing out that there's a standard interpretation of those words that is true.
Following your logic, we cannot critique anyone in particular ever. How absurd!
> You're using "professional" to mean "regarding the profession" whereas others are using to mean... you know, the opposite of "unprofessional".
At the end of the day, it is the same thing. Person does what is their job according to common standards.
Andrew runs a software foundation, and it is his job to make sure that behavior of one of related projects does not disrupt the stream of all donations or bury his project under a pile of slop submissions. Highlighting the technical dysfunctions of the other project is an effective way to show the differences between the two. Do you have a suggestion that would be just as effective, while being more "professional"?
As fellow professionals in this field, shall we engage in this very professional debate about Jarred's honesty as a moral human being?
I can see why that might feel like an existential attack on Zig even if starts with a bit about how great Zig is.
So pointing out that the zig code was full of bugs because the author was doing weird stuff and ignoring advice, couldn't hire/retain any good Zig devs because he mismanaged people and is the kind of guy to do a full rewrite because that's more interesting than fixing bugs or learning the old tools feels like stuff he'd want out there in the public domain.
All of what you say may be true, but the point remains: the Bun project lead can do whatever the hell he wants with his own project. There is no objectively "right" path here, in a moral sense.
People are allowed to rewrite their own software whenever they want to for whatever reasons they want, people are allowed to be "stinky managers" (Andrew's words), people are allowed to only hire people who want to work 7 days a week, people are allowed to only work on things that interest them, people are allowed to write crappy, hacky code in their project.
What business is it of Zig's that Jarred is (apparently, secondhand) a "stinky manager"? What business is it of Zig's that Jarred wants to run his own company the way he wants to?
Going after the guy's character after he decided he wanted to go a different direction is _incredibly_ petty.
It's so easy to deal with this like a professional: "Zig and Bun are no longer affiliated. I thank Jarred for his contributions to Zig over the years and wish him and the Bun project the best." or some variant of that. Bland and corporate, but who cares? It's done. Move on. Save the grousing for the DMs, keep on attracting new contributors, avoid alienating bystanders/potential contributors, build your project.
This post does nothing to burnish the reputation of the Zig project or its leadership, and in fact has the opposite effect. The message from the top is apparently "it's fine to be petty and vindictive".
Zig is a relatively young language with a small community, and Oven/Bun is one of few places that someone could previously have written Zig code professionally. It's therefore Zig's business to make sure that either it's a good place to refer community members for work, or that they don't explicitly encourage people to work there. Likewise, as one of the highest-profile Zig projects, the community's leaders were understandably invested in making sure it represented the language well.
I feel like I am exactly the target audience for this post: someone who uses Zig regularly, but hasn't touched Bun, despite being aware of it. While I would have proceeded differently than Andrew Kelley here in terms of framing and phrasing (and leaving out some parts entirely), I do think reading this gave me new information about Zig's relationship to Bun. The specific dry, professional post you suggest wouldn't have given me any new information at all.
I think this is the exact point that the article was getting at in the last section. It is okay to not be very good at software engineering or people management! It is useful to know these things if you want to understand why the Bun project made specific technical decisions, but they don't make the people involved "bad people" in a more nebulous moral sense.
The lead developer of Zig is discussing these factors because the main technical decision was moving away from Zig.
The original post explicitly praised Zig, and seemed to be arguing more that Zig was a great tool for the initial version of Bun, but that Rust was better for their needs as Bun grew to a larger project with a larger contribution team.
That seems completely in line with what Zig claims its strengths are. Zig's response to "but memory bugs" has basically always been "Zig is not a language for a big tumultuous project that you're going to throw interns at."
If you didn't catch that then I'm not sure we read the same article. I haven't gone past basic tutorials in either language and I was really starting to believe that zig must be worse than C or C++! After thinking about it for a minute I wondered if maybe the developer was actually, well, not very good. Andrew's blog post did a lot to explain to me the background behind this all. I really appreciated it.
"already writing slop well before he had access to LLMs" and maybe "low empathy".
Just because the other bits are negative and not so nice pieces of feedback one wouldn't want to hear doesn't necessarily make them attacks.
An attack is often far more personal (making fun of you for aspects of your existence you can't control, touching personal subjects like families, etc). idk, maybe I'm just not soaked enough in the goo goo baby corporate saccharine LLM speak or something but this post felt tame to me, if a bit cheeky. Nothing but a thumb jab at worst.
This is such a bad look and it's also flatly self-contradictory. He spends time in his conclusion asserting he doesn't have any personal criticisms of Jarred but he's fully happy to claim, reframe and repeat everyone else's, even criticisms he evidently heard in private.
You can also see that it was incompletely rewritten from a pure, personalised and personally-directed rant: "I noticed that you…" does not belong with the rest of the text.
Whatever the merits of Claude-driven rewrites (I suspect few, long-term), the article he is responding to has little to none of the vituperative quality of his own.
I think if it needed a response, and I was this angry, I would have written this whole post as a draft, filed it away in Apple Notes, and then posted "I have, yes, seen the article on the Bun blog; you don't need to send me it anymore! I will respond to parts of it in the future as and when they are particularly relevant."
Writing the response post can be valuable as emotional release or exploration. Posting it in this sprawling, mean form was dumb.
Just a complete lack of emotional intelligence. You do not treat people like this.
It's dismaying how many devs seem unable to distinguish poor project leadership/communication from being a bold truth-teller "telling it like it is".
This is a major project lead demonstrating that if things don't go well between him and you, he's going to retcon your whole relationship, collect gossip about your company and management style, chastise you for your life choices (taking venture capital?), talk shit about your code and your project, question your moral choices, and then publish all of it.
This insistence on "being right" is really caustic. It's just ugly.
Thank you for putting my thoughts in words I can never string together so well.
I too would just stash the letter in my ZFS dropbox and never let it see the light of day again.
The letter reads like a husband who was just served a divorce notice from his wife. The man is angry, and wants everyone to know that he is not angry, and he is very much not bothered by the whole affair even though he has misgivings since the first day of marriage.
The letter would be much more convincing if it has any technical rebuttal against the decision.
Andrew was still way out of line in making many of the points included in this post, you don't have to be pro-AI to feel that way.
Would you like to discuss that point as a fellow professional in the field?
The big thing though is, you get to the end of it and have to ask: why did this need to be written at all?
"It's almost like the marketing department of a trillion dollar company has a lot of money riding on this article."
He does get that Anthropic is Don Draper in the elevator meme here, right?
Draper sabotages Ginsburg because he's threatened by him. In the elevator Don is masking his insecurities, as he deeply fears Ginsburg's talent. His own creativity, and confidence, has been crumbling. It's all ego.
Ginsburg's tagline wins Jaguar! (Joan clears an obstacle to them winning it, but they still had to win it). It's the most important account in the history of SCDP. Don doesn't care; he's overjoyed just to have a good tag.
And then, of course, the insecure Draper interpretation makes absolutely no sense here --- there's no conceivable universe where Zig is at the top of Anthropic's mind right now. Which was the only point to bringing up the meme in the first place!
Time for a rewatch I suppose.
Take away any questions of ego or rivalry: Don is obsessed with the youth of his era. Over and over again we see him trying to pick the lock of understanding how they see the world, just as his own youth is departing.
He absolutely thinks about Ginsberg—deeply—even if only from an anthropological perspective.
Every part of this saga has gotten an exceptional amount of attention on HN. HN is ostensibly filled with many people starting software-related companies, ie potential Anthropic customers.
the "largest real-world demonstration of Claude's capabilities" is sitting in local repos, built with the daily quota leftovers from corpo accounts
I also don't think Andrew can claim at the end "I actually don't have any personal criticisms of Jarred" when the post includes the sentence "Jarred was already writing slop well before he had access to LLMs".
So, yes, I find that line laughably disingenuous.
The article seems to be happy about the switch to Rust, that point is re-iterated multiple times in the article, and seemingly they were both awaiting Bun moving away from Zig and wishing for it.
I just return to them the kindness they show me when they say, "You made this?? I made this!!"
But separately from that, I think it's a bit unfair to talk about the people associated with it in such a dismissive way.
In reality, humans aren't purely rational beings, and I can understand why the Zig philosophy and the Bun manager who joined the AI side might not have looked good from that perspective. But I think that's a separate issue from the emotions involved.
When he made it his job to sell that narrative, he declared war on me. It should not surprise him or anyone else that I am going to take the war right back to his doorstep.
What I understand rationally is the claim that AI is destroying your garden and community. It's an undeniable fact that intellectual property and the associated disruption are happening. That's simply true.
But what I find hard to agree with emotionally is that personal attacks aren't always justified just because of that. I've also been affected by AI. I had to create a new homepage because the traffic to my technical blog dropped due to AI. Of course, there are also benefits. As a non-native English speaker, it opened up a new path for me to access good programming resources, which I couldn't easily get before. So I have both affection and resentment.
Still, I understand your feelings. Because for you, the emotional anger of having something you built destroyed without any compensation is real. Our situations are different.
That said, I don't think that necessarily justifies attacking individuals.
People often think of blogs and homepages as places to write 'personal stories.' But once they're made public, they carry responsibility. And Andrew Kelly is a public figure—his words spread easily. So there needs to be a certain level of responsibility when writing.
In any case, I respect your perspective
You see how many times people can tell YOU that you are worthless garbage before you start thinking, "I'm going to punch back at the people who punch me." 20? 50? 100 times you get punched in the face before you start to consider self-defense? Cause I've read that piss-poor message 50 times: "you will be replaced."
Your skills and knowledge aren't your entire worth. I think you're a perfectly fine person. They just said cruel things that hurt you. Don't let that define you.
I actually think if people become mindless AI imitators, creative people like you will become even more competitive. Of course, I think you can still be creative even while using AI, but the kind of creativity we're talking about is just different.
Why bother fighting them? They're just people who are anxious themselves. I don't think you need to waste your energy defending yourself over such a pointless issue.
The claim that you're useless trash just because you don't use AI is wrong. AI is just one kind of workflow. You and they just didn't click.
As for people calling me useless trash, well, I hear that all the time. It's part of the freelancer life. But even so, that's just their opinion. I don't think of myself that way.
It's just that our environment makes things painfully difficult for us, my friend.
I'm sorry you had to go through those cruel messages. But I don't think they define you. You're a perfectly capable person, capable of intelligent conversation. You just chose not to adopt one particular workflow. That's not your problem.
If we keep talking, we might just end up hurting each other's feelings, so let's stop here and take a deep breath. Have a good day
Most likely too late for edit, but Jarred is who work for Anthropic, not Andrew.
It's really sad to see my fellow FOSS enthusiasts adopt this very strange vocabulary from the anti-pirate people. No, no one has stolen anything, the knowledge is still out there. No, you cannot even "shameless copy" from something that is asking the world to copy from it. Literally the point for me and others is that what we put out can be used by anyone for anything, that's why we use FOSS licenses in the first place.
I think how deeply you care about this and the way you castigate other people is unhealthy and it is critical for your own well-being that you come to terms with it.
As Lin-Manuel Hamilton said, "God help and forgive me; I want to build something that's gonna outlive me."
But of the points is that no-one owes anyone anything, if you use my code I don't owe you support or anything else and by you using it, you owe me nothing either, no money, effort or anything else. Sure, if the maintainer want, it's nice when people fix the issues for the maintainer, as long as they want it, or that people and companies donate when maintainer set that up, but in no way should that be an expectation just because the creator slapped a FOSS license on what they made public. Don't want people to (mis)use, criticize, mangle, transform or copy what you've created? Don't use those licenses then.
This whole "no warranties" and its related intentions goes both ways, intentionally.
yes you can if you do not honor the license that the original was released under.
that's why we use FOSS licenses in the first place
some FOSS licenses are intended to insure that the code remains open even after modification. that's used by anyone for anything under the same license.
My take away was closer to "This is what we tried, this is the sentiment they gave back, then this is what happened, here's what I think of Jarred's way of working, glad they now use Rust, good riddance", but then I also apply this slightly unholy strategy of applying charitable reading when reading personal blog posts, and I worship neither of these people, so might be why we got slightly different takeaways.
No, not really. I know nothing about either of the people involved, and after reading the article I came away with an extremely negative opinion of the author. They are using their position as the leader of a language to attack and denigrate someone who used that language for years, donated to it, and eventually decided to move on.
Antirez made a post equivalent to: you'd be a fool not to use AI to increase test coverage.
Zig on the other hand has embarrassingly low test coverage given its adoption and time in development.
Their stance on AI is completely childish. They could benefit massively from it, yet refuse to even consider any potential usage.
It's one thing to try to stop PR spam. It's another thing to tie your hands behind your back and not even use it internally for the lowest hanging fruit where it could have major benefits.
They could use AI to triage potential real bugs from PR spam... but instead they just let real bugs go unnoticed for longer than need be because they won't even use AI to help triage...
From a PR perspective there’s a lot to gain in the short term by picking the “anti-AI” lane. And you can always change your mind later.
I find the anti crowd increasingly to be hateful and close-minded and it is disappointing because I have a lot of friends in it. There's a moral puritanism which gives people feelings that they are on the "right" side and thus any level of rudeness or hatred is justified and it only hurts their side.
But from a purely Machiavellian perspective I don’t see a lot of downside in courting this group in the short term.
The takes I have seen about the "ethical thickets" all call out things that could have concerned the authors before LLMs, but which apparently did not.
In the short term, you can address the anti-AI market.
This has happened thousands of times in human history.
The thing about laggards is their money spends the same as everyone else’s.
And? Why would low test coverage matter. It’s not an indication of project quality nor does a high coverage mean an absence of bugs or errors.
I don't get mad at people for standing up for their morals, I get mad when they have none. AI is an a-moral tech, and Bun is using it in an a-moral way: for team Bun the ends justify any means.
I'm on team Zig!
Criticize the project and methodology, not the person.
This behaviour by the commentariat here on HN seems more like a reflexive revulsion at the discovering of humans with ideals other than money on this globe.
This of course leads to strong internal conflict - it becomes harder to accept yourself not having any morals when confronted by someone pointing it out. Easily resolved by the ego by disparaging the boss of zed instead.
> not having any morals
You don't agree with someone so you claim they have no morals. I don't have words for how stupid this is that anyone can so casually dehumanize someone over something so trivial.
The article provides good background into how it got to this point - and it fits well with doing an opportunistic AI rewrite after being acquired by an AI provider.
Why do devs believe being rude is somehow a sign of honesty? They are orthogonal. This post needed none of the mean-spirited attacks that it contained to make its points. It is only hurt by the attacks as seen by the focus on "tone" throughout these comments.
I can buy that it can be good corporate politics to not upset the superficial crowd that will immediately lash out on tone, but I will not judge someone rightfully reacting on bad behavior that they've been on the receiving end of.
Also, I didn't say being rude is a sign of honesty, that's you extrapolating.
Incredible display of bad faith discussion. You should be ashamed.
The history of humanity is full of biting polemics and attacks on the character of others, just read Voltaire. Sometimes, attacks are deserved.
Yes, a world in which everyone is professional and "plays nice" sounds great but it also quickly becomes a mechanism for suppression of the truth. Not the situation here, but "decorum" expectations are sometimes precisely one of the functions that help bad people maintain power (consider how difficult it can be for minorities or marginalized people to speak truthfully about what's happened to them). Sometimes one person being blunt, honest, and a little rude is a necessary step in clearing ground for others to be more upfront about the bad behavior of individuals.
I don't interact with Zig or Bun, but I certainly haven't been enticed to try Zig after this.
> Using phrases like "stinky manager"
I would've used a worse adjective given the WLB tweet etc. Is it just because stinky itself has a childish tone to it rather than something like shitty? Or do one need to reach to somewhat open-ended terms like "questionable" to be palatable?
> implying by not going to university he was too stupid to think critically about his path forward
I read that as emphasizing the Thiel Fellowship part, not the lack of university education.
> I don't interact with Zig or Bun, but I certainly haven't been enticed to try Zig after this.
I'm so tired of "I've never played [game] & have never had any intention to play [game] whatsoever, but given [newfound-grievance] I wont buy it!"-style dismissals - talking about childishness.
Is everyone a walking and talking brand now so that they have to always filter their words, walk on eggshells, hide behind corpo-speak so as to seem 'professional'?
More honest discourse is required in today's world, not less. It seems interactions online are becoming less and less authentic.
There’s a big gap between corpo speak and “stinky manager”. That’s nowhere close to professional writing. And he’s not giving us his personal opinion, Kelley is telling us the conclusion of the “grape vine” - he’s reporting on rumors and gossip, and agreeing with it.
What? So let me get this straight--if my open source project which I have given away for free becomes "major" (for some definition) then all of a sudden I have to filter my writing through some kind of average acceptableness test? Come on. [edit] It would be one thing if this was published on Zig letterhead, but it was the guy's personal blog...
In the last decade, we've seen rampant abuses and exploitation of open source projects and of maintainers. So much individual good will and generous efforts wasted because of corporate malfeasanse.
AND YET. If you "open source" a project, if you actually invest in BUILDING a community, you then become a PART Of that community - with the benefits and obligations that come with it.
You don't want the obligations? Fine. But then you don't really get to keep participating in the community. And if you act like "This is MY community, I get to do whatever I want", people are free to shrug, and say "maybe i'll go find a different community".
Which is exactly how I see people reacting to Zig right now. They're seeing that an active member of this community (which, as you said, keeps insisting "he owes them nothing because the community wouldn't exist without them") treats people he doesn't like, and they think "Oof i don't want that to one day be me."
If they want to write a maybe slightly unhinged blog post excoriating someone they had an unpleasant time with... that's a choice! It's their choice. I don't think we get to demand a different one. We can agree or disagree with what they said, but we can't demand they say something else.
If you want that kind of power over someone you need to ensnare them in a binding contract. No such contract exists here.
This has been everyone's point the entire time. You agree with everyone here. No one is suggesting a binding contract exists, but a _social_ contract does exist -- and you concede that with the above recognition of how clearly this post violates it.
For example, you don’t want the director of a science outreach organization to privately uptake all manner of pseudoscience, because they cannot be trusted to carry out the organization’s ostensible mission. When these sentiments come to light, said directory is morally obliged to step down.
A personal blog is definitionally public, ergo by extension reflects upon whatever organizations that person is a member of.
I say all this as someone that does not even feel the posted article is particularly incendiary.
Sooo.... "be more professional in your writing"?
Why does this person owe you "professional writing" on their personal comment?
No, just more precise. It seems absurd to brand an entire community as "assholes" based on some disagreement with a blog post by one member. I suspect great GP didn't mean it that way, but it would help to have some clarification.
You’re really just helping to confirm his diagnosis.
*Below is an aside that explains why I think it's better to air these things even if it seems like "rumors and gossip."
I know first hand how toxic some people are irl compared to their public persona. There was a professor in my department during my PhD who was known to be a slave driver, but there are no accounts of it outside of the department. We would have to warn incoming students about working with her, though sometimes they wouldn't believe it could be as bad as we said. I spoke with one of her students after she left the lab due to being hospitalized for exhaustion from overwork: the professor contacted her while she was still hospitalized and asked her to complete a task ffs!
Professional communication is direct, clear, and ideally courteous (but only to a point).
If I call your code slop, I'm being professional and courteous.
The truth doesn't have a ethical value. Me calling your code slop might feel disrespectful, but it's less disrespectful than trying to pass slop off for your coworkers (or users) to use and deal with.
Lying to someone, and allowing someone who's supposedly your friend to ship slop is more disrespectful. If I wrote shitty code, and my friend didn't stop me, and I find out later he knew it was shitty code... that would be very hard on our friendship.
Unless you meant it's a lie to call it slop code. A lie would be disrespectful, but then again, we both know you didn't say that because it's not a lie.
If you want to tell someone their code quality is poor, then you better do so with specific things that is poor so that the person you are telling it to can learn and do better.
You and I must have had very different interactions with the types of people who happily emit slop. For the people I've met who've suggested slop; they don't care about quality, and it has exclusively been a waste of time trying to explain why quality is important.
Calling someone's work slop, if they're willing to engage, might be disrespectful, I agree! But calling someone code/commit slop when they don't give a shit about the quality of their code (as evidenced by the commits they're willing to put their name on) is simply a description of reality. Willingness to engage is shockingly important. I can't think of a more vague response than answering "I don't know why the code is like that, the LLM did it".
I'd also like to assert: giving out slop to other people is more disrespectful, and less professional (professionals don't suggest low quality options). I'm much rather you try to insult my code, than waste my time trying to trick me into accepting low quality work.
And then, speaking personally. I would feel the most disrespected, if you were willing to call my code slop when speaking privately. But wouldn't call it slop to me, or publicly. It's not disrespectful to have a candid conversation; even if it's uncomfortable because someone has different and strong opinions than I do. I'm a big boy, I'm able to handle the honest evaluation of my work from another person without it being instantly being disrespectful to me, just because they used a word I didn't like.
If they were lying, that would be disrespectful.
But even random people you get on GitHub sending you PRs. You shouldn't reject them with "this code is slop". At least say "Cannot accept this. The code quality isn't great" or something to that effect.
But the point is: dismissing real people who are doing real work and spending a lot of effort on something with "that's slop" is very unprofessional.
You are just coming up with scenarios that don't really apply to what happened in this blog post.
I disagree. (Funny that, different people with different values have different perspectives on acceptable behavior?)
> You are just coming up with scenarios that don't really apply to what happened in this blog post.
Counterpoint; I'm actually sharing a perspective because I thought it would be interesting or useful to consider different opinions.
We're all just pattern matching; you see one form of indifference as offensive, I see a completely different set of actions as the root cause for the offense.
We all have our own rules for what follows and breaks the implicit social contract we've each invented independently. These rules are allowed to differ. You feel like someone insulting your code is more disrespectful, I feel like someone wasting my time is more disrespectful. If you'd like to assert I'm wrong, I'm equally happy to assert you're an idiot (in case it's not abundantly obvious, I don't think you're an idiot, this is an example of how I don't care about "insults")
> But the point is: dismissing real people who are doing real work and spending a lot of effort on something with "that's slop" is very unprofessional.
I might agree with parts of this, but fundamentally, LLM produced code does not count as real work. No, reviewing it doesn't count, because 1) it's harder to do right 2) no one does it correctly 3) if reviewing actually took more effort than no one would use LLMs.
What's the actual risk here? I guess he could sue Andrew for slander, and then prove in court that his management style doesn't suck, and his code is not slop...
They tend to be willing to increase their accountability faster than their compensation.
They sometimes argue, use profanity, or otherwise communicate emphatically, that is the register of communication when something critical is on the line.
The best computer hackers and other technologists through the years were very often outspoken, plain spoken, and did not suffer fools gladly. In their own way everyone from Djiksta to Jobs to Gabriel to Carmack to Linus to Nagggum to jwz to Hotz, too many to count.
It's the same in law offices, hospitals, and forward operating bases in any military that ever won a war. It's the same on a construction site or in Mission Control in Houston.
This venomous pretense of decorum performed by people who ruthlessly optimize to minimize their accountability while maximizing their compensation subject to no scruples.
That's not being professional that's being a leisure suit con man. It is en vogue at the moment precisely because we are in an extreme low integrity regime.
Not saying you're wrong. Professionalism is an important tool for maintaining professional relationships. Lack of professionalism is dangerous to the point where it is reasonable for certain kinds of societies to begin to shun people who don't engage with it.
And, at the same time, a certain amount of emotional honesty can be really important to share, too. And that includes some amount of judgement and criticism.
It sounds like Zig's relationship with Bun is over. While Anthropic/Jason/Bun did not write a personal narrative about the end of that relationship, they absolutely were the initiators and could not have done this in a more aggressive way. It feels to me to be approximately the equivalent of moving out in secret and serving the divorce documents through your lawyer.
2) > It sounds like Zig's relationship with Bun is over. While Anthropic/Jason/Bun did not write a personal narrative about the end of that relationship, they absolutely were the initiators and could not have done this in a more aggressive way. It feels to me to be approximately the equivalent of moving out in secret and serving the divorce documents through your lawyer.
What a bizarre framing of the relationship between a software library and the language it's written in. Why would you even liken it to a marriage lolwtf
The content here is the issue. Bun converted their codebase from Zig to Rust, citing specific technical mismatches of Bun using Zig. The response is that Jarred was rumored to be bad at his job, Jarred was mean to people, and Zig didn't like dealing with Bun anyway because of their sloppy code. Maybe all of this is honest, but it's too convenient.
Well, TFA has a conveniently titled section "Addressing the Blog Post", that raises (setting aside speculation) some good points:
The [Bun rewrite] blog post is ... almost like the marketing department of a trillion dollar company has a lot of money riding on this article ...
There's a dichotomy being presented here where you have to either choose a "style guide" or a programming language feature in order to avoid bugs. The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it ...
[TigerBeetle] put in the time to find and eliminate the bugs, they make an effort to maintain a healthy relationship with ZSF, and Bun did not do that.
The argument for shipping all the million lines of unreviewed code is that the test suite is good enough to catch everything. 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 ...
Performance increase is attributed to LTO, which Zig has supported for all of Bun's existence. It used to be enabled by default until we ran into too many LLVM bugs, all of which also affect Rust ...
The post claims they were fuzzing their Zig code, while during our calls the whole Bun team told us that they were not fuzzing anything. This appears to be an outright fabrication.
The blog post outlines a bunch of engineering work done to reduce binary size, to better make the case that "Bun is better in Rust" ... you were doing the engineering work that you should have done in the Zig codebase since the beginning ...
I noticed that you neglected to mention compilation speed. Zig compiler project is about 600,000 lines of code - roughly the same size as Bun before the rewrite, and I'm clocking 16s to build from scratch with a clean cache, followed by 90ms for each subsequent edit with incremental compilation enabled. What are the corresponding measurements of Bun post-rewrite?> The grapevine was large and healthy and full of juicy grapes, and all those grapes contained the juice of the same message: Jarred was a stinky manager.
> Jarred was already writing slop well before he had access to LLMs.
This isn’t about wanting “sanitized corpo-speak” or something, but I do expect leads of projects to behave like adults and not build arguments on ad-hominem attacks and rumors they supposedly heard.
Address the topic and put forth some arguments. I don’t care to hear your personal beef with someone aired publicly.
I'm not sure that's his aim here. I imagine he has been asked dozens of times what he thinks about the switch, what it means for Zig, etc. etc. and wanted to just address it one time, which is understandable.
The tone is... strong. I think repeating grapevine rumours about Jarred's management skills adds very little and probably could have been removed. But at its heart I see this post as example of a common clash: open source code hackers vs Silicon Valley "growth hackers".
Kelley is disappointed that a promising Zig project took VC money and went from his passion project's prime example to one that shit talked it on the way out. I get why he's emotional. I wouldn't have written it the way he did but I also don't think policing tone is beneficial for honest communication.
Instead of posting on Glassdoor or whatever the latest iteration of that is, Andrew just wrote it out here (and linked to a forum to back up the claim).
Sadly there are far too many open source developers out there who are far too comfortable writing like this. It’s one reason I have stopped being active in open source. You would be fired (or at least disciplined) from any reasonable workplace if you acted like this.
Unprofessional? Maybe a little, but honest, and while the truth isn't flattering to Jarred, I'd say generally kind.
Embarrassing? Not from my seat. Andrew is just revealing the relationship dynamics between a principled programming language developers and pragmatic business users of that language.
I had already inferred a bunch that this post confirms based on the agentic port from forked-Zig to Rust. It's very nice to have suspicions confirmed.
We have very different ideas about what kindness looks like. Honesty and rudeness are not synonyms.
How is saying someone wrote “slop” and is stinky kind?
I can’t understand these comments that claim the article was generally kind, unless you and I read different articles with different words.
I legitimately had to go back and check that the article hadn’t been edited to remove some of the ad hominems
I think you're assumption that it's 'filled with ad hominem attacks' is good evidence for that. I'd have to go back, and go line by line to be sure, but there are no ad hominem attacks. Ad hominem has a specific meaning: arguing against the person, instead of the argument. If the argument is about the behavior of a person, then unless one of those people is a party to the argument, it's exceptionally unlikely to be an ad hominem attack.
Argument: you can't trust the quality of the code $person produces. They mostly release slop code.
Neither are ad hominem: because words mean things. They're attacks against the code quality, and reputation of the subject. But they're not ad hominem. You may not like the opinion. But that doesn't make it an inappropriate attack against the person, the behavior and decisions they've made and the impact those decisions have had, are the topic of the post.
I guess technically, he takes shots at claude which no doubt wrote large sections of this? But I also would object to calling that ad hominem, and doubt that's what you meant?
Finally, even if I did agree the argument that the language in the blog post targets the speaker, more than it addresses the topic wasn't stupid, (I don't agree, it is a stupid idea). The social responsibility/contract to: never do anything publicly that might be considered an attack; was released when bun decided to comment publicly with disputed facts.
Oh no, someone wrote a blog post as a response and refutation to an otherwise unprovoked public post spreading what the author considers misinformation about something they care about?! Maybe they shouldn't have said anything?
How much politeness do you feel is owed? Why are the critiques enumerated improper? I'm honestly curious if you have reasons that I just can't see? Or if it's just vibes based? You don't like how it feels, and that's your objection? Ideally something like: this specific quote is completely off-topic, and exists not to express an idea important to the author, but near exclusively to insult a person. So that I can understand why you see insults that I can't see. If it's true, I can't consider it an insult.
Last question: would all your objections go mostly/completely away if every paragraph was prefixed by "In my opinion"?
I've worked with ark enough that I think I've started to learn his default style, or at the very least to know that from him; this isn't an attack. If that was your read, I think you're taking more from sources that aren't this post.
I wonder if you're confusing statements of fact, for attacks? They're distinct, and the context for the post. I'm sure he's been asked a few, hundred, times what's his take on this decision made by this single person.
> Two, I actually don't have any personal criticisms of Jarred. He has different taste than me, he wants different things out of life than me. [...] Honestly, I think he did well for himself, and I don't wish him any ill will.
> That said I'm happy that our business interests are no longer intertwined! As soon as the Internet stops arguing in public about whether the rewrite was good or bad for Bun based on the language choice, I believe that concludes our interactions.
Translation, Jarred posted his thing, so now Andrew "has" to post his thing: hopefully so the internet will stop asking, and he can ignore this shit he doesn't care about, and people will leave him alone long enough that he can get back to spending his attention on his language, which is all he really wants.
Hearsay and gossip from the "juicy grape vine" along with implying Jarred is too stupid to critically think about his own path in life because he didn't go to university are not exactly statements of fact. They're elitist and vindictive, but those are not synonymous with honest.
> If that was your read, I think you're taking more from sources that aren't this post.
I'd encourage you to reread the post and try to catch how weirdly spiteful and inconsistent it sounds in places:
> But having graduated from the Thiel Fellowship school of thought rather than university...
> 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.
> Now, it's not our business to police what our users do... We made futile attempts to guide them towards better programming practices.
It's an uncomfortable observation, wrapped up in an opinion you don't like. I'm sorry reality is uncomfortable for you (rhetorical you), but welcome to the club?
Let me try explaining it with an example: If I wanted to attack someone, I would directly call them, personally an idiot. Or some other clearly directed insult, at who they are as an individual. I wouldn't list, or trash their output, I wouldn't waste time stating I'm grateful for their time or donations.
No, hypothetically, if I wanted to attack someone I'd use the example of the no call no show to the meeting and say: wow Jarred and his team really are shitty people to no call no show on someone like that. I hate a lot of people, but even I wouldn't noshow on them. He sounds like a shitty human.
I wonder if there's something we can all learn about the subject, given everyone is so sure a recounting of facts followed by a conclusion saying literally
"I actually don't have any personal criticisms of Jarred. He has different taste than me, he wants different things out of life than me. But I think he's actually happy and successful exactly where he is. He figured out how to accomplish all the stuff in life that he wants. [...] Honestly, I think he did well for himself, and I don't wish him any ill will."
is so clearly a personal attack? Honestly, if that were me, that would hurt way worse than reading this attack.
You start by taking more from sources that aren’t this post, then in the very next sentence accuse the other person of doing what you just admitted to.
This article has very clear attacks like calling him a “stinky manager” from literal gossip, or saying he wrote “slop” before LLMs.
If you can’t see these as personal attacks, you are taking more from other sources and your predetermined opinions than the article. That is what you admitted, but I don’t think you realize it.
That said I have positive feelings about Zig as a project, but I do see it is a straight vitality show of a person rather than someone putting broader adoption in front. If Andrew K ever prioritized adoption he would have been a kind and dull leader keen on advertising here and there but he is not, he puts principles first, and people abide with him to see what he could bring to the world, not for being kind, so if people say they know Andrew K they are actually saying well he has that in his personality
This isn’t like the official stance of the zig foundation or anything. I for one am happy to see people being honest about their frustrations instead of playing politics.
Jarred commented on the top that they use fuzzilli , which is a javascript engine fuzzer.
But zig has a built in integrated fuzzer!
Andrew must have been talking about the built in fuzzer because that's what is associated with zig.
zig build test --fuzz
That's why this is a PR moment for Zig.
It's not because Jarred was a bad manager, one who overworks his team, a poor communicator, one who doesn't develop intimacy with the internal core team at Zig, an amateur coder, or a liar about whether or not they've been fuzzing.
I think this is the core problem.
I would rather see something like tigerbeetle become the face of zig, some project that is well written.
There is nothing wrong with Jarred's mentality because it gets the job done, but I would be also angry if I was represented by a project I don't like.
This person is credulous and naive, and I should take care to remember that if I see comments from them in the future.
Andrew is happy bun is not zig anymore because it was not up to the level they would expect from a project that represents them.
The post disclaims the ambassador relationship, but treats Bun as having all of the responsibility of being an ambassador anyway. If Bun is in Zig's house, like the monthly meetings and the core team code review suggest, then somehow the outcome reflects on Zig. If not, then that's fine, but then it begins and ends at "They were a project written in Zig, and now they're not". He can't have both "It's their fault because their code was slop" and "it's not my business".
The world is completely different now. The VC fuelled culture was not as intense and LLMs certainly didn’t exist at all. Andrew calls out these factors explicitly.
> He can't have both "It's their fault because their code was slop" and "it's not my business".
Huh? But it was his business when they had a relationship. Seems he was trying his best to work with them while they were getting funding and Bun was interested in them. That’s the nice thing to do no? Even if you don’t like the partner.
Imagine if the Zig foundation broke the relationship from their side, that would have been much worse.
I don’t think Andrew was trying to say it wasn’t his business in that way. But in the end he couldn’t control what Bun did or didn’t do, and now it’s not his business in any way.
What I'm saying, though, is that if this were a Python project that were rewritten in C++ for speed, I think all of the above would be wildly out of line for GvR to write a teardown about how he tried to tell them how to write fast Python, but they were just too VC brained to listen.
It's not about the tone of the blog post. As a language designer, you already have complete control over what you want your language to be able to express, in a very literal and direct way. If he didn't like the Zig code of Bun, maybe that suggests that he's not putting the things he actually wants to be in Zig in Zig, or hasn't defined the separation between the language and what is written in it cleanly enough. Or, you accept that that's the beauty of it, and that poorly written code that runs runs.
It's not that in the end he couldn't control what Bun does, it's that he couldn't and shouldn't have been able to control that in the beginning, but the post is acting like he should have been able to assume direct control anyway.
It is. It's also why Anthropic and Bun moved off Zig.
Zig is effectively a one-man show, and that one man has been making increasingly erratic decisions.
It's his project so it's well within his rights, of course. But when you're a ~trillion dollar company you don't want to get hit by a supply chain risk like this.
For Anthropic, it's better to nip this in the bud rather than invest more into the Zig ecosystem, where there's a demonstrated risk of the not-so-BDFL going off the rails.
Let's say you make a language and try stuff out but its used by facebook and suddenly you find yourself in calls solving problems for them but you never really wanted to end up in this situation or work with people from such in environment. Meanwhile the compensation/donation does not match the value they are extracting from your work. Hard to say, I'm very mixed on this.
What this looks like to me is Jarred sinned by selling to Anthropic (as opposed to setting up a 501c3 or whatever Andrew deems righteous) and now must be discredited.
In a more just society we setup the rule of law so when you pick a license you have the ability to enforce it without being completely destroyed by a larger entity. When you set your license to 'do whatever you want' then this is causality. You cannot interact with the world and expect it not to affect you, both positive or negative.
What does this mean for the future of the open source world? Not really sure there is a lot up in the air right now. Maybe more 'fuck you' licenses that scare corporations from using your software in the first place. Who knows.
Biting the hand that feeds you might make you an asshole. But sometimes you have to be an asshole to uphold standards and principles. I don't think Linus or Jobs would be known to produce such important technology if they don't care enough about their works to act crudely to people they consider substandard.
We can disagree with Andrew's standards of course. But saying he should not attack someone just because he took money from him is a weak criticism.
When someone criticizes you for things you could improve on that are within your control, it may be difficult to hear, but it is not a personal attack. Someone calling you a stink manager, and listing factors as to why (unreasonable expectations etc.) is not a personal attack.
Someone talking about the inexperience you used to have (being a beginner developer) is not a personal attack.
Someone listing your business decisions (taking VC money, etc) is not a personal attack.
Maybe the only comment in this entire piece that is remotely close to an "attack" is the bit about slop code, but even that, being about the person's work and not the person and aspects of their existence they cannot control or their personal lives, is hardly personal.
I find it really baffling that HN seems to be so sensitive to what's, in my opinion, a relatively tame post with maybe some prickly flavor (which imo is completely understandable given the complete nonsense that had ensured with Bun post acquisition and their very public, and I think unfair, negative portrayal of Zig, intentional or not).
What an awful corporate mindset.
It’s just so unbelievably immature, and I know of no other industry where this is common.
It's not childish in the least for someone who does know the background to point out those issues.
> The post claims they were fuzzing their Zig code, while during our calls the whole Bun team told us that they were not fuzzing anything. This appears to be an outright fabrication.
Fuzzilli integration: https://github.com/oven-sh/bun/pull/24826
Merged PRs fixing issues Fuzzilli found in Bun’s Zig code:
- https://github.com/oven-sh/bun/pull/28926
- https://github.com/oven-sh/bun/pull/28934
- https://github.com/oven-sh/bun/pull/29255
- https://github.com/oven-sh/bun/pull/29210
- https://github.com/oven-sh/bun/pull/29199
Searching “Fuzzilli” shows more PRs: https://github.com/search?q=repo%3Aoven-sh%2Fbun+is%3Apr+Fuz...
EDIT: It's really telling that asking a factual clarification question is somehow downvote worthy. I probably shouldn't be surprised, but this epitomizes the reason online discussions devolve in to flame wars (even moreso than real life, though it happens more and more there as well).
The answer could be as simple as we didn't use a fuzzer until recently so both are accurate. I honestly don't know, which is why I'm asking. Yet somehow just asking is triggering to people.
From the Bun post[1]
> We fuzz Bun's runtime APIs 24/7 using Fuzzilli, the JavaScript engine fuzzer used by V8 & JavaScriptCore
From Andrew Kelley's post today[2]:
> The post claims they were fuzzing their Zig code, while during our calls the whole Bun team told us that they were not fuzzing anything. This appears to be an outright fabrication.
Sumner says that the Bun team has been fuzzing Bun's Zig code. Kelley says that this is a fabrication. Sumner showed proof that the Bun team has been fuzzing Bun's Zig code.
It looks like Kelley is incorrect and made an unfounded claim. The generous interpretation is that at the time Kelley and Sumner had a more collaborative relationship, Sumner was not fuzzing Bun's Zig code, but I'd expect Kelley to check if anything had changed since then before publicly accusing Sumner of lying in this week's Bun blog post.
[0] https://github.com/googleprojectzero/fuzzilli
[1] https://bun.com/blog/bun-in-rust
[2] https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...
From "product" perspective there's no difference, but in program-compiler perspective (and e.g. raising bugs about compiler), Fuzilli isn't fuzzing.
Per Wikipedia > (then...) The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks.
As for myself, I wouldn't use term fuzzing for integration testing such the one used by Fuzilla. I always caught it dynamic testing, scenario testing and in bigger cases property based tests. Fuzzing in my mind is reserved to a low-abstraction calls.
Might just be me, though.
> We fuzz Bun's runtime APIs 24/7 using Fuzzilli, the JavaScript engine fuzzer used by V8 & JavaScriptCore
It does not look to be a fabrication, and is very explicit just about what they meant by fuzzing.
[0] I mean, that sentence doesn't actually match Kelley's paraphrase, but it is literally the only claim in the post related to what fuzzing was done on the Zig-based bun codebase. So it has to be what Kelley was referring to, and his paraphrase is as sloppy as his fact-checking.
Depending on where you are and how you communicate semantics matter more or less. It's very similar to compiler/transpiler. E.g. TypeScript "Compiler" is called compiler but in fact it's transpiler (it emits other high-level language as a result).
I've never heard anyone restrict the definition of "fuzzing" in this way. If I repeatedly generate inputs to a program and then run the program with those inputs, that's fuzzing. It doesn't matter if there's IO or not.
> Depending on where you are and how you communicate semantics matter more or less. It's very similar to compiler/transpiler. E.g. TypeScript "Compiler" is called compiler but in fact it's transpiler (it emits other high-level language as a result).
It's still a compiler. It translates code from one language to another. You can argue whether we need the term "transpiler," but a source-to-source compiler is a compiler.
That's true today, but compiling was historically was defined as getting source code (human readable) to bytecode (machine runnable without an interpreter).
Some people didn't like that definition, and consequently the waters have been murkied. Just like with eg crypto. Or real time.
So an argument about definitions doesn't seem super valuable here.
The teams no longer interacted after the acquisition, and in prior interactions the Bun team would've been correct in saying they weren't fuzzing.
So Jarred isn't wrong, and Andrew also isn't wrong.
> We fuzz Bun's runtime APIs 24/7 using Fuzzilli, the JavaScript engine fuzzer used by V8 & JavaScriptCore
isn't wrong, even though that was only being done for the last 5-6 months of Zig Bun, and not the previous 5 years when they were accruing all of their tech debt.
If I say, "I run 5 miles every day" and my old neighbor says, "I lived next door to him until 9 months ago, and he definitely doesn't run 5 miles a day," and then I show my GPS logs proving I've been running 5 miles a day for the last 9 months, I am correct and my ex-neighbor is incorrect.
If Sumner had said, "We've been fuzzing our code for years," then Kelley could justifiably say that's incorrect. But Sumner is saying that currently Bun fuzzes their code, which is true, so Kelley appears to be incorrect to claim it is a "fabrication."
Given the lack of due diligence here, it seems Kelley's intentions weren't to be objective potrayal of truth but whatever was most damaging.
It’s not nothing, but clearly not what Andrew meant.
Updated version: https://archive.is/TpsUW
Could you help further explain which interpretations & ways you feel this info is relevant to?
That’s quite a statement to make at the end of a post that seems to contain little else…all just thinly veiled.
Saying someone has „beginner energy“ but reframing it as a faux positive (this person fails and thus learns)
Or saying the grapevine says someone is a „stinky manager“? Basically I’m not saying this person is bad it’s just that I need to bring up on this blog that everyone agrees this person is bad.
All seems to be in very poor taste even if true…
He may well be a shit manager. I have no idea. Either way it’s not something you casually throw out there in a blog like this
Andrew and Jarred and I are all peers in this situation. You get reviews from your peers.
Anyways, what do you think about Jarred? Do you think he lies about Andrew in public? What was the term Andrew used? Outright fabrication?
I wouldn't claim he's lying because I have no first-hand knowledge to base such a claim on. I just think his whole persona is about selling the idea that "you don't need to look at the code anymore". I would have a hard time calling that a lie because I think he really believes it. It does mean that I think of him as a fool or a pawn, though: a friendly face whose purpose is to give a feeling of safety and human harmlessness to a destructive agenda of machine supremacy.
My moral condemnation for that is as strong as if I thought he was simply lying, and perhaps stronger.
This is very beginner energy lol. Are you possibly a teenager?
> and bullshitting (e.g. using AI to say you used AI) is the opposite of competence.
Your username name is conartist6....
Do you often quote yourself?
That's not even the extent of it. Saying something in private face to face at least keeps it between 2 people. He posted it publicly for the world to see, so it's a massively bigger "attack".
Do some of you really talk to others like this and find no issue with it? It's hard to say words like that and not end up with deep schisms and hatred.
yes!
"software developers are stinky managers" is not a personal attack. neither is "managers are stinky", but "you/he/she/etc are something" is personal. it may not be an attack though if it is still part of a generalization: "you are a stinky manager because all software developers are stinky managers". but the article is not making that generalization, and therefore it's not just personal but also an attack.
What Kelley would have said if he were acting like an adult & offering professional criticism was that Jarred was a bad manager. Ineffective, even. That is what an adult would have said there.
> The grapevine was (...), and all those grapes contained the juice of the same message: Jarred was a stinky manager.
Per exact words these two are different:
- I think someone is stinky
- I spoke with people who said someone is stinky
i.e. I might myself not share the sentinment, or not know anything about it, or simply not engage - relay is not an opinion in itself.- I think someone is stinky at this one particular thing
- I spoke with people who said he was stinky at this one particular thing
Those are different than personal attacks
You’re a shitty programmer!
Vs “your code is bad”.
Who is the subject of these sentences?
That said, it isn't necessarily the case that workaholics are bad managers, or that they insist on workaholism in their subordinates. We, generally, don't have access to Andrew's rumornet, we can only go off what Jarred's said publicly.
> The grapevine was large and healthy and full of juicy grapes, and all those grapes contained the juice of the same message: Jarred was a stinky manager.
> Jarred was already writing slop well before he had access to LLMs.
This is a weirdly childish post. I enjoy a good post where someone speaks their mind without running it through the corporate speak filter first, but it also gives you insights into how a person thinks and operates. With good leadership you can strip away the corporate filter and the result is still professional, but this article reveals something much less than professional
Stinky manager.. I could see, but even if his wording was more polite he’d still be criticised just as much, people would just say the personal criticism is “thinly veiled”.
We could argue a lot about how he should have worded himself, but in the end he wanted to (and had all right) to talk about how Jarreds coding and management style affected their professional relationship. According to commenters here on hacker news it seems like he simply is not allowed to talk about that. Even if he goes as far as possible in making it explicit that it’s not personal.
This was my favourite part. Nerd drama is entertaining.
And that is the crux of the whole issue here, as explained in https://sipping-delicious-tea.pages.dev/
But this killed my hopes for Zig.
The drama is fun, and Andrew is maybe even admirable in his earnest, but this just isn't the kind of professionalism needed for a serious project. I know that's boring and uninspired, but that's what I want my tech stack and it's management to be.
Also, maybe Jarred was a net negative, but bun was also a really big project using Zig, and the project leaving isn't as good for Zig as Andrew is making it seem. It genuinely seems he's putting a lot of priority on purity and ideology over just growth of the language. And I am sorry, but adoption and reaching critical mass is an important part of a serious programming language.
[0] esp. nilirl.
I figure taking the most successful project of the 90s and using that as a polestar for of newer projects who re trying to get and keep traction over other projects (see this thread and topic) is probably a bad idea.
It in fact is a great thing to learn from, not repeat the same errors.
I've realised from the comments under this post that many people seem to desire some sort of performative "professional" communication style from people above all else. I don't know why people care about this so much and I don't think I care to know.
Personally I find it hard to believe that a community isn't toxic when their leader acts in this way.
I'll take claims that you have no ability to make for $100, Alex.
I don't immediately see how much the seriousness of the project is related to the language the author chose in their personal blog post. It's similar to saying that Linux could not have become a serious project because of the way Linus communicated in his emails.
Linus being rude was actually contributing for Linux becoming a serious project. Because that changed the quality of the code and the seriousness of the contributions. If you were sloppy or did not do good job, Linus became rude. So there is a correlation, and this is an excellent demonstration how it goes to opposite direction. Whether it was professional or not, it correlated for the quality of the project. For that reason, it is not ad hominem.
Versus here, I'm not sure I see the point? I'm not up to date on this drama, but like, Bun has left the project/community. There's nothing lost from staying quiet or just going "okay, bye". Why is there a whole post about how shitty the guy is, what purpose does this serve other than dunking on him for leaving? It comes off as bitter and petty, not because it's wrong or the tone or whatever, but because there's no reason for it.
In this case, Bun was acquired by Anthropic. Leaving Zig is not necessarily out of merit. As much as they pretend it was.
I actually think this gets to, but steps over, the core objection: traditional "hacker" mindset vs VC "growth hacking" mindset.
> And I am sorry, but adoption and reaching critical mass is an important part of a serious programming language.
Why? Why can't he create a language with exactly the kind of purity and ideology he wants, broader adoption be damned? Why must everything optimize for user growth and mindshare?
Yes, I think you are totally right. I'm sure Linux would never be so big as it is without a maintainer that talks so professional than Linus Torvalds.
Would you argue that Chez Scheme (to pick a random example) isn't a "serious programming language"? And I am sorry, but the assumption that "explosive growth" in the venture capital sense is somehow necessary for "success" is cancer.
Commercially speaking? Absolutely not a "serious programming language" in this context.
If someone tries to implement a project using Chez Scheme, they better have agreat reason to not use mainstream boring language.
It hasn't stopped Rust's growth, so I doubt this is true.
Most people don't care about this kind of interpersonal drama unless it impacts the actual technology itself.
This blog post only reinforces this opinion. It is clear that the Zig developers has had huge issues with his relationship with Bun for a long time, and it seems from both Jarred and Andrew’s post that Andrew really put all those issues aside, in spite of his strong personal opinions, to maintain a professional and productive relationship as long as possible.
It’s only now that the relationship is broken (on Buns initiative) that he has taken the opportunity to vent a bit. And I’m really glad he did.
It’s similar to Linus. Sometimes Linus goes too far in his comments. But getting an occasional insight into people’s personal opinion is good, as long as it’s not at the cost of breaking a professional relationship.
If that's so, I find it OK. The maintainer(s) have the right, even the obligation, to make that choice. Growth alone is not a value, you have to be willing to pay the price for it.
The usecase itself is js on the backend, seems unaligned with zig.
https://npmtrends.com/bun-vs-express-vs-is-vs-is-number-vs-t...
Seen this time and time again, project/organization gets taken over, and everything "good" they did doesn't get exited with fanfare or anything, just silently dropped as your benefactor starts silently ignoring you.
I'm really happy they saw the writing on the all and were prepared for the inevitable, a really great lesson you shouldn't need to learn yourself the hard way, and FOSS project relying on one/two big donators should take heed, we'll see a lot more of this in the developer tooling ecosystem moving forward for sure.
Like if someone calls you a bad programmer and doesn't hire you as a programmer, isn't ad hominem
This is like the textbook definition of an ad hominem.
But he is. Both in the title, and in later half of the blog post, he directly enters that discussion. I'm not saying an ad hominem argument is always bad, but this clearly is one.
No, it isn't at all. Ad hominem is only in effect and fallacious when the logic turns on the personal attack. "You're wrong because you're stupid" is ad hominem. "You're wrong and also you're stupid" is impolite, but logically fine.
To clarify, I think that the entire "History" section is unrelated to Andrew's argument, only the "Addressing the Blog Post" section actually contains arguments, and that section doesn't contain the rude comments, it's focused on technical decision-making.
Here it's a type of argument, and it's only sometimes a fallacy. Seems like this how it's defined most of the time, unless you explicitly look for "ad hominem fallacy". Ad hominem without any context can be vague, I guess, so I tried to be more explicit.
I don't know, maybe I'm wrong, English isn't my first language, but I think "Obvious Fabrication" (capital letters) is a bit silly.
from your very link:
> ad hominem, type of argument or attack that appeals to prejudice or feelings or irrelevantly impugns another person’s character instead of addressing the facts or claims made by the latter.
> Ad hominem arguments are often taught to be a type of fallacy, an erroneous form of argumentation, although this is not necessarily the case. A number of scholars have noted that questioning a person’s character is a fallacy only insofar as the person’s character is not logically relevant to the debate.
You are right! The link does discuss cases where it's not a fallacy - in those cases, it is instead a valid argument. Again, not what you said.
This is not refreshing, I usually expect better from Kelley. The best move would have been to say nothing at all except “best of luck, Zig will miss him but”. Now all Ziglings must wonder if they’re going to receive a hit piece from the Zig founder if they cross him.
Can you point to even one such example?
https://xcancel.com/bunjavascript/status/2048427636414923250
https://ziggit.dev/t/bun-s-zig-fork-got-4x-faster-compilatio...
How many other Zig users publicly announced their unrequested fork of the language?
> unrequested fork
No such thing exists.
Take your pick I guess, but the way I meant it I was indeed using the term correctly.
As an outside observer who knew little about Zig and Bun, the impression I got is that the rewrite came out of nowhere, and that the Zig community was surprised by it. The post makes it quite clear that this wasn't the case, and describes how the actions and overall mentality of Bun's creator already suggested such a thing was likely to happen, straight from the mouth of someone who worked with him and isn't afraid to voice his thoughts. Not everything needs to be PR speak.
The contents of his character and thoughts are quite objectionable though.
That's just your opinion though, not an objective fact. I happen to be of the opposite opinion.
Would have been a great opportunity to outline the benefits of Zig! I've been keen to pick Zig up recently due to mitchellh's evangelism and inspiring writing on the subject.
This article puts me off learning Zig.
Seems you're not alone in feeling this, mind quoting the exact and verbatim parts that seem like "speculative ad hominem"? I see there are quite a bits about how Andrew sees Jarred and his workflow/work mentality, but I'm not sure I see clearly what is supposed to be the ad hominem, speculative or not.
> he was essentially groomed from a young age
> It's one thing to choose a poor work-life balance for oneself; a different thing entirely to demand it of others
> Jarred was a stinky manager
The other stuff maybe, I’m not familiar enough.
It’s definitionally an ad hominem against Jared. If he stuck to why he thought it was bad for Bun to do this, I would be more sympathetic.
Quite the opposite. "When Jarred announced the Rust rewrite, we were ecstatic."
> It’s definitionally an ad hominem against Jared.
Who Jarred is, as a CEO, definitely has an impact on how the company develops software - how Zig is used. And the argument is that Zig is used badly in Bun. Without that context, I, as a reader, would have to actually read through a lot of code to be convinced of that point.
Eh, Google and ChatGPT both exist?
"Was silence not an option?"
"Jarred, in his professional capacity, drove away many from our community, and we'd prefer to disassociate." is not 'Jarred is a bad person, privately'.
Now, in these circles, that might as well be the same thing, given how little personal life I imagine most VCs have left outside of work. But that's not really Andrew's problem.
I won't defend Andrew's style; I think he could mask some his neurodivergence more when communicating to a wider neurotypical audience. But it's his project, his community is certainly aware, and this too, is a known quantity.
It might help you though, to reread the piece with the assumption that Andrew is being completely sincere, without adding in a secondary subtext like, "Andrew is trying to assassinate Jarred's character".
For example, given the number of claims made here there’s very little actual evidence and support. Kelley says Jared is a bad manager and credits rumors. He says he writes slop code and doesn’t provide a single example or prove that statement. If this were his “neurodivergence” coming through I’d expect more thorough argument and less “stinky manager” grade school insults.
So that's a no, you won't make the attempt to engage with it with any other frame of mind?
>> Now I see him in the same category as a Musk like character.
Do you not see this as an overreaction? Andrew writes one (perhaps overly) blunt article about someone who publicly attempts to tarnish his project's reputation and you view it the same as the worst living human?
I told you, I engaged with it with the frame of mind that the author is a role model to me. My conclusion having read the words was that this was an intentional snipe.
People are calling this honest, but I consider it deeply dishonest to make the litany of personal attacks that he did while trying to pretend "I actually don't have any personal criticisms of Jarred".
Either Andrew isn't being honest with his audience, or he's not honest with himself. We can leave that as the most charitable framing. Either way it's just not true.
> you view it the same as the worst living human
I didn't say that. I only make the comparison in that they are both emotionally driven to say rude and mean things when they feel attacked.
You can look at the bun codebase. Moving fast has its drawbacks, and bun moved very fast. It’s not what I’d call idiomatic or exemplary Zig.
I think this is what Andrew was highlighting with “beginner energy”. Not knowing you shouldn’t rewrite a toolchain and take on an entire ecosystem can be a positive. I think this is pretty common in business, where someone/something isn’t “great” but wins because they didn’t know any better and went headfirst into something experts avoided because they understand the challenges and what “doing it right” entails.
The whole post felt like a personal criticism of Jarred.
What made you get that takeaway from the article? I didn't get that feeling at all, mainly seems to be something like "Jarred does some good and some bad, personally I don't agree, still wish him well", but clearly some specific part in the article must have given you this impression, if so what part?
> 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,
> this "beginner energy" started to hit differently for me. It's one thing to choose a poor work-life balance for oneself; a different thing entirely to demand it of others
> Poor communication, unrealistic expectations, low empathy, no experience
> gets to live out his productivity fantasy fever dream, he's probably already super wealthy. He has minor tech celebrity status.
Frankly, I have trouble seeing how a neutral reader doesn’t see this as a clear personal attack. That the article ends with “I actually don't have any personal criticisms of Jarred” is almost comical given the preceding paragraphs.
> gets to live out his productivity fantasy fever dream, he's probably already super wealthy. He has minor tech celebrity status.
in the following paragraph.
And the fact that immediately after no "personal criticism" he proceeds to call his behavior "fantasy fever dream." Sometimes presentation matters as much as factuality.
The lack of sources and citation for a pretty one-sided claim doesn't help either.
> The Zig foundation had a continuing disagreement about how Bun was using Zig (their methods and the resulting code). Other projects that follow the advices of the Zig foundation more closely won't have the same problems Bun had.
Posting this could've been enough to save face.
I find the blogpost super petty, 8-10 untrue, unprovable, unrelated jabs against a person and colleague.
Not knowing whether you actually gave the advice you're blaming them for not taking isn't professional, it instead comes across as bitter.
If I criticize your code, that is a professional criticism.
If I criticize your code and say it reflects your consistent carelessness and stupidity, it is also personal.
If I say you fabricated something, then that is a personal criticism, it alleges an ethical violation. In a professional context, it's also a professional criticism (every profession has some ethical standards).
Anyway, let's try to discuss something more technical: I predict Zig will lose steam, and in 2027, will lose relevance:
1) It's hardcore Anti-AI 2) It's moved to Codeberg 3) It doesn't have the momentum to sustain the disadvantages of these two decisions
The project will in max 2 years make a blog post, not admitting to their mistakes, telling themselves that Zig is a success, despite the industry having moved on.
What are your hopes and predictions for the Zig project?
The hypocrisy is puzzling.
It kind of reminds me of Elm in a way. Though I'm not expecting 6 years of drought just yet.
This is absolutely brutal to GitLab
But I wasn't talking about contributing to the language, which is a weird standard to use here since Zig isn't interested in outside contributors. I was talking about choosing a programming language for use for some professional or personal project. I don't give a fig what version control solutions the team chooses to use if the language is good and solves my problems, and I would consider it very strange if someone tried to argue that I shouldn't use some language because they put their code on a non-Microsoft owned server.
The original comment you replied to was talking about "the loss of network effect" and you sounded dismissive of it. It might not even matter, but I think it's somewhat fair to say it could have an impact.
I think you mean to say something like barrier to entry for contributors? Where having to sign up for a new service will discourage some engagement with the core repo.
Yes there are ways around it if you have patience, but what the heck!!
"Nvidia, fuck you!"
Not to mention he was attacking an opaque corporation, not a single person like this blog post does.
If one can easily swap in the next new js engine du jour…
For real though, if your goal as a language isn't to become popular then why should anyone learn it? Why should anyone spend their limited time building libraries in it when the language isn't likely to grow (and thus is more likely to disappear)?
Andrew Kelley - An Open Letter to Everyone I've Butted Heads With (2025 Aug 29) https://andrewkelley.me/post/open-letter-everyone-butted-hea...
You have defined success (for a project, and possibly a person too) as solely 'relevance'.
Jarred would agree with you wholeheartedly, I imagine. Andrew would ask you to leave.
It's okay to have different values and part ways.
It's not wise, however, to project your personal values onto other people, and judge them on those fabricated merits. You'll end up frustrated and confused more often than not.
Judge their choice of values. Judge them on their alignment with their chosen values.
As an example, Andrew doesn't like Jarred's chosen 'Silicon Valley' values, but thinks that Jarred aligns himself well with those values. This feels as a personal attack to you who also holds those values. And on some level, a person intimating you core values suck couldn't be more personal.
I'll note that this is followed by an entirely non-technical statement of opinion.
And because unsafe is generally highly local or localizable reasoning (conventionally backed by safety justifications) it really is quite reasonable to go plugging at it, or task an AI within that.
I haven't reviewed this code, but the percentages described don't sound like they'd need a huge architectural overhaul to use much less unsafe, it might take more actual human effort than they want though.
I'm saying you have to be as meticulous as a borrow checker. Not as strict, of course, but you have to analyze each pointer, how and when it's used, and then cross-reference with the documented lifetime.
Just like thread safety existed before Rust made it explicit. Now you don't need to investigate if data is thread safe if it's `Send + Sync`.
This is a job humans suck at and compilers excel at. With some caveats. There will be edge cases that will need to be manually proven.
For the latter: https://youtu.be/iqddnwKF8HQ?si=cvU8Fh3ah7ZCxg3M
From 26:38
- [0] https://ziggit.dev/t/bun-s-zig-fork-got-4x-faster-compilatio...
I've experienced both in my career and I fall solidly on the planful side. It's why stopped using homebrew and I've avoided huggingface packages as much as possible.
I can imagine Anthropic wanting to acquire Bun without the gimmicks.
A few weeks later, Bun began the Rust rewrite. Although not explicitly stated, I suspect these two events may be related.
Not sure which is worse.
The other (very salient) points notwithstanding, I'm afraid this quote shows that Zig hasn't learned a lesson that other languages of its generation (and older) have: if a project's memory safety depends only on "responsible engineering practices", then that project most likely won't be memory safe. Quoting the "swiss cheese" model used in risk management: one slice of cheese (engineering practices) just isn't enough if you want to be reasonably sure your program is memory safe.
In my safety background (recently aerospace, ARP4754/4761), removing and avoiding the hazard are essentially equivalent, with reducing the likelihood and mitigating its effects acceptable if you can't remove or avoid the hazard, and procedure is also the least preferred mechanism.
If Bun can't get it right starting in 2026 with all of Zig's tooling and someone who worked on the language, what hope does my random team have?
Especially when we could, instead, use Rust. With a larger community to boot.
> The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it.
Perhaps the amount of bugs comes from using a C-like language that requires meticulous manual care to avoid writing runtime bugs.
Even C++ would be a safer choice because of RAII.
When you have to dedicate significant resources to avoid/fix runtime issues that are made impossible at compile time by other languages, the programmer isn't entirely at fault.
They actually remove certain classes completely. E.g. lifetime ownership in Rust removes all bugs related to the reason why it is in the code syntax (a.k.a. lifetime markers remove use-after-free completely in Rust.)
At the time of writing, about 4% of Bun's Rust code sits inside an unsafe block (~13,000 unsafe keywords across ~27,000 lines / ~780,000 lines), and 78% of those blocks are a single line — a pointer that came from C++, or one call into a C library.Static linting in Rust via clippy also makes it pretty straightforward to begin enforcing things like "unsafe blocks need to have safety doc comments" as a CI warning or failure, and there are community tools that focus on this topic too.
I can't stand the practice of "LLM porting" personally but if you're going to do a mechanical rewrite from something else into Rust, this (permit unsafe and unidiomatic but 1:1 translation at first) is a fairly reasonable strategy imo.
If you took a program written in Zig, Go, C++, or C, you would have no idea which parts of the code were potentially unsafe. In those languages, the entire program is one big unsafe{} block.
Rust isolates unsafe code. Having them explicitly tagged means they're isolated and can be eradicated over time, if need be. Though in many cases, unsafe blocks are quite safe.
Don't those blocks need some additional lines for error checking to prevent the unsafety from spreading to the safe code?
Suppose there's a C library libape which implements monkeys you need in your software. There's a C API where we pass a pointer to a valid monkey and a 32-bit unsigned integer which controls how delicious bananas are. Any 32-bit unsigned integer is valid here, except zero because monkeys always think bananas are at least somewhat delicious, and there's no return value.
Our Rust wrapper probably has Monkey as a type, wrapping one of those valid monkey pointers we mentioned, and so our wrapper for that API call is some unsafe code which just calls the C with this monkey pointer and a non-zero unsigned 32-bit integer which in Rust is just the type NonZeroU32 and we're done. That's a single line, the unsafety checking was all done in Rust's type system, every Monkey has a valid monkey pointer, every NonZeroU32 is (as its name suggests) a non-zero unsigned 32-bit integer.
Now on the other hand, maybe we're wrapping code which takes a char * pointer intended to point at some zero terminated ISO-8859-1 encoded text. That Rust wrapper would be responsible for this translation and maybe you do that work in the wrapper function. But, if you had sixty calls like that, probably you make a Rust type for this problem named like Iso8859dash1Text and then those unsafe calls don't have a lot of boilerplate because all that boilerplate (which is probably even safe Rust depending on how exactly you do it) lives in this Iso8859dash1Text type you made. And that's also a useful model if later you discover the C library lied and it's not ISO-8859-1 it's really Windows Codepage 1252 ...
I don't write Rust - but I sure know that I'm not supposed to use 'unsafe'.
When in doubt - look at the incentives. And the incentives here are fairly obvious. On one hand we have an open source project that is focused on quality and craftsmanship, and on the other hand we have the world's biggest AI company.
I am not anti-AI. But things like taste and quality matter. And I trust the creator of Zig more than the creator of Bun when it comes to said taste.
Having read both articles I'm in the opposite corner. I found Andrew's personal ad-hominem filled emotional post distasteful and Jarred's purely technical and filled with praise of Zig well written and in good taste.
But how is this news? Memory safety bugs are one of (if not the) main source of bugs in C/C++ and also Zig, and Rust's main claim to fame is that it makes it easy to catch these issues at compile time. I feel his criticisms of Zig are fairly uncontroversial.
Whether that's "okay" is a totally separate issue. I have no idea what the history here is, or whether this is warranted. But that was absolutely a personal criticism!
Maybe Jarred wasn't easy to work with, but that doesn't mean that it's a good idea to publicly air all the dirty laundry. He at least seemed to have his heart in the right place by donating a substantial amount to the project.
I was unimpressed with the engineering from the blog, and I'm not surprised to read andrew say they claimed no fuzz testing. I know someone who interviewed at bun when it was less than 10 people (around 5 he said). Allegedly jared lowballed the fk out of my friend, claimed they had no money because they're a startup, then proceeded to offer <1% equity
> Bun started as a line-for-line port of esbuild's JavaScript & TypeScript transpiler from Go to Zig
Then proceeded to talk about use after free bugs, leaks, and other things that wouldn't exist in GC written programs. Ironically, my friend jared lowballed is an expert in C, runtimes and threading
I'm rooting for Zig either way, even though I have nothing against Rust and I don't directly use bun.
So for some workflows it looked like a flat improvement on all parts.
yeah, Mitchell is very pro-AI, but he is thoughtful, and he sometimes highlights the difference between Zig's and Ghostty's approaches to LLMs (outright ban vs taming)
OSS projects can survive not being on GitHub, Python was something like 20 years was not on gh. If the service has severe outages and there are alternatives why wouldn’t you move? Most people aren’t contributing to the runtime anyways, they are just using the language.
If Bun, a disaster of engineering apparently, simply just switches to Rust and all of their issues magically disappear... then the Rust Vs Zig war is over before it started right?
the tech industry's fake politeness has caused pain and confusion.
& yeah - I had already stayed off Bun before the whole rewrite, but now more reasons.
This post is his personal blog, he is a human writing what he thinks.
If this was a tweet people would be fine with it, but it is a blog so he should make it corporate-y
Actually, some folks do care about how the leader and public face of a project conduct themselves regardless of venue. If a different public figure ie some CEO wrote something reprehensible about some particular ethnic group, is it more excusable or forgivable if they did it on their personal social media account rather than the company blog? Same basic thing.
Public writing in a personal space is still public writing. Being held accountable for publicly stated views is an inherent part of sharing them in public, no?
Compare the tone of this post to the one from Jarred about the Rust migration from yesterday, that one reads like a sensible technical document (no matter what you feel about the AI assisted migration).
This one reeks of hurt ego to me. Hell hath no fury like a language creator scorned.
Its a breath of fresh air to get this whole debate out in the open
It is challenging for me to imagine how one would think an article like this is net beneficial for the community rather than reacting with grace.
He should have kept the "horrible manager" parts away, as it really doesn't have anything to do with the point of the post.
When Jarred joined the Zig community about 5 years ago, I described him as someone who had strong "beginner energy".
I wouldn't call it beginner energy, though I understand it might seem like that. Rather, it's an approach to development and no amount of time changes it.I'm pretty sure the version I tested was the Zig one (have they made a stable release of the Rust rewrite yet?). So I can definitely see how Bun's move-fast-and-break-things philosophy would have been a poor fit for the Zig community, even prior to the Rust rewrite.
[1] https://carter.sande.duodecima.technology/inline-script-pitf...
In a post-Rust world I really don't like the rebuttal for eschewing memory-safety is always "you aren't engineering hard enough". The guys at TigerBeetle are "real engineers" and don't need memory safety. If I'm spending most of my time manually chasing memory errors, I didn't "real engineer" hard enough.
Chasing esoteric memory bugs are the worst kinds of bugs to pin down. They are always non-obvious (because if they were they would be fixed) and almost always non-deterministic. I'm just can't escape feeling like new memory unsafe languages are just hobby projects.
- misunderstood specifications
- missing else clause to an if statement
- wires with the insulation rubbed off in an embedded system with a mechanical design flaw
- accidental endless loops starving all other tasks
- priority inversion
- string encoding problems
- byte order problems
- etc., etc.
From everything I've read now about this bun project, I won't be surprised to hear that it continues to have lots of bugs even after this rewrite to rust
"Dear Diary,
Today I didn't post a response to a blog post that levelled minimal criticisms at my project.
Below is the full text I didn't post."
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.
> "There's a dichotomy being presented here where you have to either choose a "style guide" or a programming language feature in order to avoid bugs. The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it. You're not giving TigerBeetle nearly enough credit. Quite simply they put in the time to find and eliminate the bugs, they make an effort to maintain a healthy relationship with ZSF, and Bun did not do that."
The reference to TigerBeetle is important, and a bit under-explained for the point he's trying to make. They have consistently attributed things like design and deterministic simulation testing to their success and reliability, which has nothing to do with Zig as a language. Some things might be _easier_ in Zig, such as static memory allocation, but ultimately, a holistic approach brings success, not one individual tool used "right".
> Bounds checks, checked arithmetic, strongly-typed alignment, strongly-typed error codes, tagged unions, explicit undefined are some rather important language features. If Zig didn't exist, TigerBeetle would probably have been written in C, and the safety gap between C and Zig is just gigantic. And safety is one aspect of the language, Zig has a lot of going on for it elsewhere!
i admire a few things in zig community, the focus on human relationship with learning and discovery and the focus on performance and building a meaningful relationship with members of community, I wish all the best to the zig and its community, although i have heard a few years ago that andrew was making apologies for not having enough diversity (race and skin colour wise) which i guess was a very dumb statement, but hey we all make dumb statements!
I really admire his stance on AI and agentic code contribution and the joy that they find in crafting good tools.
Say what you will about Matz or José Valim, I don't think they'd ever write a "and don't let the door hit you on the way out" screed full of personal attacks ("stinky manager", "writing slop", "a total shit show") against a person who led a very prominent project and financially supported the language.
This blog post is mostly made up of pettiness and is not an isolated incident - he is often pretty "spicy" or downright hostile in comments sections when making an appearance.
That sounds completely surreal. Is Bun really used that much?
Note that usage and public interest are not the same quantity, people also care about the potential of a project.
The dynamics are not any different from content creators translating their following to income on Patreon -larger the following better the chances.
It is closer to corporate sponsorships, plenty of projects[1] can pull in few hundred thousand a year.
The post itself talks about a $5k/month donation from Bun to Zig Foundation. ZSF generates about a half million in donations https://ziglang.org/news/2025-financials/
The "crowdfunding" term is here to contrast direct VC funding (that Bun took) from a single source to more diffuse(albeit smaller) funding that ZSF style projects operate under. Without VC funding Bun wouldn't need to , and if non profit 501(x) then simply not even be to consider an acquisition from Anthropic.
Of course Zig (and other projects) benefit from indirect VC funding too - Bun could only afford to donate $5k/ month on Zig because they took VC money after all.
We can always keep going down this secondary/tertiary effects for any tech funding it would unavoidable even with direct small donations - people who contribute are likely drawing salary from VC funded companies, and would contribute less if market goes south and funding plus jobs dry up. . The idea being the level of influence from corporate goal pressure reduces with degrees of separation.
There is a good amount history of this model. Linus Torvalds work itself is by funded by Linux Foundation through a fellowship. LSF charges $500,000 from their 12 Platinum members that includes Microsoft. Nvidia is a silver member, he has famously used some colorful language against both in the past, which in theory would be lot more difficult without the diffuse structure LSF generates funding ( compared to direct employment/VC funding).
[1]That isn't to say that a lot of core projects the entire internet economy depends on is maintained by one guy in Nebraska voluntarily without any support.
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
$60k per year, which amounts to $5k per month. Still, nothing to be sneered at.
Can't say my experience matches yours. Types do seem to structurally reduce some varieties of bugs, but ultimately the only reliable way I've seen to close the gap is hire disciplined people who care about, and thoughtfully consider, what they build.
E.g., the shittiest codebases I've ever seen were TypeScript. It in no way prevents you writing bugs or slop
You were able to turn around a codebase that was growing its bug count exponentially by changing an entire company's hiring practices?
I really don't believe in the "just don't be stupid" or "don't hire stupid people" approach to things. If it works, it only works at a small scale and once things become urgent enough, things fall apart.
I was half expecting it to be from Loris Cro, being VP of community for Zig. But was really hoping Andrew would write one himself, hopefully being more diplomatic.
I was wrong.
Even if everything that was listed in the blog was true, it could have been either not mentioned, or in all cases put it in much better way. And that is why copywriter are worth something.
Disagreeing on AI, How to run its business, low salary for Zig's job hurts the Zig foundation, Code quality, meaning on Fuzzing etc. Instead a lot of this now reads to me as direct attack. It could have been written as a heavy disagreement in a much more professional manner.
And no, professional doesn't mean cooperate speak.
Considering the Internet was on Zig's side when Bun switch to Rust was brewing.
Sigh.
Personally, I prefer zig over most other languages. I find "memory-safety" is bought at the price of code that is not straightforward to reason about and requiring a steep learning curve. The reader's working memory is filled up quickly with language constructs and crutches rather than with the actual logic of the code at hand. I have used C++ for a large part of my professional career and eventually got so annoyed by always having to cross-reference multiple files to check which behavior might be used by which constructor and things like that. I have written a big and critical system in pure C once, just to try, and while I would not do it again, diligence and testing resulted in virtually zero runtime failures across its lifespan - while it was always possible to quickly reason about all the logic that tied low-level hardware access and near-realtime requirements together in a way much more visible than hidden behind layers of "safe" abstraction. Zig is, for me, the sweet spot: It solves the terrible issues that plain C has, and adds a lot of convenience on top that does not obscure the logic, while encouraging but not enforcing safe patterns.
Interesting I wonder if its something Jarred did locally or something else that was just not widely done by the whole team? I dont like to make bad assumptions about devs or dev teams without first asking. I owe credit to HN for one of the guidelines which states something like do not assume intentional malice in comments, I feel like we assume the worst in general about other devs, but people are imperfect and make mistakes.
That said as others noted this post could have been written a bit differently while still pointing out genuine issues. The ad hominem attacks are a bit unnecessary and add nothing of value to what could have been a better response.
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????
> Bun v1.3.14 was the last version of Bun written in Zig. Bun v1.4.0 will be the first version of Bun written in Rust. It's available in canary now.
It's also been shipping with Claude Code since June 17th.
Given the size of the rewrite I think it's pretty responsible to dogfood it a lot - including with a Claude Code release - before pushing a stable release to the wider community.
If someone insults your ability to do your job, paints you as an opportunistic sellout, and thanks the stars for your riddance, saying someone shouldn't feel hurt because "we can separate personal from professional lives" says more about your inability to perceive your own hurtfulness than it does of that person's benevolence.
The minimum bar for tactful communication is to be courteous and empathetic. None of this had that.
And maybe it's what Andrew wants.
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
"Handled by Zig's style guide" ends up as "Don't make mistakes" which is entirely useless advice. C++ spent years trying to make out that this constitutes useful guidance before gradually accepting that people aren't in fact going to stop making mistakes, you need to provide a better language and tools.
https://www.youtube.com/watch?v=omYfLDlt-MA
Like Avon says in The Wire, "And how you ain't never gonna be slow? Never be late?". Systems which require that you don't make mistakes will fail.
This is not a compelling sales pitch. The point of using a memory-safe language is not needing to put in extra work to avoid use-after-free or out-of-bounds memory access.
It would have been more reassuring to hear that Zig has its own memory safety story that should also be able to prevent most of the same bugs. But instead the answer is "work harder for the same result."
When Zig was first created, Rust looked genuinely harder to use because the borrow checker is so demanding and its errors sometimes so hard to reason about and fix. It made Zig look much simpler and easier by comparison. But now, LLMs are very good at writing Rust. I've been writing Rust using LLMs for weeks and haven't thought about the borrow checker once.
AI made Rust tractable without heroic effort, and in doing so eroded one of Zig's major advantages.
The point about compile times is taken though. Rust is definitely slow to compile, easier to believe it's slower than Zig.
so, never? because with bun being as public and widely known as it is, the debate won't end
Bun is slop. Let's not pretend it is not. It went from 600k lines of zig to almost a million of rust, for a wrapper around a js engine. It might be useful slop, but it is still slop.
It's understandable to have mixed feelings about bun as the creator of the language.
You spend 10 years of your time making a language, and one of the most prominent projects that uses it does it in a nasty and sloppy way. You try to help, but your advice gets ignored.
You make a whole language about improving software quality, only to be associated with a project that doesn't care about it.
For once I do appreciate that somebody is willing to have the guts to say what they think. The bun rust rewrite article said no words about the tradeoffs of moving to Rust (compilation times?), and I agree with the false dichotomy presented. How do we know that most bun bugs were not created because of slop / AI usage / stubbornness?
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
We must not let the shareholder value fall /s
You can either do local optimization - a single individual moving as fast and as hard as humanly possible, or global optimization - a team working together and amplifying each other's efforts to produce something that is greater than the sum of its parts.
The fact is, most people don’t have taste and haven’t had taste, LLMs just amplify what was already there. Good taste is good taste, slop is slop, and shit is shit.
Glad you guys were able to go your separate ways.
Either this ideology helps Zig position itself as a hand crafted language. Or this ideology is self defeating.
> He gets to live out his productivity fantasy fever dream, he's probably already super wealthy. He has minor tech celebrity status.
Looks like a backhanded personal comment? This didn't need to be in the article.
> It's almost like the marketing department of a trillion dollar company has a lot of money riding on this article.
> The post claims they were fuzzing their Zig code, while during our calls the whole Bun team told us that they were not fuzzing anything. This appears to be an outright fabrication.
Smells like a lot of bias coming in. The fuzzing part was not a fabrication.
> sufficient to catch bugs in 1 million lines of unreviewed slop?
I don't understand how even today software engineers are calling LLM written code slop? It's objectively much better than what most of the engineers write, and it's not stopping to get better. If you still believe this, try out any frontier model on any work that you are currently doing, that should change your mind. There still are like 1% of cases where LLMs are not that good, but even there almost all of the time the issue is in the engineer's steering, not the LLM.
> There's a dichotomy being presented here where you have to either choose a "style guide" or a programming language feature in order to avoid bugs.
He says this, but doesn't give the steps to solve this?
> we all felt at ZSF that Bun was a net liability. > "It Tastes Like It's Not My Problem Anymore" > influx of tasteless AI enthusists into Zig communities
This may be the stance that encouraged Bun to leave.
I don't understand how anyone can say this with a straight face. And how you automatically assume that anyone who has this opinion, is just doing it wrong by not using the latest models.
"The significant percentage of people who are pointing out problems and issues with LLM-generated code are all just holding the tool wrong!"
While of course skill and experience plays a part, if so many people are trying to get good output from a tool and failing - the problem isn't with all of the people, the problem is with the tool.
https://www.reddit.com/r/LinusTechTips/comments/1uy2kq0/linu...
y’all clearly are not acquainted with some of the things Linus has said on the LKML
Rewriting Bun in Rust
I'd like to know what the poor code quality in Bun looks like. Does anybody have concrete examples?
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.
If you want mutable data structures, I wouldn't point you to Haskell.
There's also a universe where he could've written it Linux Torvald-style and still come across as passionate but justified.
This is the same kind of insecure nonsense that is busily destroying WordPress.
There is no coming back from this. Zig is a dead man walking.
Zig already suffered from:
incomplete after 8 years still-shifting language APIs increasingly erratic behavior from project founder / lead: "no AI!" "we hate Microsoft!"
Who now is going to trust THAT to build significant projects on?
I'm sorry, Andrew, "chill people doing cool things" is not going to convince anyone to build half million line projects using Zig.
All evidence is that your intention is not to create a stable, useful programming language that allows users to express code in useful ways other languages can't. (The only reason to create a new programming language).
It seems to be about ego for you, and what is clear from this post, is that your ego was bruised by Bun moving to Rust; and that you are willing to act in ways harmful to yourself, your credibility, your project, AND therefore to ALL OF YOUR PROJECT'S USERS.
When your updated post mentions your "resentment", I thought you had understood your error. But no, you're compounding it. You claim to have resentment becuase Jarred "make you look bad"? You make yourself look bad all by yourself.
Here's the real likely resentment: Jarred and you started around the same time. Jarred has had an incredibly successful, beneficial turn of events - and you have not.
You are clearly resentful over Jarred's success.
Jarred bent over backwards in his post not to throw you under the bus, but the truth seems to be that he got sick of your sh!t. This isn't about a single blog post by you - though that was truly demented. It's clear this is part of a pattern of self-destructive behavior that's been going on a long time.
And here's the real kicker:
Whereas in the past, as Jarred notes, changing the language a project was written in was something you just didn't do past a certain point. But now, it's possible to do it, and do it well, with tools available to everyone.
After this act of self-sabotage, if there is a single major project still in Zig at the end of 2026, I will be very surprised. If you ever again get a major donation from any source, I will be very surprised.
(update: I've never used Zig, Rust, or Bun, so I have no dog at all in this hunt)
however, i am glad this blog post exists, even though this is coming from reading the edited version. it might be down to ignorance, but the writeup contradicts the clarification in the bottom. it does seem like the series of events have had a personal impact to the writer. i am happy people can express themselves at their own leisure, and choose how to do so.
to those virtue signalling on language features or personal beliefs, go on a hike! the vast majority of projects that touch our lives are run by opinionated people, whether community-driven or from a for-profit. the more that is shared here about this, the more this seems like a byproduct of this reality.
The pushback is warranted and on point, especially the technical points. It has taken a suspicious amount of time to produce the fabled blog post which I don't think states almost any new information beyond what Jarred has already shared on twitter. The one (and very interesting) exception is the theoretical price of the rewrite via the API pricing.
Sorry, this is wrong. Not relating Bun project.
https://web.archive.org/web/20260204011603/https://ziglang.o...
> Microslop Windows provides a large ABI surface area for doing things in the kernel. However, not all ABIs are created equally. As Casey Muratori points out in his lecture, The Only Unbreakable Law, the organizational structure of software development teams has a direct impact on the structure of the software they produce.
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?
Why don't YOU spend the engineering resources to add RAII and a borrow checker instead of blaming your users?
Dunking on someone for not having a degree? Seriously? Low blow.
From someone with a degree they mean nothing and anyone who looks down on people for not having one reveals a lot about their character.
This is where I stopped reading.
JavaScript is not the most popular programming language in the world. It’s not even in the top five.
The man may need some time to decompress, away from social media.
> 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
Andrew is Zig's leader, and he is defending himself and his project from what he perceived as damaging. Jarred did the same.
We are human beings. We have interpersonal relationships. We enter relationships, and we also leave them.
Also, calling this "drama" in a pejorative way is a simplistic, head in the sand attitude. Again, we are human beings, and our interactions are going to involve drama.
The tone used in his personal blog was personal. I would have expected a more professional one if the post had been on sites related to the ZSF. Both would have had the same goal: to express the feeling of a partnership that ended on bad terms.
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
Jared seems like the typical SV tech bro who deserves this type of personal disrespect, but of course 90% of people on this site would love to him and wouldn’t understand.
so it seems Kelly isn't willing to cede the informational space and replies with his viewpoint, and is willing to take the flack, because everybody is trained to root for the ruthless billionaire mentality, and thinks like a truck. he also has the responsibility to show to his own team, who he is, and where he is leading them.
so i applaud him. he adds a perspective that needs to be said out loud. it's like the wise elder vs the lobbyists, or vs russian bots. money engages in reality distortional warfare all the time, and we are left in the dust, defending ourselves, as our lives are being depreciated. thanks, but no thanks for the coal rolling.
so in the long term view this is about society not siding with (a promise of) merit, but instead assholes have the right of way, socially. it's about being an orphan, while the assholes are the children. it's about society not loving all its children equally, structurally, so Kelley is left out in the cold and has to value himself.
he is moving sideways in society, and gets treated like a frog crossing the road. in a less beasty society he would be paid by tax payers money, because he is creating infrastructure the future can be built on. instead it goes to [... i'm not even going there]. he risks never getting paid, and will surely not be paid anywhere near the value he is adding.
why? because going after venture capital would corrupt the goals of the project. that has nothing to do with him making the "wrong decision". it is instead society's decision to bestow all rewards on those that didn't work for them.., and the self-reinforcement by which those that do reap the rewards, work so hard to keep them. they take the corruption of the system as their motivation, and work hard to keep it..
it's not you can't be rich, good for you, it's that society has no _interest_ in _you_ getting rich, and should be against you when you work to manipulate and fraud your way into wealth, _and_ the effort to make that behavior accepted practice. it is a class working to put itself above others, like kings have been doing throughout the centuries, the common people like Kelley be damned. it is anti-democracy cloaked in the clothes of democracy, it's coal-rolling democracy.
hence the stinky manager comment. stinky managers accept they are stinky. they have other things to worry about. so Kelley is just expressing his viewpoint and the words he uses must be read the way _he_ needs them to be read. that's where most stumble and fall. the point is they are never punished for doing so and instead practice mob mentality, punishing the good. society's self-cleaning mechanism is failing and you see that play out in the world right now, most notably in the USA.
the US of Assholes, a mob. that makes Kelley like a jew in nazi Germany. so it may be worth saying: get out while you can. you don't want to bet on being a friend of the mob, when.. they think they are the saints, and doing good for the country.
Kelley, look at the face of the mob in the oval office. if you see a shithole, consider you may want to choose against what the USA is about to become, Musk's backyard, which he has to politically subject, to protect his interests. come work for an asshole free One Africa, for the freedom to love, or become a footnote in the USA story, a sacrifice for its tech-inflated ego, which it will "lovingly" accept.
No one is throwing chicken tendies over it. Countless other examples. Big deal
I don’t use Zig and I never will - the gushing fan base that has top-loaded fuzzy feels over technical superiority has made that certain, but this is not even a language to language debate. This is just sour grapes. But it sounds like even the people here now don’t want to use Zig due to how it makes them feel. Oh well.
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 points seem valid, however, and I will likely steer clear of Bun.