Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

64% Positive

Analyzed from 12225 words in the discussion.

Trending Topics

#code#bun#rust#claude#don#language#zig#rewrite#more#why

Discussion (568 Comments)Read Original on HackerNews

mrothrocabout 9 hours ago
Drilling into the original article where Jarred explained the reasoning behind the change, It's pretty clear that under zig the team was doing things by hand that are automatic in rust.

Humans and agents share one thing: they are both non-deterministic. He talks about the issue of tracking memory lifecycles manually in zig so it can be explicitly freed. As expected, this leads to a long list of bugs where people missed things.

Rust does this automatically. It removes an entire class of errors from his backlog. From an engineering management perspective, this looks like a pretty good trade.

The bonus here is that compiler errors are exactly the kind of deterministic guardrail you need to put around coding agents. Claude works really well if you give it a way to test for correctness and "make it compile" is a pretty good target.

There's a general version of this: the artifact you expose plus the test you run on it. Deterministic tests turn stochastic output into a hard guarantee. Wrote it up here if useful: https://michael.roth.rocks/blog/verification-surface/

awesanabout 9 hours ago
Zig (like C) is simply not a good language to use if you're going to do many small allocations with uncorrelated lifetimes. To write robust Zig (or C) code, you must manage lifetimes yourself, for example by grouping allocations on an arena or by having fixed buffers of "things".

You can just do that, and then Zig is really no less robust than Rust. But if you want to do "managed language" style allocation patterns (like what llms generally prefer), it doesn't make sense to use it.

hugmynutusabout 8 hours ago
This reads like cope because you're re-inventing RAII from first principles.

I cannot take this seriously as tutorials on robust Zig Allocation Pools will store a deinit method for each item within the pool, so when the pool deinits, all internal objects can be deinit'd.

That is just RAII & dtors from first principles, except with extra overhead of manually storing fat pointers yourself (and the bugs that come with this). Instead of using a language with builtin guarantees & optimizations around handling this so your object pools don't need to carry around a bunch of function pointers. C++ has aggressive de-virtualization passes so at runtime a lot of the 'complex object hierarchies' can be flattened to purely static function calls.

jstimpfleabout 7 hours ago
I've argued elsewhere some things that are wrong with RAII and C++ objects in general.

Here I would just like to mention that if you have to rely on "de-virtualization" passes, you're in a miserable situation architecturally. If you have code where the overhead of virtual function calls might be too much to pay, don't do virtual functions then. End of story.

To deconstruct a pool of objects, I don't see what should ever be wrong with a function pointer. The overhead of loading the function pointer will get divided by the number of objects being deconstructed. Care to explain what's the issue here?

BearOsoabout 8 hours ago
> Rust does this automatically.

A garbage collected language does this automatically. Rust still requires thinking about and tracking memory lifecycles, but the borrow checker will complain and keep you from doing it wrong. That's why LLMs like Rust. It gives immediate feedback on what to fix. By-default constant reference parameters helps prevent major performance problems.

gcr1 minute ago
It’s my understanding that bun was ported to unsafe rust, so even these gains would require additional effort on the team’s part, right?
Diggsey23 minutes ago
You're getting confused between lifetimes (the static analysis that prevents use after free and similar errors) and lifecycles (more commonly discussed under the heading of ownership) which determines when objects (and thus memory) are allocated and deallocated.

Ownership is automatic. You don't have to explicitly drop things when they go out of scope. (although the responsibility for that is split between the compiler and the library code).

Lifetimes are not automatic, but also have no effect on memory allocation. They are purely a static analysis path and you can make a functioning rust compiler that completely ignores lifetimes.

gchamonliveabout 8 hours ago
> Rust does this automatically. It removes an entire class of errors from his backlog.

Even with the huge amount of "unsafe" rust currently in bun? https://news.ycombinator.com/item?id=48967630

zamadatixabout 3 hours ago
As opposed to every commit abd line of code being unsafe? They use a lot of C/C++ libraries with their own code so unsafe isn't even a a problem in most places they use it.
theshrike79about 6 hours ago
You think it’ll all stay there?

Of course they’ll iterate and remove the unsafe bits which were necessary for the transition

bluegatty34 minutes ago
Good thing there are tons of languages that do that out of the box, and which are frankly quite fast.
portlyabout 5 hours ago
LLMs catch memory bugs quite easily in my experience.

All of this is just a (succesful) marketing stunt by Anthropic.

latortugaabout 8 hours ago
I seem to recall this Rust rewrite is all "unsafe" meaning it really doesn't automatically eliminate those issues.
mrothrocabout 8 hours ago
Relevant passage from Jarred's post:

"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. I expect this number to go down over time as we refactor from a faithful Zig port (which had no greppable unsafe keyword) to idiomatic Rust, but we are going to continue using C & C++ libraries like JavaScriptCore so it will always have more unsafe than pure Rust projects."

gabrieledarrigoabout 16 hours ago
Bah.

Personally my take on the entire affair is quite negative, whatever Jarred or Simonw says about it.

