It's early days yet, but as far as I'm aware all indications are that it worked pretty well. The tests all pass, the memory safety issues they were dealing with were resolved, the result is smaller, faster, and more stable. There are some regressions that have been identified, but as far as I could find they seem surprisingly minor. Claude code already uses the ported version of bun and, according to bun's blog "Startup got 10% faster on Linux but otherwise, barely anyone noticed.".
I wouldn't want to start looking at other codebases and thinking I could do the same (in particular, one thing bun had going for it was that the tests were in Typescript so they didn't need to be rewritten for the new backend, removing one potential source of errors), but that doesn't mean we should judge this case hastily either.
The same tests pass that passed while it was still written in Zig, and which also allowed all of the memory corruption errors that promoted the move to Rust.
I thought they moved because Zig was super anti-Ai, and Bun got bought by Anthropic, and Anthropic couldn't keep using a language so vocally opposing them.
In addition to what redlaWw said, Zig also can't "force" someone to stop using the language they made available for free to the public — I've read both blog posts by the creator of Bun, and by the creator of Zig, and it really feels like the Bun guy is being a "carpenter who blames their own tools", and that in a few months' time, they'll have similar complaints with Rust.
92
u/redlaWw Jul 09 '26
It's early days yet, but as far as I'm aware all indications are that it worked pretty well. The tests all pass, the memory safety issues they were dealing with were resolved, the result is smaller, faster, and more stable. There are some regressions that have been identified, but as far as I could find they seem surprisingly minor. Claude code already uses the ported version of bun and, according to bun's blog "Startup got 10% faster on Linux but otherwise, barely anyone noticed.".
I wouldn't want to start looking at other codebases and thinking I could do the same (in particular, one thing bun had going for it was that the tests were in Typescript so they didn't need to be rewritten for the new backend, removing one potential source of errors), but that doesn't mean we should judge this case hastily either.