Back to Podcast Digest
Theo - t3.gg27m

I wish this was clickbait

TL;DR

  • Bun’s biggest problem right now is trust, not speed — Theo says Dax from Open Code is moving from Bun to Node.js less because of benchmarks and more because Bun’s future under Anthropic feels uncertain, especially with Windows instability and Electron/embedability concerns.

  • The Rust rewrite is real, fast, and probably shipping — Jared says 99.8% of Bun’s existing tests already pass on Linux x64 in the Rust port, started six days earlier, and Theo would be surprised if this doesn’t merge soon after Bun 1.3.14.

  • This isn’t a clean Rust rewrite; it’s basically Zig translated into Rust — Theo’s central concern is that the port keeps the same architecture and leans on Rust’s unsafe heavily, with about 13,044 unsafe occurrences in roughly 681,000 lines of Rust, compared with ~73 in uv’s 350,000-line codebase.

  • Anthropic’s ownership changes Bun’s incentives — Theo argues the team will naturally prioritize bugs that affect Claude Code, which ships Bun to millions, while monorepo/package-management issues affecting broader users may keep getting deprioritized.

  • AI made a once-unthinkable migration suddenly plausible — Theo treats the Bun rewrite as one of the clearest public examples of using agents for a 960,000-line language migration, similar in spirit to Microsoft’s TypeScript-to-Go effort but on a much faster timeline.

  • The rewrite could improve stability while creating a fresh backlog of unknown bugs — Theo likes Rust’s memory-safety tooling and believes Jared’s motives are sincere, but worries they may be trading roughly 200 known issues for a much larger set of unknown ones that only users will discover over time.

The Breakdown

Bun went from beloved underdog to worrying dependency

Theo opens by saying Bun is “near and dear” to him — he’s known Jared for years, supported the project publicly, and even spoke at Bun’s last event before the Anthropic acquisition. But lately it’s been harder to use, and he points to Dax from Open Code moving back to Node.js as the clearest signal that this isn’t just random complaining.

Why people are bailing: Windows, Electron, and future uncertainty

Theo runs through Dax’s reasons: Bun is still painful on Windows, Electron embedding is easier with Node, and Open Code doesn’t gain much from Bun’s runtime speed anyway. His point is blunt: going from 20k requests/sec on Node to 60k on Bun matters for high-throughput servers, not for local coding agents — if that perf delta matters there, “you wrote shitty code.”

The Zig problem underneath Bun’s problems

Before even getting to Anthropic, Theo says Bun has always carried Zig baggage: powerful compile-time tricks, weak memory safety, and awkward cross-platform behavior. He calls Zig magical but foot-gunny, and says Bun’s rough edges — especially memory issues and Windows pain — are exactly what you’d expect when a Linux-first, low-level system gets pushed everywhere.

Anthropic made Bun safer financially — and scarier strategically

Theo cites William Johnson’s post to show the contradiction: Anthropic owning Bun should mean better funding and stronger incentives because Claude Code depends on it. But Theo says Claude Code itself has visibly degraded, referencing Anthropic’s postmortem about reduced reasoning effort, stale sessions, and prompt changes, plus the “open claw mess,” which makes him worry Bun could inherit the same product culture.

The rewrite risk: bugs now get prioritized by Claude Code’s needs

This is Theo’s real fear. He sketches it as a split: today Bun has a smaller set of known bugs, and the ones hurting Claude Code get fixed first; after a rewrite, that could become a much larger bug surface, and anything outside Anthropic’s direct path — like package manager and monorepo edge cases — could languish even longer.

Jared’s pitch: same codebase, better tools, fewer memory nightmares

Theo gives Jared real credit here. Jared says the Rust port is effectively the same codebase, just with lifetimes, destructors, and compiler-enforced visibility into dangerous areas, because all the ugly parts now have unsafe stamped on them. Theo reads that as a very human engineering moment: when you’re no longer deep in every low-level detail and are managing people and agents, you want the language to catch more mistakes for you.

The part that made Theo flinch: 13,044 uses of unsafe

Theo compares Bun’s rewrite to uv, the Rust Python tooling project by Charlie Marsh’s team: uv has about 350,000 lines of Rust and roughly 73 real unsafe { uses. Bun’s port, by contrast, has around 681,000 lines of Rust and 13,044 unsafe calls, which leads Theo to say they’re “not really writing Rust” so much as “writing C++ with Rust syntax.”

Why Theo still thinks this could matter a lot

He closes in a surprisingly balanced place: skeptical about the code quality, worried about incentive drift, but genuinely impressed by the ambition. If Bun really changes languages in under a month with heavy AI help, Theo sees it as one of the most public, consequential examples yet of agents doing a massive real-world migration — messy, risky, and absolutely worth watching.

Share