I think Bun owned by Anthropic and the entire rewrite with AI is not the real point (even if it's quite interesting, though).

My take is that Jarred, and Bun,didn't demonstrate a serious, adult approach, from "this is my branch, you are overreacting" message to just proceeding with a 1mil+ PR merged in less than month.

The communication is the issue, and it was handled very badly, in a way that impacted trust and divisions.

Was it so difficult to adopt the approach that the TS team adopted for 7.0?

baqabout 16 hours ago
I guess the point is none of it matters, CC users didn't notice or don't care except an exceptionally small minority.
cushabout 2 hours ago
There's literally nothing stopping anyone from continuing the Zig version if they want to
conartist6about 16 hours ago
Haha TS7 is the next biggest example of, "Let's just do a line by line port to another language instead of seriously examining our architecture"
raincoleabout 7 hours ago
This is the correct approach (I dare to say the only correct approach) when porting to another language. You can examining the architecture later.
dirtbag__dadabout 2 hours ago
If you can lock down a test suite that ensures parity, then who cares what shape the lift ultimately looks like.

A full rewrite in different language that fails to be idiomatic is a step backward operationally, even if you stand to gain on issues the new language just eats for free

zarzavatabout 15 hours ago
Indeed as much I dislike the approach Bun took, at least the port appears to be working. TS7 is going to cause problems for downstream users because Go is the wrong language to use for something that has to run in WASM.
nicceabout 14 hours ago
> TS7 is going to cause problems for downstream users because Go is the wrong language to use for something that has to run in WASM.

Is there a huge need to run that typechecking on browsers?

weakfishabout 12 hours ago
Maybe I’m taking crazy pills, but I’m still stuck on “why the hell does a TUI need to run in terminal React by way of JavaScript”

The fact that Anthropic felt the need to buy a runtime so they could make their TUI better speaks more to the quality of engineering than anything else IMO.

If rewrites are so easy, why not rewrite CC in a native language? Would’ve been a hell of a lot cheaper.

switzabout 11 hours ago
It largely works and it's a massive business success. This is the classic engineer asking the 'why this technology?' to what amounts to a business question.

They chose it early on, it works, and it makes obscene amounts of revenue. End of story. That doesn't mean it was the "greatest" choice, or has a perfect technical architecture.

Rewrites are never easy, even the bun rewrite. But a non-UI developer tool with a rigid API surface contract (and associated tests) will always be easier to trust after a rewrite than a partially tested UI tool with ambiguous functionality.

coldteaabout 11 hours ago
>It largely works and it's a massive business success. This is the classic engineer asking the 'why this technology?' to what amounts to a business question.

Your counter argument would be valid for a 2000 or a 2020 business decision about some tech stack.

But the whole point of their product is that it supposedly nullifies such "business" concerns around the use of technology, by making it cheap and fast to build whatever you like automatically.

That they wont, or worse, couldn't, speaks against that.

pdimitarabout 10 hours ago
> But the whole point of their product is that it supposedly nullifies such "business" concerns around the use of technology, by making it cheap and fast to build whatever you like automatically.

This is a spectrum, it's not just 0% vs 100%. Even Fable frakked up a few things really badly in my professional work (though to its credit after a very detailed 2h chat it self-corrected and fixed all the blunders).

I would also challenge "fast" -- Fable (and I assume Mythos) are wicked fast and efficient and even they can't compensate for f.ex. slow recompilations or test suite reruns or security scans, linters etc.

Reminder that the Bun's Zig-to-Rust rewrite took 11 days with dozens of agents working 24/7 and the author put the cost they'd pay (if they had to pay) at about $168k.

weakfishabout 10 hours ago
Yeah, this is what I’m trying to get at.

There’s two arguments in competition:

1. LLMs make it cheap (in the time sense) and easy to build

2. Rewrites and/or writing something in a native app or program is harder and more time consuming

I think I am willing to take it as an axiom that a native version of CC would be superior from a user perspective. Performance, etc.

I just don’t see how one can say that building things reliably good is easy now when the company providing these tools can’t even do it well.

KronisLVabout 10 hours ago
> by making it cheap and fast to build whatever you like automatically.

Cheaper, but not free (if you don't buy into the marketing promises too much). The bigger the project, the bigger the cost, even with a discount.

At the same time, the early versions weren't very good and you can be sure that any rewrite will also need to be similarly iterated upon until it is also good enough and polished.

If you do that and don't spend enough effort on making it be something polished --> your competitors have a better product and you lose.

If you pause feature development to give enough effort to the initiative, you don't get to add new features quickly enough --> your competitors have a better product and you lose.

Maybe their priorities lay elsewhere, like how I've noticed that the desktop app version of Claude Code has gotten both faster (no 2-4 second lag when switching conversations), more stable and usable over time, to where I enjoy using the models because of it, not in spite of it (though not that they haven't had bumps along the way, like that one cache invalidation issue, or how people didn't like the auto accept timeout thing). I don't doubt that you can get pretty far with gradual patches and improvements, instead of only big rewrites.

Honestly it's really cool for me to see Kimi having their own CLI too, same with OpenCode, Pi, Hermes (well more of an agent than just a coding harness but you get the idea) - there's so many competing solutions out there, each good or bad in unique ways.

Just wish we'd see similarly many GUI solutions, for now OpenCode GUI seems like the one I've settled on (cross platform and supports most models), though it's not exactly ideal either (feels a bit barebones, especially in regards to sub-tasks and progress/plan tracking, even ZCode seems a bit better in that regard, it was actually surprisingly good after they pushed out some updates).

madeofpalkabout 7 hours ago
How much extra money do you think they would make if Claude Code wasn’t JavaScript?
lacy_tinpotabout 7 hours ago
>making it cheap and fast to build whatever you like automatically

This can be true, while "nullifies such "business" concerns" can be false. Both are not dependent on each other.

Automation doesn't "nullify business concerns", it just changes them.

harrisonjacksonabout 9 hours ago
By the same argument, why does it matter from the technology stack side? It doesn't just nullify the business concerns - it largely nullifies the tech stack concerns. Your preference doesn't matter if you aren't touching the code and the product works for your user base.
jstummbilligabout 6 hours ago
> But the whole point of their product is that it supposedly nullifies such "business" concerns around the use of technology, by making it cheap and fast to build whatever you like automatically.

Eventually? I am sure they would agree. Currently it's you (and lots of people like you) who are doing the supposing, not Anthropic.

yojoabout 9 hours ago
I have been working all day every day in Claude. I loathe their bug-ridden UI. Every release is a new crop of bugs, sometimes the old ones get fixed, usually not.

Any kind of scrolling back, copying text, using their menu system - basically anything that isn’t typing characters has had/still has unaddressed bugs.

OpenAI shipped a competitive model and I’m over in Codex now. I have yet to hit a bug.

If you’re holding the SOTA crown, people will put up with your buggy mess. As soon as that crown slips your pile of trash becomes a huge liability.

cvadict12 minutes ago
> I loathe their bug-ridden UI.

So weird that the same exact people telling you that programming careers are now obsolete are the same group who haven't been able to fix screen flickering bugs for like a year...

BoppreHabout 5 hours ago
> basically anything that isn’t typing characters has had/still has unaddressed bugs.

Oh, that's buggy too. I just tried Claude Code on win10 powershell, and the first typed character goes in the wrong spot and can't be backspaced.

It is by far the the least reliable program on my machine, and every time I have to interact with it I feel like walking in eggshells.

yojoabout 9 hours ago
Oh, and the memory use! I run a lot of concurrent sessions. 3 gigs for a terminal window is ludicrous.
neutronicusabout 2 hours ago
The vim mode in that text box was a mess for sure
tripleeeabout 11 hours ago
They succeeded in spite of their tech choices. Their model outshone it, which is an extremely rare thing to happen and not something they could've counted on. In any other timeline they could've/would've been hurt by their choices.

It's like "why did you go all in on buying scamcoin 3.0 as your investment strategy?" -- "I 5xed my money! End of story! It was fine!"

benoauabout 11 hours ago
> They succeeded in spite of their tech choices.

Or those choices just don't matter, it's fundamentally just "tabs vs spaces".

enraged_camelabout 11 hours ago
>> They succeeded in spite of their tech choices.

It is rarely the case that technology choice is the make-or-break when it comes to whether a product is successful and achieves widespread adoption. Some choices are less ideal than others, but at the end of the day if you manage to make something that people want, the rest won't matter much.

anamexisabout 11 hours ago
What do you mean in spite of their tech choices? When have the tech choices ever been an issue in the lifespan of Claude Code? From where I sit, it seems like their tech choices enabled them to create an industry-defining product.
galangalalgolabout 11 hours ago
The criticism didn't appear to me to be that the solution didn't work, just that many of the working solutions we are selecting are dangerously overcomplicated due to shortsighted decisionmaking. The benefits of throwing redundant stacks of abstraction atop each other in terms of time to market are questionable, and obviously absent in every other metric.
bwfan123about 11 hours ago
So, you have a vibe-coded TUI which happens to work, and then, as a workaround you vibe-translate its engine to make it more performant. Where does that leave you ? Basically, fully dependent on AI to fix whatever breaks. Workaround on a workaround is the way I see it, and it aligns with the AI design mentality in general. For a variety of usecases, this might still be a win in terms of overall cost. But, for software that is intended to be built to last, I dont see this approach working out.
weakfishabout 11 hours ago
Correct

And the question of “if AI is so amazing, shouldn’t it enable easy development of a native TUI even if JS is easier at first?”

Don’t get me wrong I find great value in coding agents daily. Just finding the hype cycle tiring.

losvedirabout 7 hours ago
This reply makes no sense in this context, though. Sure, it exploded in popularity based on whatever random tech choices were made. But now, when apparently they're deciding there's a problem there, why unleash $150k of tokens to rewrite a JS runtime wrapper from Zig to a million lines of rust, rather than simply rewrite Claude Code itself to rust?
galaxyLogicabout 2 hours ago
This speaks for the benefits of JavaScript runtimes like Bun and Node.js. JavaScript is a dynamically typed language which makes it a good choice for explorative programming. It is a Lisp in sheeps' clothing.

Programs which need more stability and performance than exploration are better done in statically typed languages like Rust. Therefore Bun is a platform for JavaScript programming, but itself is written in Zig or Rust.

joluxabout 7 hours ago
They probably should rewrite it in Rust, but also, I think the Bun guy wanted to rewrite it in Rust because he thinks Rust is a better choice for Bun, independent of Bun being used by Claude Code.
adastra22about 9 hours ago
Claude code still can’t handle scrolling history without corruption. It is embarrassingly broken.
tacitusarcabout 6 hours ago
This is the “eating yogurt with a hammer” argument. Yes, of course you can do that. Yes, the yogurt gets eaten. It’s just… you see someone eating yogurt with a hammer and it’s hard not to wonder wtf is going on.
geraneumabout 7 hours ago
> It largely works and it's a massive business success.

The engineer is suggesting that it could be done cheaper and maybe with better outcome. Ironically, this is a classic business case.

dd8601fnabout 7 hours ago
...while proving their technology has finally reduced these questions down to what's best, instead of "how much effort will it take to be good enough".

If you have unlimited access to the magical development tool, then why would you not?

But they haven't.

solid_fuelabout 7 hours ago
> It largely works and it's a massive business success.

You can make anything work when you have enough money to buy and radically change the entire runtime you’re relying on.

One must suspect that if they did not have insane amounts of money to burn, they could have tried other approaches to fixing the problems. Maybe engineering, perhaps.

burner54828182about 11 hours ago
> “It largely works”

A ringing endorsement!

vips7Labout 5 hours ago
Any choice would have made obscene money in this market. It doesn’t make it a good choice.
groundzeros2015about 9 hours ago
As an industry we are responsible for making our part good. So yes a business can succeed in spite of bad tech choices, but that doesn’t make it good tech.
behnamohabout 2 hours ago
No, it's because they wanted a unified pipeline in claude code, claude app, and their website. All of them use more or less the same claude features (claude code has artifacts, claude website has "Ask User a Question" tool, etc.).

Much less fragmented compared to "write the app 3 times in 3 different languages".

femiagbabiakaabout 8 hours ago
It doesn’t work, it performs horribly and is full of bugs. Serious people use open harnesses.
realusernameabout 7 hours ago
> It largely works and it's a massive business success.

I'd argue these tech companies got popular because they have good models, nothing else.

Even OpenAI took two years to fix basic chat scrolling.

DoesntMatter22about 5 hours ago
This is far less so in this case because this is thier hot path. Everything runs through it and tens of billions in revenue depends on it. It needs to be as fast and solid as possible
wonnageabout 6 hours ago
This is a useless post-hoc rationalization. "It worked out, so it doesn't matter". You're trying to galaxy brain yourself into ignoring the obvious conclusion.

The point is that if you were starting a new TUI LLM harness today, you would basically use CC's architectural decisions as a guide for what not to do.

pjmlpabout 10 hours ago
So Claude isn't great for everything?!?
reinitctxoffsetabout 8 hours ago
I think it makes sense that when you've outlawed competition for many/most users of your product's matching service that you would cheap out on it if you were maximally extractive and took no pride in your work, sure.

But the "coding is mostly solved" narrative kinda doesn't match right? If good, correct, high-performance software is like, free now? Wouldn't you want it to be slick as hell, really reliable, all that? Even a little breakage costs a lot of money at that scale and pricing, it would be better than a wash if you put the magic code thing on the case.

"Claude. Do all employee work. Make no mistake. Notify in slack when revenue is double."

ljmabout 12 hours ago
I never knew that running an interactive program in my terminal would absolutely rinse my CPU and battery but that's what Claude, OpenCode and Ghostty have colluded to achieve. Even when the laptop is asleep overnight it's practically melting.

I'm sure there was some logical reason for shoehorning web technology into this stack given that we have a good 40 years or so of experience with interactive terminal programs that use curses/ncurses, alongside emacs, vim, almost the entirety of MS-DOS, and so on.

vmg12about 10 hours ago
The fundamental problem with all Js based apps is how they are very single threaded.

With js you get 1 thread at 100% utilization. Power usage and heat scale non-linearly with cpu utilization and 100% utilization on a single threaded js app means you will have ui lag. Other languages like golang would split work across 8 threads and have 8 threads at 20% utilization and this would result in less power usage. Claude Code would have been better off performance wise being an electron app because it would be offloading rendering to the browser and gpu.

Also, the architecture of Open Code is actually a lot better here than Claude Code. ClaudeCode does everything, including rendering in a single thread and it's all in js. OpenCode has a zig based tui renderer it offloads that work onto.

But I will also say these coding agent tuis do get unfairly maligned because they launch subprocesses and those subprocesses tend to be expensive. If you are using Rust analyzer with claude code, it's rust analyzer that's causing the majority of your problems.

wild_eggabout 8 hours ago
No, the fundamental problem of these apps is that they are, for no reason, pretending they need a high powered game engine rendering loop. They don't. It's a text printout of history with some hotkeys for mode switches and such. "rendering in a single thread" should never be an issue because it should never be "rendering". It needs to stream text to stdout. That's been a solved problem for 50 years and now it takes 2GB of memory to be done poorly with broken scrollback.
cozzydabout 9 hours ago
I'm not concerned with CPU use/wakeups while actively using it, but with it sitting idle doing nothing.
skydhashabout 9 hours ago
That’s not really a big issue. In major OS like the BSD, SMP implementation are not that old. If we can have a full OS running in single core mode, we can have an application being performant too. I’m currently running OpenBSD on 4 cores and it’s basically 99% idle.

Bad coding is just bad coding.

senderistaabout 11 hours ago
Why are you implicating ghostty? Have you compared its CPU usage to any other terminal?
ljmabout 11 hours ago
Of course I have. If I see ghostty constantly consuming the most energy and helping reduce my battery life to barely 2 or 3 hours, the first thing I'm going to do is switch terminal to see if I can improve that situation. The built in terminal and WezTerm have been fine and I've had much more reasonable battery life since.

This does not even speak to it pegging my CPU and keeping the fans running on full blast even when the laptop is supposed to be idle overnight.

agrippanuxabout 11 hours ago
I don't know if its still the case anymore since 1.3 but Ghostty did have a documented issue with Claude causing resource issues.
tdhz77about 11 hours ago
I think the author is saying everything that touches llm.
myaccountonhnabout 11 hours ago
Its so wasteful, but that tracks with the modus operandi of AI companies.
onlyrealcuzzoabout 1 hour ago
> If rewrites are so easy, why not rewrite CC in a native language? Would’ve been a hell of a lot cheaper.

It was unpleasantly surprised when I learned the hard way that LLMs are not much better at translating than writing from scratch.

The more you look into how they work, the more you see that it doesn't really give them a huge advantage, if the classes are big enough. You can tell them to break each function up and translate them one-by-one, but the errors compound, you can't test most of it until you have a lot done, and in the end, it really isn't much faster (and sometimes it seems to be a lot slower) then just telling them to start over from scratch.

The downside is... If you have a system that already works, you don't want to start from scratch and test everything all over again...

rafaelmnabout 7 hours ago
I recently saw a blog post [1] about a famous Haskel shop moving away from Haskell to Python because the iteration speed with LLMs was just that much better. There is so much React in training data, TS compile times are minimal compared to Rust and similar.

I suspect user facing/fast moving code (UX layer) will move to dynamic systems with fast iteration times. Infra layer will move towards safe systems level environments like Rust. I'm not sure where Java/C# lands in all of this - it's kind of the middle ground between these two worlds but the tradeoffs change drastically with LLMs - my gut feeling says that TS/Python is good enough for UX work and Rust is better for systems work so it gets less popular going forward.

[1] https://avi.press/posts/2026-07-10-after-7-years-in-producti...

kccqzyabout 7 hours ago
That blog post doesn’t make sense to me at all. The author is going from full modern Haskell (since he mentioned Servant and Beam, you could tell almost every file uses dozens of GHC extensions beyond what Haskell2010 gives you) to Python with dynamic types. He could instead rewrite the Haskell to use less modern type system features and get so much faster compilation speed.

Also GHC has an interpreter. It powers the REPL. No need to compile everything if you’re just experimenting. I do find that in the Haskell world the REPL is criminally underused compared to Python.

And the rest of your comment doesn’t make sense; this shop is rewriting their infra (not UI) from Haskell to Python.

frollogastonabout 4 hours ago
Python was faster to iterate on than Haskell even before LLMs
jmspringabout 2 hours ago
I think Moore's Law and related have made programming sloppy. AI is building on that. There was a time where accounting for memory, footprint, stability, and speed mattered. Your point shows we are well passed that aside from certain areas.

Heck, a buddy and I once chatted about the likelihood of k8s running as the control plane in a prototype autonomous vehicle.

top/btop/htop on the mac are always fun to run and see what's up.

dmixabout 12 hours ago
Codex CLI and Grok Build are both in Rust. OpenAI’s web still use react. Previously their CLI was React Ink until they ported most of it to Rust
abc42about 5 hours ago
>If rewrites are so easy, why not rewrite CC in a native language? Would’ve been a hell of a lot cheaper.

Yeah, good question. OpenAI decided to rewrite Codex in Rust about a year ago[0].

In fact, since rewrites are that easy, what do we need Bun for? Why doesn't everybody just port all of their Javascript code into Rust?

[0] https://github.com/openai/codex/discussions/1174

frollogastonabout 4 hours ago
Code verbosity and complexity still matter with LLM coding
pianopatrickabout 5 hours ago
As a counter argument - I assume that Anthropic is using AI to write Claude Code.

I've read and heard in videos that Javascript is a pretty good language for AI to write code in. Apparently this is because there is so much training data out there. Also Javascript avoids problems of multi threading and memory management that can mess up the AI in other "more performant" languages.

So maybe Javascript is not the worst choice for writing software fast with AI

simonwabout 5 hours ago
I feel like a year ago JavaScript and Python were the best languages for coding agents to use because of their heavier presence in the training data, but I'm not sure that's true any more now.

The latest frontier models are competent at Rust and Swift and all manner of other less widely used languages.

The more important factor is how good they language's compiler is at kicking out actionable error messages, since one-shot code generation isn't as important once you have a coding agent loop.

pianopatrickabout 4 hours ago
Sometimes I think that if we are willing to burn tokens and rely on compilers in a loop we should be using languages that can catch as many errors as possible at compile time.

Like Ada or Ocaml or Haskell or something.

Or even require like MC / DC testing or MISRA C verification.

Or even some of the languages that apply Hoare checks, like Ada SPARK or FRAMA-C or VALE or whatever.

I don't have the budget to test how that would work but it seems interesting.

yoyohello13about 7 hours ago
It is kind of mind boggling. They could have chosen anything and decided to implement it in the slowest jankiest way possible.

Proves LLMs don’t help with taste.

johnfnabout 11 hours ago
Why would rewriting Claude code, an app which probably has 30-40 (I might be significantly underestimating) extremely active contributors be easier than rewriting Bun, which has fewer contributors and almost certainly also less lines of code?
weakfishabout 11 hours ago
Because I’ve been told that Fable can do anything :-)

My question is moreso “why was it ever JS in the first place”

& the cost of a native rewrite would be cheaper than acquiring Bun no matter how you shake it

jm4about 9 hours ago
Probably because it consumes the same APIs originally developed for a web app and the same front end engineers likely created Claude Code. People assume Anthropic set out to create Code as a product and went through a normal design phase. I think it’s more likely it started as an internal tool or someone’s side project and blew up as a product when they released it to the public.
AndrewKemendoabout 11 hours ago
>Because I’ve been told that Fable can do anything

I hear some version of this anecdote constantly

yet despite using all these prompting tools since 2019 I have never once heard a lab or professional say “x model can do anything”

Can you provide me whatever specific source you heard for this?

loosescrewsabout 9 hours ago
I'm doubtful that it has fewer lines of code, but even so, it is almost certainly less tricky and simpler code. You could also rewrite it in a higher level and more forgiving language than Rust (e.g. Go) and get huge improvements. The improvements would probably be much bigger than the improvements they have achieved at the JavaScript runtime level.
jayd16about 4 hours ago
I don't think people are saying it's easier, they're saying the results would be better.
ronniebasakabout 11 hours ago
this. /s
jchwabout 8 hours ago
Yknow, I really didn't mind Claude Code that badly, but subjectively speaking I really do like Codex more after using it for a couple weeks. Feels a bit snappier and lighter weight. I know with OpenAI you can actually use third party tools with the subscription so there's less of a draw to using Codex, but I still find myself preferring it now.

Is this because Codex is written in Rust and not JS? I dunno. I think it's more just "lighter" in general, or it certainly feels that way. It's probably possible to make something with a similar feel in JS, just perhaps not with the big honking mess they've created.

amlutoabout 7 hours ago
Codex appears to be a mildly complex, somewhat-but-not-outrageously-sloppy Rust program (yes, I’ve poked around at its source — thank you OpenAI for making it more or less open source). It has lots of features, mostly related all the fancy web features of Codex.

Claude Code seems to be an insanely complex program will all manner of cutesy features and telemetry features. The net result is approximately the same as Codex, but it’s pretty common in software engineering to find a simple thing and a complex thing that do more or less the same thing.

vintagedaveabout 7 hours ago
I asked this in a thread with a CC author a few months ago (I felt — and hope — very politely, with similar background.) No reply. https://news.ycombinator.com/item?id=46716974
simonwabout 6 hours ago
At a guess it's because Boris literally wrote a book on TypeScript: https://www.oreilly.com/library/view/programming-typescript/...
weakfishabout 4 hours ago
I don’t doubt his expertise, I just am not convinced it’s the right tool.

To me it comes back to the premise I hear a lot from AI hype men (of which I do not subscribe but it’s worth clarifying that I find great value in using it for code) that the code doesn’t matter anymore. I just don’t know how to square that claim with the idea that we’re limited still by JS/TS being easier to use or approachable despite inferior TUI toolsets.

hellohello2about 11 hours ago
I'm confused as well, could someone who knows how TUIs work explain what's the point of React-style diffing in this context? I thought you need to clean and full redraw if anything changs anyways?
tredre3about 10 hours ago
> I thought you need to clean and full redraw if anything changs anyways?

Unless you use an ancient teletype, you don't have to redraw everything. That would make any interactive applications way too slow/flickery.

You can move the cursor arbitrarily in the terminal and start overwriting characters from there. So you need to track state to know what is "dirty" and needs refreshing. Occasionally you issue a full redraw to catch missed artifacts left behind or when the terminal is resized (SIGWINCH).

qudatabout 10 hours ago
You can do damage tracking for TUIs. Printing to the terminal is done by moving the cursor and redrawing the line the cursor is on.
delusionalabout 11 hours ago
Ncurses is how people used to do it.
frollogastonabout 4 hours ago
And the TUI fights the terminal on basic things like copy/paste. I end up telling Claude to write all outputs to a tmp file.
tokioyoyoabout 8 hours ago
Cause it works, most users are fine with it, people don't migrate off it because of the codebase, and easier to maintain if the dev team is familiar with code flow.

This is close to the same "why Spotify is a chromium embed?" question. Because it works, and users are ok with it.

mischief6about 1 hour ago
i got annoyed by this especially the memory use and non portability aspect of bun so I had claude (lol) and kiro cook up my own agent. it runs on linux, openbsd and even on omnios and esp32. it's just a personal project so there are probably rough edges, but I am using it on my clockworkpi uconsole daily now. https://github.com/mischief/clm
bushbabaabout 7 hours ago
JavaScript is very fast and easy for UI rendering. If it works for web apps it’d also work for the terminal. Sure it’s bloated but it’s fine. The dev velocity of JavaScripts is orders better than rust.
cozzydabout 9 hours ago
Otherwise an idle TUI wouldn't halve my laptop's battery life. Maybe that's an exaggeration but not that much, based on looking at wakeups in powertop.
srousseyabout 11 hours ago
So the code for the web, the desktop app, and the cli where largely similar.
qudatabout 10 hours ago
The component trees have to be rewritten, only the non-view related JS code can be reused.
groundzeros2015about 8 hours ago
The answer is those are the tools their lead engineers knew, so they repurposed them rather than learning other paradigms .
antonvsabout 2 hours ago
To the man with a hammer…
golergkaabout 2 hours ago
I’m not sure what else can you use to share the same business logic between website frontend, desktop gui and tui apps and backend
onetrickwolfabout 9 hours ago
> why not rewrite CC in a native language?

It's hell to maintain for not much gain (for a use case like this at least). As much as it's become a meme, JS and web tech in general has become extremely portable and stable.

I also don't think Anthropic bought bun to make their TUI better. They could have forked it, they bought bun because it incidentally was excellent for the way agents prefer to work and they wanted to capture that audience.

vips7Labout 8 hours ago
I thought maintenance was free with LLMs???
tayo42about 1 hour ago
I don't think it's that kind of maintenance like code.you need to test cross compiling and running on different platforms. I guess js acts like how the jvm is
simonwabout 9 hours ago
I think they bought Bun because it was a supply chain risk for them.

Their new flagship product (earning them billions of dollars in revenue per month) was dependent on a platform maintained by a tiny startup.

Buying Bun was a very rational way to reduce that risk, epically since it also got them some top tier engineering talent.

Thinking about that further, I wonder if that was part of the rationale for switching from Zig to Rust that they haven't talked about?

Zig is a much riskier bet for your multi-billion dollar cash cow than Rust is.

But saying that out loud would be rude - they took steps to NOT openly criticize Zig, even after Zig's founder did not show them the same courtesy.

keeganpoppenabout 7 hours ago
it is kinda mystifying bc from what i understand their engineering ethos is very much "if it's not working, just regenerate it" (which i completely understand).
newswasboringabout 9 hours ago
Anything that can be written in JavaScript will be written in JavaScript. That's just how it is it seems.
apiabout 7 hours ago
Lots of devs know how to code in it, and the AI models have more training in JavaScript than any other language.

It's like asking "why does everything run on Windows?" Because everything runs on Windows.

miroljubabout 7 hours ago
> Maybe I’m taking crazy pills, but I’m still stuck on “why the hell does a TUI need to run in terminal React by way of JavaScript”

No, you are not crazy. They do crazy things with unlimited budget, and still their chat app flickers when using.

They should just port pi-tui from pi coding agent, since they have no clue.

deadbabeabout 9 hours ago
Should have done it in C++ with SDL3.
voidhorseabout 11 hours ago
Probably because claude suggested some kind of wack react based setup early on (because react dominates the training data) and it's be blasphemy worthy of termination for the Anthropic employees to question the sacred pronouncements of the llm.
ozgrakkurtabout 12 hours ago
If you think that way I would recommend just keeping away from these topics. It is just useless arguing and speculating about things don’t matter.

I have been trying to keep away in the last couple weeks and it was all win for me. I still come down here sometimes when I am stressed with real work since it is a strong addiction to see “how terrible the plebs are doing”.

fnyabout 11 hours ago
JavaScript is dynamic and supports live reload which means iterations are far faster than would be in a compiled language--even for LLMs.

This is especially useful when you're trying to evaluate behaviors while changing state surgically.

amossabout 10 hours ago
If you are relying on live updates to change state in a dynamic language then you are not doing it "surgically", unless there is some other definition that means hitting it softly with a large rock.
pjmlpabout 10 hours ago
There are several compiled languages with live reloading, including C++.
nozzlegearabout 10 hours ago
There's no surgery when you're a company with a trillion dollar hammer and every problem looks like a big ass nail.
embedding-shapeabout 16 hours ago
> For me this outputs Bun v1.4.0 (macOS arm64). The most recent release of Bun on GitHub is currently v1.3.14 from May 12th, so that v1.4.0 version number in Claude supports them shipping a preview of a not-yet-released Bun version.

And so, the FOSS project "Bun" silently dies in darkness and is now something completely else. I'm glad I still had "Investigate if Bun is worth it" on my TODO list and hadn't yet gotten to it.

What is the governance structure for Bun by the way? Couldn't find any documents/explanations about how it's supposed to work. I'm guessing it's essentially just "Anthropic decides what gets done and accepted" today?

junonabout 16 hours ago
Why does changing to Rust kill the project? I don't understand the point here.
atonseabout 16 hours ago
It’s made absolutely no negative difference, as we’ve seen in the real world in the last 60 days since the merge.

I feel weird having to defend reality; reality being that it was merged nearly 2 months ago and tons of people have had their pitchforks out without a shred of actual evidence that this made bun worse in any measurable way. But they still insist it was a mistake.

I’ve never met Jared or the bun team but I don’t understand all the personal attacks, I just feel the need to correct the facts. Literally who cares what language a JS toolset is written in?

It’s not like they ported JavaScriptCore (the actual JS runtime) to rust even. All that stuff is largely untouched.

jasodeabout 15 hours ago
>Literally who cares what language a JS toolset is written in?

Maybe you're being coy by asking a rhetorical question you already know the answer to but I'll answer as if you asked sincerely...

There are 2 different groups interacting with software products:

(1) end-users : this is where the "Who cares what language it's written in?!?" is usually applicable. E.g. The finance guys using MS Excel don't care whether it's written in assembly, BASIC, or C Language.

(2) code contributors and/or programming language enthusiasts who see other projects as "validation" of the whatever language they've invested in: these people definitely care.

For all the decades that computer languages have been debated, Group (2) will always discuss projects language choices. E.g. reddit.com switching from Lisp to Python, the Linux kernel fiercely debating future Rust contributions , the Typescript compiler switching from Javascript to Go, Bun switching from Zig to Rust, etc.

People try to lecture others in Group 2 about "don't make a programming language your identity" ... but people are human and they can't look at all the above language choices as totally detached observers. They like to talk about it!

If one is a Zig coder that contributed to the previous Bun Zig codebase, we can't expect them to be neutral observers.

layer8about 15 hours ago
> who cares what language a JS toolset is written in?

Anthropic, apparently, not the least because they blanket-closed all issues submitted before the rewrite. If the language were irrelevant, it shouldn’t matter for the existing unfixed issues.

jgalt212about 14 hours ago
> It’s made absolutely no negative difference, as we’ve seen in the real world in the last 60 days since the merge.

This is even more interesting given that prewar Bun was not a well respected code base. This matters if the code was bad, were the tests bad / not comprehensive as well? If so, the translation to rust whose sole / primary target was test-passing will have a fair amount of undocumented bugs in it.

> poster child for Zig programming language actually being the prime example of How Not To Write Zig Code

https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...

re-thcabout 15 hours ago
> that this made bun worse in any measurable way

Issues on GitHub was mass closed claiming zig is no longer relevant without fixing the real issues.

vermilinguaabout 15 hours ago
Except that it hasn’t yet hit the real world, the live release is still 1.13.4, the last Zig version. Anthropic does not operate in the real world.
zzzeekabout 13 hours ago
this whole AI era has put the topic of "do we believe actual reality, or what we hoped/assumed/continue to insist would be reality" front and center. Every discussion is like this these days.
bbg2401about 15 hours ago
The crux is:

> What is the governance structure for Bun by the way? Couldn't find any documents/explanations about how it's supposed to work. I'm guessing it's essentially just "Anthropic decides what gets done and accepted" today?

And this is a valid question. You are not "defending reality" by refusing to listen to it.

In summary and based solely on my understanding:

- Jared misled people about the intentions of the migration. It's not the worst thing in the world, but it's certainly worthy of criticism.

- Jared has commented before about locking out human contributors from open source projects. Whether he was making a larger point is irrelevant as his comment stands on its own.

- Other Bun contributors, past and future, outside of those employed by Anthropic, did not and likely will not have equal access to the model Jared used for the rewrite.

Jared, working in the public Bun repository, used tooling not available to his community to experiment with a signficant migration. He dismissed all concerns and told people it's just a bit of fun, and that it shouldn't be taken seriously. Most of the controversy would have been avoided were the experiment done in private.

None of this is a big scandal but questions about the project are entirely justified.

bmitcabout 12 hours ago
The outrage was more how the rewrite was communicated and defended, which was objectively poor.
stymaarabout 16 hours ago
Rust as a language is irrelevant to this discussion, the problem is that bun was vibe coded by a single dude without any open source community involvement. “bun the open source project” is basically dead at that point: don't expect any of the zig enthusiasts who had their code being forcibly rewritten in a language they don't like to follow Jared.

“bun the JavaScript runtime ” is not dead though.

Matlabout 15 hours ago
I agree, it's unfortunate the headlines seem to have become 'rewritten in Rust' (not a bad thing) and not 'vibecoded in a week without review' (a bad thing).
ljmabout 12 hours ago
> bun was vibe coded by a single dude without any open source community involvement.

I think even this is largely beside the point. The acquisition of any project by Big Capital (whether tech or VC) is usually a killing blow.

Dylan16807about 14 hours ago
Is the idea that a code base reset makes something stop being open source? Or that the number of people doing the reset matters?

I don't see why either of those would be true. The project isn't dead just because it's in a different language now, and for liveness purposes it doesn't matter how it got to that different language.

CrimsonRainabout 15 hours ago
That's just like your opinion...? More power to Jared (and anyone else) if they can "vibe code" useful projects like bun.
_pdp_about 16 hours ago
I am impartial on the matter, but I think one of the reasons Bun became a thing in the first place was because of Zig attracted a small but very active developer community. Switching from Zig to Rust effectively alienates that community.
petcatabout 16 hours ago
I think the Zig people are really just worried that maybe Zig itself is a DOA language before it has even reached 1.0 because it doesn't offer enough over C for any serious use and their flagship project has now abandoned it.
phoghedabout 16 hours ago
If this were true the very small but active community of Zig contributors could just fork it and you could all return to the happy times of not using Bun anyway.
CrimsonRainabout 14 hours ago
Bun became a thing because it provided some specific benefit to js ecosystem. Zig enabled the rapid development. The people who contributed were definitely helpful but they can still choose to help or not and new people will step up too
OJFordabout 16 hours ago
Emphasis on the FOSS project. The v1.4 mentioned is not (yet?) open source, Claude Code is essentially using a proprietary fork, was GP's point.
atonseabout 16 hours ago
You can install it now we with bun upgrade —-canary it something along those lines.
CrimsonRainabout 12 hours ago
And GP is full of shit as the main branch is the v1.4.0. it is not "released" yet as it is not finished. It is available as canary version.
hopppabout 16 hours ago
Bun is now mainly the runtime for claude code. All changes will go in to make claude code better.

It's not about making the dev experience better than node, that use-case is now secondary.

afavourabout 16 hours ago
The objection isn’t to the language. It’s to Claude using a version of Bun that is not available to us. We don’t know what’s actually in it.
kstenerudabout 16 hours ago
Why is that even a thing to object to? You're talking as if you placed stock in the bizarre idea that Anthropic would close source the project and start charging for it.

Stay your pitchforks.

kelnosabout 16 hours ago
It may be available to us, in the form of a git checkout of their public repository.

It's true that we don't know exactly which, and whether or not there are any other changes added on, but that is the case for every single release of Claude Code that has used bun.

jen20about 7 hours ago
That is also true of the rest of their codebase, no?
firesteelrainabout 16 hours ago
Moving the goalposts?
Cthulhu_about 16 hours ago
Yeah same, according to one of the Zig team members, the original source code wasn't all that anyway.

But this is HN, a subsection of which places a high importance on what language something is written in, moreso than what it does (feels like).

flohofwoeabout 16 hours ago
An interesting tidbit is that large parts of the original Bun source code was a line-by-line port of esbuild from Go to Zig (mentioned here: https://bun.com/blog/bun-in-rust), tbh this lowered my respect for the project a bit (a line-by-line port simply isn't as interesting as original work), and it might also explain the subpar Zig code quality (a line-by-line port from Go to Zig simply won't result in idiomatic Zig). It also might explain why porting from Zig to Rust was done 'on a whim', the actual source code (and the idea of 'original work') never seemed to be all that important to the author (and I wouldn't be surprised if the project does more language-hopping in the future heh).
gippabout 16 hours ago
I don't think the GP had anything to do with the language change itself. More that it marks a clear point of Anthropic taking ownership and governance of the project in a less open direction.
amazingmanabout 11 hours ago
I didn't read OP as complaining about the rewrite, but about the (lack of clear) governance after being acquired by Anthropic.
pjmlpabout 16 hours ago
Definitely, it was a possible reason why Zig actually matters in the industry.

Now it is a Deno clone, both without anything enticing over node.js.

foxesabout 16 hours ago
As an open source - community driven project? Have you looked at the repo on github?

Theres thousands of PRs from claude agents or whatever.

Yeah really feels like a worthwhile place to contribute lol.

embedding-shapeabout 15 hours ago
> As an open source - community driven project? Have you looked at the repo on github?

FOSS as in FOSS - Free and Open Source Software. Has nothing to do with if it's community driven or not, I'm strictly talking about FOSS.

jeroenhdabout 16 hours ago
My personal feelings about the matter is that having an LLM rewrite the entire thing as an experiment and then just going with it a few weeks later kills any incentive for a community to build up around it. It's a clear signal that every basic aspect of the runtime can change on a whim.

I don't care about meh Zig being rewritten to bad Rust if it does the same thing, but taking what is presented as" look at this funny experiment I did" and then taking that into production with barely any announcement is what kills off the interest to me.

Bun has been a great ad for whatever LLM they were using but the cool factor is gone now, and that's really what set it apart from basic NodeJS in my mind.

entropeabout 14 hours ago
> taking that into production with barely any announcement is what kills off the interest to me.

Did Bun v1.4.0 release weeks ago and I missed it? I would call a formal release the point that it goes "into production", and I think dogfooding it via Claude Code is yet another form of testing Bun-in-Rust before the latter goes to casual users.

atonseabout 16 hours ago
Which community specifically though? The overwhelming “user” community would be web developers and people writing JS/TS, right? Not zig/rust developers.
hibikirabout 16 hours ago
It's like a couple of languages I know where there's still one real owner, and there's no real review, and PRs are unlikely to be merged, even with review: They might be open source, but it's more a source visible thing, because you are never going to get a change in, and the language will change directions at the creator's lone whim. The best you can get at times is "I didn't like your PR, so I implemented the feature you tried to add completely different". Typical community killers.
muglugabout 16 hours ago
The language an application is authored in does not matter to me, as a user. I care that it is widely-used (safety in numbers), that it works, and that it is fast.

It's cool that the Zig project exists, but I'm unlikely to ever use Zig so that’s sort of orthogonal to my interests.

locknitpickerabout 16 hours ago
> Why does changing to Rust kill the project? I don't understand the point here.

I'm concerned that the complete rewrite in an entirely different language is not a sound technical decision and instead is a ploy to shed copyright claims from past contributors.

Now, based on comments from this thread, the formerly FLOSS project is somehow granting special access to a corporation that apparently is invested in going way out of their way to push implementations that consume the complete rewrite before the world has access to it.

I for one won't be touching Bun. This doesn't pass the smell test. It feels like a bait-and-switch in progress.

brabelabout 16 hours ago
> I'm concerned that the complete rewrite in an entirely different language is not a sound technical decision…

Even if this was a terrible technical decision, it is a good, maybe even unavoidable, business decision. And I don’t think moving to Rust was a bad technical decision at all, given Zig is unstable and constantly changing, and that it’s not memory safe, which is a big problem for something like a JS runtime!

The reason it’s a necessary business decision is that Bun is owned by an AI company and Zig has a policy to not accept AI assisted contributions, making it impossible for Anthropic to contribute to a language that is still evolving rapidly, not to mention the bad marketing of using a language that basically is hostile to your product.

CrimsonRainabout 11 hours ago
A lot of hypotheticals, conjecture, speculation, personal feels devoid of any facts. That somehow kills the project. ok!
conartist6about 16 hours ago
of course they also gave away their own claim to be the copyright owner, but that's neither here nor there ; )
embedding-shapeabout 16 hours ago
I don't care about the language, but pre-releases the community don't get access to but released (Anthropic) applications do have access to, feels a bit too on the nose after the acquisition.
atonseabout 16 hours ago
The whole point of the outrage was that 1.4 was merged into main. Publicly. So I’m not sure what you mean.

Everything is in the open: PR #30412

rangunaabout 15 hours ago
The PR is public, you can build and use it as well. The anthropic team just decided to use it, and you can as well.
embedding-shapeabout 15 hours ago
> The PR is public

I'm talking about the 1.4.0 release:

> Claude supports them shipping a preview of a not-yet-released Bun version

Maybe Bun/Anthropic fixed this after Simon's initial release of the blog post, but seemingly when we both looked, it wasn't public.

thevinterabout 15 hours ago
> Update: The Rust version has been released as Bun canary - running bun upgrade --canary will install this release.)
minrawsabout 16 hours ago
It's largely just what jarred is willing to accept this week afaik or not, and they did put the bun 1.4.0 version bump in the changelogs for claude code a while ago, over a month almost.

Though most will be forgiven to not reading it since well it's all AI anyways. I don't know how I feel about all this yet, maybe someday.. ooof

jdiffabout 16 hours ago
> they did put the bun 1.4.0 version bump in the changelogs for claude code a while ago, over a month almost.

Where? Is see no CHANGELOG in the root. I do see LATEST, last modified 2 months ago, and it says 1.3.14

simonwabout 16 hours ago
The Claude Code release notes. Not the Bun release notes: https://github.com/anthropics/claude-code/releases/tag/v2.1....

> Upgraded the bundled Bun runtime to 1.4

(Though that doesn't clarify that this is the Rust rewrite)

TheRoqueabout 6 hours ago
I had "investigate if bun is worth it" too, and decided not to use it, but instability was one of the reasons. So it feels it was the right move.
GuB-42about 12 hours ago
Why all the mess with Bun?

Couldn't they have rewritten Claude Code in Rust directly? No more need for a JS runtime, better performance, etc... If their agents can do Zig to Rust, why not JS to Rust?

jeremyjhabout 10 hours ago
I know, its so confusing. Its almost as if the bun rewrite to Rust has absolutely fuck all nothing to do with Anthropic's product strategy.
59nadirabout 9 hours ago
Well, yeah, it's just good marketing and Bun ultimately doesn't matter anyway, not to the wider ecosystem and especially not to Anthropic. The only purpose Bun had for Anthropic was as a way of getting attention, so that's what they used it for.
tbrockmanabout 6 hours ago
In isolation, yes, that does seem like it would have been the better decision for Claude Code, but it also would have severely diminished the value of their Bun/oven.sh acquisition.

Claude Code isn't the only user of Bun (it's probably not even the only user of it internally at Anthropic), and this way they get to keep the Javascript runtime (and other tooling) that their coding models may one day, if not already, prefer to use when given the opportunity. For those kind of apps, you'll probably also eventually find that--what do you know!--Anthropic also has their own cloud offering (instead of Bun being the one to build one) that specializes in running and managing those applications for you. Even if all they get is a community of developers that choose to use Bun over other options, that gives them power and seats at tables they wouldn't have if they just rewrote Claude Code in Rust.

That'd be my best guess, anyhow.

aurareturnabout 5 hours ago
Is Claude Code bottlenecked by performance?

I think a JS runtime is fine because the ecosystem of tools is very large and plugins are easy.

thewhitetulipabout 1 hour ago
Why is ecosystem of tools and plugins a bottle neck when they literally own Claude models and as per their boss, code is so cheap that anything us just an English sentence away?
aurareturn44 minutes ago
I knew this was going to be the first reply.

The answer is because you still need at least one human to develop and test any tool, integration, feature.

niruiabout 15 hours ago
All the emotion of speculations aside, how it runs? It boots faster yeah, but what about RAM and CPU usage? Weird dead loop or dead locks?

If it run as good as before or even better, then that's kinda impressive.

I'm a developer so I really don't like it when AI might took my job, but if everyone on this planet could create a software for themselves exactly as how they wanted with just a few simple demands, that will change the world for the better.

Think of it as a democratization of technology. You don't want Microsoft stealing your data? Just ask a AI to write an OS for you. You don't want Google to listen to what you're saying? Just ask a AI to design a phone for you. If one day the AI ended up doing that, it will be the ultimate technology self-sufficient. In front of that, your job security is insignificant.

It is also why keeping the tech open source is that much important. Otherwise, it's still the same old shit again and again, and, you lose your job too.

phinnaeusabout 14 hours ago
> I'm a developer

Then you must know that the hardest part of software development is getting clear requirements...

> everyone on this planet could create a software for themselves exactly as how they wanted

Even with perfect AGI this will never happen because people will never be able to express clear requirements

William_BBabout 9 hours ago
It's not even about requirements. It's about responsibility. Someone has to take responsibility for the code and the product. Someone has to hotfix a bug that's costing millions of dollars an hour and someone has to be blamed for a bug that's consting millions of dollars an hour.
godwinson__4-8about 3 hours ago
Not really. The secret of our society is it wouldn't work if people with a controlling interest in things ever faced personal responsibility. Who got blamed for the Iraq war? How much did that cost? The theory is if you tried to blame someone then some future president wouldn't be able to declare war. You don't know how the law works apparently. Corporate law is pretty much the same. The economy doesn't boom if CEOs can actually be blamed for things. You don't blame a "someone" that's what incorporation does. If some code does a booboo just put a $ amount on it, withdraw the funds and move on. The media will focus on the humans because of the drama, but they are largely irrelevant. It doesn't come out of their pockets. A human is already window dressing in this status quo. A LLM has no reason to do the sorts of things that violate such legal protections, be it of a president (none really apply) or a CEO (good luck getting a CEO to take personal responsibility for anything short of outright fraud). If it suddenly goes haywire the law already has a concept of vis major.

The secret is individual humans are already largely irrelevant to our society. That's how we got here. The trend will only continue.

hvb2about 14 hours ago
A good tool, in the hands of a skilled craftsman gets great results.

The same tool, in the hands of someone that doesn't know how to handle it? I'll let you finish that

Basically, a good developer can handle the tool better by asking the proper questions, setting good guardrails and tweaking the output where needed

slekkerabout 14 hours ago
> Think of it as a democratization of technology

Incredibly naive take when these models are closed behind (for now subsidized) paywalls.

This "democratization" argument is so nauseating, seems like the Bun port to Rust as a marketing piece (the primary motivator) sold it well!

anematodeabout 7 hours ago
It's a "democracy", in which some people (Anthropic and co., and anyone willing to suck up to them) are more equal than others...
revengerwizardabout 14 hours ago
It definitely worked as a marketing stunt for sure
Aeveusabout 14 hours ago
Anecdotal, but I’ve been getting segfaults in Claude Code. I run inside Kitty tabs, and the entire tab becomes unusable when this happens. No response to inputs at all from that point.

When this happens, a link shows up to report the issue. It’s not clickable (likely due to the segfault), and perhaps more important: it’s encoded, so you can’t see what you would be sending in your report.

Hope it gets better.

MitziMotoabout 11 hours ago
Something similar has been happening to me with Ghostty, but there is no error message or link and it only happens when Claude uses it's interactive questions interface.

It becomes completely unresponsive to any input except scrolling. I can't select options or even cancel out.

(I am in no way implying this is related to Bun)

mort96about 14 hours ago
What makes you think it's a segfault? Does your shell print "Segmentation fault"? If so, you should be back at your shell and you should be able to recover the tab by typing 'reset' + enter (even if you can't see anything as you're typing it).

If nothing prints "Segmentation fault", this just sounds like a hang

javawizardabout 9 hours ago
I just had this happen today. It was indeed a segfault.

From what I could tell it looked like it was in JS code that had been JIT compiled. I haven't attempted to troubleshoot further beyond setting all my future Claude Code instances to pipe their stderr to disk so that I don't lose the stack trace next time.

kccqzyabout 6 hours ago
Bun does not have its own JIT compiler. Bun uses JSC made by Apple. So your blame should be directed to Apple.

And I can believe you because I’ve seen JavaScript-heavy Safari tabs crash.

root_axisabout 6 hours ago
Same experience I have with bun in general. As an idea, it's the absolute best js runtime by a very large margin, but in terms of stability it's terrible and segfaults 20x as much as node (I base that number on newrelic telemetry)
nicceabout 4 hours ago
> but in terms of stability it's terrible and segfaults 20x as much as node (I base that number on newrelic telemetry)

In Chrome or Firefox, a segfault is usually automatic CVE and in most cases a bounty of thousands of dollars…

nerdixabout 9 hours ago
I run Ghostty and Claude Code on a work macbook and I haven't seen this yet.

I actually used to have issues with run away memory leaks causing my computer to hang which often required a reboot to recover from. I haven't experienced that in a couple of weeks now. Too early to say just yet but I think its definitely possible that the rust port fixed a bunch of memory leaks that have tangibly improved the experience atleast for me.

Philip-J-Fryabout 9 hours ago
Segfaults were a thing with the Zig version. Purely based on the fact it's a line by line translation of the Zig code to unsafe Rust, all the Zig code that caused segfaults is going to also cause segfaults in the Rust version. The Rust code won't fix it until they get to the point of refactoring it into idiomatic and memory safe Rust.
vips7Labout 8 hours ago
But if the segfaults are new that implies it’s from the LLM no?
Philip-J-Fryabout 6 hours ago
Who said they're new? Also, you can encounter new segfaults in a codebase just by executing code paths you haven't seen before.
feverzsjabout 16 hours ago
It's a transpile. And not even a good one. The generated code is far from idiomatic rust. Some may consider it an abomination.
daishi55about 15 hours ago
Seems to be working just fine though?

And like, this is just the beginning of the port. They did a mechanical port basically line by line, next step is to make it idiomatic rust.

I thought by now people would’ve learned to stop betting against this rewrite.

cube00about 14 hours ago
> Seems to be working just fine though?

As with all transpile ports, the true test will be how well it can be extended and maintained over time. Historically working with the output of a transpile is not pleasant and requires heavy rework to get it to the point where you can be comfortable enough to extend it.

The existing community is now either going to need to learn Rust or new Rust developers are going to have to join the project and they may not invested enough to refactor the transpiled output when they could work on something else like Boa.

daishi55about 13 hours ago
historically we didn’t have LLMs which don’t mind “unpleasant[ness]” and “heavy rework”.

This is I think a preview of the future of software development. LLMs are having the same effect as compilers, frameworks, etc - they are making new kinds of software development feasible which were not previously so.

endosporeabout 12 hours ago
> next step is to make it idiomatic rust

You can tell what will happen when they release it before sorting out all the new bugs introduced by the not-exactly-line-by-line port.

kccqzyabout 6 hours ago
But Bun did not even release a new version of Bun written in Rust yet. It was still a canary version.
daishi55about 10 hours ago
Sorry you think they’re not going to continue developing and improving bun and making it more idiomatic?

Given the success of the port so far and the fact that CC is now running on rust Bun, that seems highly unlikely to me.

variadixabout 13 hours ago
Yeah I don’t understand this port at all other than as a big marketing stunt.

It would have made far more sense, for reliability, efficiency, cost, etc., every metric really, to use or write a source to source translator that preserves as much structure from the original code as possible. Typically if you do a rewrite there are lessons learned from the existing code base that you want to take into account when doing the rewrite; using a bunch of agents to do the porting file-by-file buys you none of that. In either case the code will be an unidiomatic translation, just with LLMs you get an added source of indeterminism and a huge bill at the end of the month.

brabelabout 15 hours ago
Can you show some examples of abominable Rust code they have?
ameliusabout 15 hours ago
Why not transpile directly into LLVM IR?
jqbdabout 14 hours ago
I don't think AI or humans are trained well on it.
brown9-2about 14 hours ago
Is it important to be idiomatic if the project meets its goals around memory safety?
kikimoraabout 14 hours ago
No, but the project does not meet its goals around memory safety. It is usage Rust all the way down with same memory safety issues.
feverzsjabout 14 hours ago
If it's not idiomatic, the memory safety won't be guaranteed.
alexandra_auabout 15 hours ago
grep -nr 'unsafe' .

Is all you need to know to consider how much of an abomination it is

simonwabout 15 hours ago
This comment inspired me to take a look at the trend of "unsafe" in the Bun code over time since the rewrite PR first landed - here are the commits where that number changed by at least 10:

  2026-05-14 23427db 13907
  2026-05-14 19d8ade 13861
  2026-05-15 4d443e5 13840
  2026-05-17 172afa5 13803
  2026-05-17 80a06a8 13849
  2026-05-18 fba43af 14026
  2026-05-19 303cd28 14052
  2026-05-20 21db682 14243
  2026-05-22 a06a00a 14239
  2026-05-23 49c97de 14090
  2026-05-28 472a06a 14076
  2026-06-01 a0d1472 14071
  2026-06-04 8553428 14032
  2026-06-09 717542f 14053
  2026-06-10 1c90e5a 14043
  2026-06-11 6e91d24 14031
  2026-06-16 bd8edc7 14086
  2026-06-17 6ef5977 14104
  2026-06-20 315ed50 14106
  2026-06-22 c6be834 14120
  2026-06-23 ea7e44f 14108
  2026-06-23 03042ab 14128
  2026-06-29 86d32c8 14046
  2026-07-01 6640fcf 14077
  2026-07-04 51074e3 14099
  2026-07-06 9d0e93d 14186
  2026-07-08 ab6eb2d 13953
  2026-07-09 86caf6e 13936
  2026-07-10 91675d0 13930
  2026-07-13 73b6c14 13951
  2026-07-16 4bbe075 13978
  2026-07-16 57e30a5 13995
So not as much cleanup as I had expected!

ChatGPT written script for counting here: https://gist.github.com/simonw/b1015bcadcedd1a781cedb7af9cbb...

rwzabout 14 hours ago
The original code was one giant unsafe block with almost no tangible way to find or debug all the subtle memory bugs and leaks they had.

Now it's smaller, faster and has fewer bugs. Also its every potential memory issue is neatly annotated by an unsafe block so you can go and refactor them out one by one with confidence.

All this seems like a pretty huge improvement to me. Why is this an abomination in your eyes?

endosporeabout 12 hours ago
> The original code was one giant unsafe block

True.

> has fewer bugs

Nope, this is demonstrably false because Rust has its own invariants around its types and the codebase is violating a lot of them.

> every potential memory issue is neatly annotated by an unsafe block

"Potential memory issue" can originate in unsafe blocks and safe code that are able to alternate the input condition of these unsafe blocks. Guess what? That still counts towards 100% in this code base, hence the abomination remark.

> refactor them out one by one

Not as easy as it sounds. They are like threads in a yarn ball, if there are one or two ends visible it's easier to sort them out. The actual situation is more like we have tens of thousands of ends (all the raw pointer code that comes with every shared object), to fix them it's basically a requirement to unwind the whole thing (rewrite all the callees and reorder the data flow as needed, redesigning all the APIs during that).

It's too early to declare it as anything remotely close to a win, optimistically saying.

William_BBabout 9 hours ago
> has fewer bugs

who claimed that? Are you suggesting that the rewrite did not introduce any new bugs? The correct answer is, by the way, that no one knows since it's millions of lines of code no one has properly read.

> smaller, faster

I thought this has already been debunked. You could just write better zig and make it smaller, faster (and have fewer bugs!)

luckydataabout 9 hours ago
given enough time and tokens, it will become that. I really don't understand how that is a problem in any way.
vips7Labout 8 hours ago
LLM code has always been an abomination.
rekttraderabout 8 hours ago
They’re just wildly successful terrible engineers who can describe problems well and have unlimited token budgets. If they were paying for their own token use, the software would be better, they simply don’t have financial incentive to be more performant.

A dirty secret of AI data centers are that they’re only getting 40-60% efficiency out of their GPU clusters and because the moneygun go brrrrr they just buy more.

You wonder why they’re so afraid of the Chinese competition… they can’t afford to be as wasteful

harrisiabout 6 hours ago
Maybe I'm taking crazy pills, but I swore there have been very similar comments I've seen as the current top post by weakfish:

> Maybe I’m taking crazy pills, but I’m still stuck on “why the hell does a TUI need to run in terminal React by way of JavaScript”

> The fact that Anthropic felt the need to buy a runtime so they could make their TUI better speaks more to the quality of engineering than anything else IMO.

> If rewrites are so easy, why not rewrite CC in a native language? Would’ve been a hell of a lot cheaper.

It turns out, there's some similar sentiments in the last year ish:

https://news.ycombinator.com/item?id=47043325

https://news.ycombinator.com/item?id=47105720

https://news.ycombinator.com/item?id=48001113

https://news.ycombinator.com/item?id=46134570

https://news.ycombinator.com/item?id=46124596

I'm not a fan of any of the technologies, companies, or people related to this. I just couldn't shake the feeling that I've seen similar comments.

September and all.

vdfsabout 5 hours ago
Maybe because the 1st thing any experienced technical person would think about? It's like rebuilding and optimizing the racing track to make F1 run faster.
harrisiabout 4 hours ago
Perhaps. The thing I was trying to highlight more is comments (particularly disapproving ones) about the intersection of JavaScript (especially React, apparently), TUIs, and LLMs.

I just thought it was interesting. I'm a fan of TUIs, both positive and negative about JavaScript (the modern language is quite nice, given you avoid the historical warts, in my opinion - the ecosystem is unfortunate), and I think the best description for how I feel about LLMs is that I'm bearish. Also Simon is a fantastically prolific and intelligent person though, even though LLMs are not my cup of tea.

https://news.ycombinator.com/item?id=48960912 is a recent comment by someone I also respect related to how LLMs recreate human-like content (Widgets, really), making actual human-created content feel fake.

Sometimes it sure does feel like ELIZA is the main news source these days.

scrollawayabout 3 hours ago
I have ~24 years of experience coding and the LAST thing I think about when opening claude code is "why is this written in react".

Tell you what I sometimes think about though: The fact it has clickable links and complex formatting rules for markdown, the most interactive and highest-quality clickable interface I've ever seen in a terminal, and somehow manages to work. That actually blows my mind.

THEN, I'm reminded that it's written in React, and I think "Huh, guess that does make it a ton easier than using ncurses or something."

And done.

shimmanabout 2 hours ago
Okay and as someone who would rather just straight up use cursor than claude code, I'd rather have my software not crash out on me every 5 minutes. What sort of self respecting dev purposely uses broken software? Even opencode (use it on nonwork computers) is fully better at this point.
slopinthebagabout 2 hours ago
You’ve been writing code for 24 years and you don’t know that clickable links are a terminal emulator feature and not a Claude Code feature? Or that “markdown formatting” is just ansi escape codes, and possible with things other than React that don’t bring so many downsides?
harrisiabout 6 hours ago
I don't want to edit this to change the narrative, but I wanted to clarify that I'm not not a fan of all of the technologies or people related to this. As far as compan{y,ies} go, though, well..
dundariousabout 4 hours ago
What's the implication or inference based upon this? So you're seeing comments sharing a general attitude. And?

As it is now, your post is meaningless to me.

codethiefabout 15 hours ago
Incidentally, Claude Code has been very buggy for me lately (much more so than before). Lots of TUI rendering issues causing, e.g., the conversation history to be garbled etc.
NateEagabout 11 hours ago
I've been (grudgingly) using Claude since February.

When I started, I discovered to my shock that it was by far the worst TUI I had ever touched. Rendering glitches, keyboard input screwups, and just all-around jankiness.

Despite that awful baseline, I have to agree that it's gotten noticably worse in the past week or so.

It's started mangling my terminal sessions somehow, so that not all characters I input are visible in the UI.

Backgrounding it, doing a 'reset', then re-foregrounding seems to fix it.

Of course when I asked it to diagnose the problem, it assured me that Claude has no such big and it must be something else I'm running.

All I'm running is tmux and Claude, though, and the behavior surfaced while I was running Claude.

So, yeah - if they just recently updated Claude to use the Rust rewrite, this increased crappiness might actually be due to that. It does seem to at least roughly correlate.

PsylentKnightabout 14 hours ago
Every time I resize my window now, the output is completely garbled. I often have to ask it to repeat itself just so I can see what it just said. This isn’t a new thing, but it feels like it’s gotten worse. This is on Windows
anematodeabout 7 hours ago
Same observation. One thing you can do is close out the session and `claude --resume`
LambdaComplexabout 11 hours ago
Does exiting following by resuming the session fix it?
kilroy123about 12 hours ago
I'm far from being anti-AI, but these guys take it way too far IMO. It's straight-up AI slop. Like a real engineer still needs to be in the loop and drive the tool.

Anthropic seems to be all in on 100% AI code.

Advertisement
luciana1uabout 9 hours ago
a terminal app now has a supply chain long enough to include a runtime acquisition. somewhere between "rewrote it in Rust" and "ship it" someone said "or we could just buy the company"
steveiliop56about 7 hours ago
Ah so that's why it has been crashing constantly for me.
softwaredougabout 15 hours ago
Whatever the headaches of the internals, I haven’t heard any substantive outcomes in hacker news that have been impacted by this change.

Yes if we had a Zig->Rust transpiler maybe it would produce similar output. But I can’t find one. We’d have to use an agent to build one first :)

bel8about 16 hours ago
Contrary to many, I have high hopes that Jarred and team will lapidate the ported codebase and it will continue to flourish as an open source project.
witxabout 15 hours ago
What is the actual contribution and motivation of this post?
softwaredougabout 15 hours ago
People shouldn’t overthink blog posts. Just write what’s on your mind and have fun.
rvzabout 14 hours ago
The motivation is obviously clear. No-one would be doing that for fun 24/7, only covering about AI and nothing else without getting paid for it.

If anyone else did that on HN, they would be accused of slop with their domain blacklisted.

simonwabout 14 hours ago
"only covering AI" - don't miss my wildlife photography! https://simonwillison.net/elsewhere/sighting/

(Unless photos of actual pelicans count as "AI" content now.)

I just shipped this filter UI so you can see my other non-AI-tagged content in one place: https://simonwillison.net/search/?exclude.tag=ai

softwaredougabout 14 hours ago
There are many people with unbridled enthusiasm and an ability to write fast

Knowing Simon - he’s very much both :)

simonwabout 15 hours ago
I thought it was interesting. I didn't write this with Hacker News in mind.

(I was actually half way through writing about something related, when I thought it would be interesting to see if I could prove that I had the Rust version of Bun on my laptop already.)

sensanatyabout 10 hours ago
I don't blame him, if I had Anthropic's money hose pointed directly into my pocket I'd be spamming HN non-stop too
simonwabout 9 hours ago
I've not made any money at all from Anthropic.

You can see my list of previous weekly blog sponsors here: https://simonwillison.net/dashboard/sponsor-history/

None of them get any influence on my content. That would hurt my credibility, and my credibility is the reason my site is worth sponsoring in the first place.

Honestly, if OpenAI or Anthropic offered to sponsor I'd probably turn them down. The optics of taking sponsorship from companies that I frequently write about are not great.

sensanatyabout 8 hours ago
Fair, that rules out "Anthropic pays you directly."

But look at your own disclosure page [0]: OpenAI paid you for your time at a GPT-5 preview, and you regularly get early access, embargoed previews, and free API credits from OpenAI, Anthropic, Gemini, and Mistral. So "I've made no money from Anthropic" is narrower than it sounds, access and preferential treatment are compensation too, even if cash didn't directly change hands.

Same goes for the sponsor list. Microsoft is OpenAI's investor and infrastructure (or was anyways, I've got no clue what the status of that is these days), Amazon and Google are both major Anthropic investors, and most of that list runs on Azure, AWS, or GCP, or sells tools built on these labs' models. Taking a Microsoft sponsorship isn't really separate from an OpenAI one, it's just a single hop removed. The entire software ecosystem and all the players in it are entangled in this bubble.

I'm not accusing you of consciously hyping any of them. Your posts are high quality even when I disagree with the contents of them. You often list downsides too, prompt injection, security, slop issues but the throughline still repeats: this is inevitable, get on board. Product-market fit found, November 2025 as the inflection point. That kinda framing shows up again and again throughout all your posts.

It's refreshing that you're upfront about the previews and credits and all that jazz, but surely you understand why some people stay skeptical even with that disclosed as it confirms the access exists.

Whether you realize it or not, I think they are indeed paying you in some sense, which is part of why I'm skeptical when your posts consistently land at the top of HN. Not because the writing isn't good, but because I think the same incentive shaping the coverage probably shapes some of that reach too.

[0] https://simonwillison.net/about/#disclosures:~:text=2024%2E-...

owebmasterabout 15 hours ago
At this point we all know the answer
aureateabout 16 hours ago
The port of Bun, which has >5000 open github issues, is used in Claude Code, which has >11000 open github issues. Do people use Bun in things that are expected to work reliably? Have any such projects tried the upgrade yet?
ivanjermakovabout 15 hours ago
11k in two years vs 5k in two weeks? You're right, numbers speak for themself.
entropeabout 14 hours ago
Did Bun mass-close issues that predated the rewrite? It doesn't look like they did, as the oldest open issue is from 2021 and there are many from 2022, but maybe they did something that killed most of the old issues.
endosporeabout 12 hours ago
Their (public) project management is horrible, you can find fixed issues unclosed and unfixed issues closed. Not really surprising when that part of the work is completely taken over by LLM agents though.
effnorwoodabout 4 hours ago
My perl re-write is not very good.
preommrabout 12 hours ago
I love bun - although disliked how Jarred did the conversion.

Project-wise, nothing has changed.

Bun was always great because of the fantastic dx - it was just really easy to use , with stuff like out of the box typescript (unreal that it took so long for node, and it's behind a super long flag, wtf...). And it didnt have the weirdness of deno, it maintained backwards compatability with node api, and it just worked.

But it was never stable. You'd have to be fool to believe that a single project could stably do everything bun covers. It's always been an insane project. It was built on top of zig, a langauge that hasn't reached 1.0, and is constantly changing, and throw in how he was rewriting his own custom zig stuff. Like c'mon, let's apply some common sense here.

For me, little has changed. I am still going to use bun as a nice dev tool, and use node for production.

reddaloabout 16 hours ago
Damn, I should have not migrated to Bun. Should I revert back to Npm?
cromkaabout 16 hours ago
I am getting into the frontend dev and one thing that I don't understand is why people use bun in the first place? It's not much better preforming, it's not much safer, it's still not 100% compliant. Some tests show it's actually slower than node. Why bother switching, then?
awestrokeabout 16 hours ago
Faster package manager

Faster startup

Typescript support out of the box

Better stdlib than node

Stdlib includes yaml, sqlite etc so you need to pull in fewer deps, so you can avoid the left-pad/is-even node_modules explosion problem to a greater extent

vips7Labout 8 hours ago
I don’t think you would use Bun for front end.
frollogastonabout 4 hours ago
That's what Claude Code does at least
johnny22about 16 hours ago
i assume it's because of all the built in tooling that node doesn't ship with.
frollogastonabout 4 hours ago
So much of JS dev is just saying no to random new stuff, Bun included
vaughnegutabout 16 hours ago
There's always deno
jqbdabout 14 hours ago
but it's written in Rust too /s
orfabout 16 hours ago
What specific technical issues are you experiencing with running Bun that would justify a change?
lykahbabout 9 hours ago
Is it easier to rewrite Bun than it is to rewrite Claude?
Advertisement
tappaseaterabout 15 hours ago
Anthropic bought Bun, so they kinda, sorta had to make this work. I am sure the cost at $145,000 in Claude time will get some attention.

I am curious how this will work going forward from FOSS perspective. Will humans be allowed to modify the generated code? Only the .md prompts for the agents? Or what?

forrestthewoodsabout 5 hours ago
It’s interesting that Bun was a human rewrite from Go to Zig. (I think?). Then rewritten from Zig to Rust.

AI is pretty good at rewrites and ports. Quite good infact.

LAC-Techabout 5 hours ago
Has all of this drama turned anyone else a bit sour on bun?

I have a long running side project I migrated to bun, and I'm starting to regret it. I don't want to build on top of this much churn.

baqabout 16 hours ago
Turns out it was just a build step after all.
jason_sabout 9 hours ago
TIL about Bun.
nottorpabout 15 hours ago
So does that make Claude Code any better?

Can you select text with shift + arrow keys now in the command line client? :)

Debo_Jolaoshoabout 5 hours ago
For real
throwatdem12311about 10 hours ago
I despise this era we live in. Pushing rewrites like this upon millions of users, when the Bun rewrite has countless known issues and is likely a security nightmare. Every time I ‘brew outdated’ and I see a wall of updates I die a little inside knowing that most of this code has not been verified or even looked at. Yet we hear about massive supply chain attacks pretty much every week now and we’re still full steam ahead on this vibe coded nightmare. God help us. Claude Code in particular updates sometimes multiple times per day. Like I’m sorry but there is no way all this nonsense is safe.
hmokiguessabout 11 hours ago
pi runs in TypeScript and I like it, the target language of the tool, for me, matters only such that I can extend it. I like writing extensions, plugins, things, in TypeScript so I'm cool with that!

Claude Code is closed source, doesn't let me extend it beyond hooks, and these I write in bash anyways.

That all said, why should I bother about this change? Feels like a nothing burger to me, as an end user. This should matter more for those that are internal to Claude Code and Bun developing it.

rs_rs_rs_rs_rsabout 16 hours ago
It is absolutely amazing to me that this ai rewrite work so well, maybe claude is not really that much of a complicated tool to stress the bun runtime but still...
jqbdabout 14 hours ago
It works well because they had tests, they could compare before and after. Likelihood of issues especially if you transpile to a safer language should be minimal.
Advertisement
IshKebababout 16 hours ago
This post is just "they didn't lie"...
23951276about 8 hours ago
Basically Anthropic can ship any trojan in underhanded Rust to any target because it is not possible to audit 1M lines of slop.

And the crowd is cheering.

thranceabout 16 hours ago
Yeah, I noticed. I had Claude write a quick JS script for me a few days ago, it then tried to use Bun to run it. When it couldn't find it, it tried to install it with `sudo pacman`. I had to fucking tell it to use Node instead.
ooofydoofyabout 16 hours ago
bun upgrade --canary

you are welcome

zuzululuabout 10 hours ago
as it always should've been Rust was the right move
kburmanabout 16 hours ago
Honestly, I initially thought rewriting an entire codebase with AI would be a huge mistake. After reading this, I'm starting to think I was wrong.

If projects like Bun can be substantially rewritten and shipped to millions of users, it suggests we're entering a very different phase of software development.

Today's AI-generated rewrites may not produce code that humans would consider high quality or maintainable. But I'm beginning to wonder whether that will even matter in a few months. If AI is the primary consumer, maintainer, and refactorer of code, human readability becomes far less important than correctness, performance, and the ability to iterate.

This feels like a shift where software may no longer exist as a long-lived artifact in its current form. Instead of writing and maintaining applications for years, we may generate, adapt, and discard them continuously for each use case.

esjeonabout 16 hours ago
> But I'm beginning to wonder whether that will even matter in a few months.

At that point, even Bun itself doesn't matter. All intermediate tools don't matter if LLMs can reliably write something large.

The problem is that LLM is not quite there yet. The rewrite was only possible because they mostly stick to 1-to-1 translation resulting in non-idiomatic Rust code. So, what from there? I don't think they can really build up a sane codebase from that state. They only shot themselves with a bigger gun.

brabelabout 15 hours ago
> The rewrite was only possible because they mostly stick to 1-to-1 translation resulting in non-idiomatic Rust code.

That’s patently false, just read Jarred’s own blog post describing how that was the first stage only, they went through many more to get the amount of non idiomatic, unsafe Rust code to an acceptable level.

klibertpabout 13 hours ago
Somebody checked[1], and they discovered that the "stages" past the first had minimal impact on the unsafe blocks count. That's just one metric, but it makes me doubt your claim that there was/is a lot of work put into making the translated code idiomatic Rust.

[1] https://news.ycombinator.com/item?id=48967630

jqbdabout 14 hours ago
Isn't it just: "while true {refactorIdiomatically(); fixErrors()}"
folkravabout 13 hours ago
/goal fix all bugs
rho138about 16 hours ago
That sounds like a massive waste of finite energy and compute resources.
CrimsonRainabout 11 hours ago
That's like saying let's stay with horses.

We'll develop faster and better tech. We'll find resources to feed that. Use that to build better. Access better resources. We'll mine asteroids. We'll harness much more from the sun. The factory must grow.

rho138about 5 hours ago
Is that before or after the earths atmosphere acidifies for humans and our bodies can’t hold enough phosphorus or calcium for basic metabolic tasks? You have until 2050:

https://doi.org/10.1007/s11869-026-01918-5

whateveracctabout 12 hours ago
> Honestly, I initially thought rewriting an entire codebase with AI would be a huge mistake. After reading this, I'm starting to think I was wrong.

> If projects like Bun can be substantially rewritten and shipped to millions of users, it suggests we're entering a very different phase of software development.

exactly. this wasn't a technical project. this was a marketing stunt that worked on you.

sdevonoesabout 16 hours ago
We are the ones to get to decide. Do we want that? I don’t. But im just a single data point
lazzlazzlazzabout 15 hours ago
Seeing all the people up in arms that there was an automated rewrite of Bun to Rust has been very revealing and disappointing. Very silly behavior and denial over the inevitable.
znpyabout 16 hours ago
> Startup got 10% faster on Linux but otherwise, barely anyone noticed.

Just that?

I was expecting more from that rewrite. Maybe Rust is not so worth it after all.

ifwintercoabout 16 hours ago
It was already written in a very performant language so no significant performance improvements should be expected.

The benefit of a rust rewrite is memory safety improvements, but currently they've just rewritten zig to unsafe rust so they don't have that either yet

voiper1about 16 hours ago
The blog claims rust chosen mainly to address memory issues, which rust is a better language for. So, success would simply be less new memory errors / easier to patch old ones.
marcindulakabout 13 hours ago
Claude installer/updater had a high memory usage problem (Gigabytes of resident memory used during a fresh installation of Clade with it's native install.sh script, or during a claude update). This was reported as early as December 2025, see https://github.com/anthropics/claude-code/issues/12327#issue....

The latest Claude installer (2.1.215) possibly does not have it anymore https://github.com/anthropics/claude-code/issues/4953#issuec..., but more tries on various machines are needed to confirm that.

IshKebababout 16 hours ago
I don't think their motivation was primarily user-visible stuff. They backed themselves into a corner by forking Zig, and also were fed up with fixing memory errors.

You wouldn't notice either of those if you were a user, unless you happened to hit one of those bugs.

maverickaayushabout 16 hours ago
I've been using Claude Code daily for a fairly large FastAPI project and didn't notice anything unusual around that timeframe. If this really was the Rust runtime underneath, "boring is good" seems like the right outcome.
larodiabout 9 hours ago
Ok, so let me wrap this for everyone:

While everyone here in this forum kept arguing (and fighting and yelling at each other) whether tis moral/right/secure/cheap for ppl to rewrite and ship a major software package with LLMs/agents, one of the main drivers behind AI actually did it, without consulting your opinion, and most same everyone actually slurped this decision without paying a a notice.

Boring is good, but this boring is super massive major thing that happened, and precisely because security is still intact.

Advertisement
roundabout-hostabout 12 hours ago
I have a better idea: convert it to a prompt and commit the prompt to the repository. Then Mythos will be your compiler.
iririririrabout 11 hours ago
the whole Ai skit is anthropomorphing the compiler as a coworker.
delegateabout 11 hours ago
I'm looking at this situation strictly as 'What's possible today'. If a 1M lines code rewrite from one language to another goes into production in 1 month, that's a very strong signal that the models are now insanely capable.

My anxiety before merging a 2K lines PR is greatly reduced after 3 frontier models (Fable, 5.6 and kimi K3) finds no issues in it.

Just 6 months ago (Opus 4.6) this was not true, a big PR would have countless number of issues.

Aside from the human drama, the message to all of us is - these things are ready for whatever your imagination can throw at them.

I think that's exactly what Anthropic wanted to communicate.

rzmmmabout 11 hours ago
It was not really a traditional rewrite. More like transpilation. Still impressive
dgellowabout 11 hours ago
> Aside from the human drama, the message to all of us is - these things are ready for whatever your imagination can throw at them.

…if you have the compute and capital to run that whole agentic system