Remix.run Logo
Avicebron 5 hours ago

I imagine claude is better at Rust than Zig?

allthetime 5 hours ago | parent | next [-]

Zig is a moving target. 0.15 -> 0.16 includes some massive structural changes concerning IO and async/threading.

Claude has absolutely no idea what it's doing with bleeding edge zig unless you feed it source and guide it closely (in which case it's useful for focused work) - I'm building a game engine & tcp/udp servers with it and it requires a hands-on approach and actually understanding what's being built.

I imagine these are not really concerns with rust at this point.

In my ideal world the team behind bun would be putting in the work to keep up with modern zig, but it's starting to look like they are running mostly on vibes in which case rust might be a better choice.

rudedogg 5 hours ago | parent | next [-]

> it requires a hands-on approach and actually understanding what's being built.

I think this is true regardless of what language you’re using.

I’ve built a lot in Zig and there’s no difference between vibing stuff in it versus TypeScript/React. Claude can “one-shot” them both, and will mimic existing code or grep the standard library to figure everything out.

dns_snek 2 minutes ago | parent [-]

[delayed]

10000truths 4 hours ago | parent | prev | next [-]

> unless you feed it source

Which isn't particularly difficult - the language docs and std source come with the installation, so all you need to do is tell Claude where those directories are in your skill/plugin/CLAUDE.md.

> and guide it closely (in which case it's useful for focused work)

It does struggle sometimes with writing code that compiles and uses the APIs correctly. My approach to that so far has been to write test blocks describing the desired interface + semantics, and asking Claude to (`zig test` -> fix errors) in a loop until all the tests pass.

allthetime 4 hours ago | parent [-]

You're already at a disadvantage having to stuff the context and spend extra tokens coercing the model in the correct direction compared to it already knowing what to do (rust, ts, go, etc.)

Here, I just did a quick test with claude.

1. "make a simple tcp echo server that uses rust"

compiles and runs - took a few seconds to generate.

2. "make a simple tcp echo server that uses zig"

result: compile error, took literal minutes of spinning and thinking to generate

response: "ziglang.org isn't in the allowed domains. Let me check if there's another way, or just verify the code compiles conceptually and present it clean."

/opt/homebrew/Cellar/zig/0.15.2/lib/zig/std/Io/Writer.zig:1200:9: error: ambiguous format string; specify {f} to call format method, or {any} to skip it @compileError("ambiguous format string; specify {f} to call format method, or {any} to skip it"); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3. "make a simple tcp echo server that uses zig 0.16"

result: compile error:

zig build-exe main.zig main.zig:30:21: error: no field named 'io' in struct 'process.Init.Minimal' const io = init.io; ^~

4. "make a simple tcp echo server that uses zig 0.15"

result: compile error

zig build-exe main.zig /nix/store/as1zlvrrwwh69ii56xg6yd7f6xyjx8mv-zig-0.15.2/lib/std/Io/Writer.zig:1200:9: error: ambiguous format string; specify {f} to call format method, or {any} to skip it @compileError("ambiguous format string; specify {f} to call format method, or {any} to skip it");

Rust took seconds and just works. Zig examples took minutes and don't work out of the box. The DX & velocity isn't even close.

dimator 3 hours ago | parent [-]

i mean, if zig is doing its best (inadvertently) at shooing off slop jockeys, then i already have more confidence that:

1. the language and stdlib are written by people who know what they're doing 2. packages in the ecosystem, at the barest level, are written by those who didn't leave after a few compile errors they couldn't reason about

Philpax 2 hours ago | parent [-]

The agents will churn their way through the errors. The new users whose learning material is out of date, as well as the existing users that have an insurmountable task in updating their code, will give up instead.

I think the changes are improvements, but there's a real cost to language churn, and every time it happens, the graveyard of projects grows just that little bit larger.

5 hours ago | parent | prev [-]
[deleted]
fcarraldo 5 hours ago | parent | prev | next [-]

Contributors and maintainers will also be easier to find in Rust than Zig.

Zig is a great language and I want to see it succeed, but this is a prudent move for Bun.

GuB-42 4 hours ago | parent | next [-]

I wouldn't call any port "prudent". In general, taking mature software and doing any major rewrite is one of the riskiest thing you can do. It is a large scale attempt to fix what isn't broken.

Sometimes it is worth it, but it may also kill projects. A risky move. And AI doesn't help its cause. AI can save a lot of time when making ports, it is one of the things it does best, but it doesn't protect from regressions.

I am not using Bun in production, but if I was, I would consider it a risk. Not because of Rust vs Zig, but for changing things that work.

versecafe 5 hours ago | parent | prev | next [-]

This is likely irrelevant given bun has stopped taking community PR's entirely and Jarred is pitching that human contributors should be banned.

etoxin 5 hours ago | parent | next [-]

There is like 1,713 open PR's on the Bun repo. I'm assuming all are from Claude or robobun?. I guess this gives us an insight on what the claude-code workflow look likes. Crazy times.

jabedude 4 hours ago | parent | prev [-]

Where is a source for either of these extraordinary claims?

csande17 4 hours ago | parent [-]

https://x.com/jarredsumner/status/2048434628248359284

lioeters 2 hours ago | parent | next [-]

Wow, didn't realize how bad the situation was. Completely lost any respect and trust I had in the Bun project and its lead dev.

kelnos 2 hours ago | parent | prev | next [-]

What a weird take. I do a ton of OSS, and the act of writing code is what makes it fun for me. If I were forced to use an LLM to write all my OSS code, I would just not do it anymore.

shadowfiend 4 hours ago | parent | prev [-]

The gp's interpretation of that tweet is such a completely incorrect reading as to make one think it's likely disingenuous.

slopinthebag 3 hours ago | parent [-]

> I expect OSS to go the opposite direction: no human contribution allowed.

How is it an incorrect interpretation? Jared is indeed pitching/suggesting/predicting that human contribution will not be allowed in the near future, i.e. banned.

kelnos 2 hours ago | parent | next [-]

"Pitching" generally means that the person making the pitch is endorsing and pushing for it. (This might also be a regional word meaning/usage difference type thing.)

The person upthread should have said "predicting".

Philpax 2 hours ago | parent | prev [-]

A prediction is not a policy.

TheRoque 5 hours ago | parent | prev | next [-]

Why didn't they use Rust in the first place then ? All this was true before AI

tux1968 3 hours ago | parent [-]

Anthropic only acquired Bun in December of last year. They weren't there in the first place, to make the decision.

unclad5968 5 hours ago | parent | prev | next [-]

I don't think Zig is different enough from rust or any other systems language for it to matter. If you can write rust you can write Zig.

jaggederest 5 hours ago | parent | next [-]

Anthropic makes claude, claude can write Rust like a champ and struggles at Zig. It's a straightforward "training data" argument.

I think there are even longer term plays that Anthropic should be looking at, in this space, but it seems like they've decided rust is the right thing, so fair play. I would be (am!) thinking about making an LLM optimized high level language that you can generate / train on intensively because you control the language spec.

aabhay 5 hours ago | parent | next [-]

Claude doesn’t write Rust like a champ. It’s still miles ahead at js and python than it is at rust. It can do macros and single file optimizations but its gotten really stuck in type hell and tried to dyn everything on multiple occasions for me.

vlovich123 4 hours ago | parent [-]

Claude struggling at Rust: not getting types correct, using the wrong abstractions, not implementing things correctly

Claude struggling at Zig: the above + memory safety issues if you run “fast” mode.

It is generally true that Rust code tends to be written in a way that the compiler catches the issue at compile time. The same is not as true for Zig, Python or JS

dnautics 5 hours ago | parent | prev [-]

claude does not struggle with zig? not in my hands anyways.

speed_spread 5 hours ago | parent | prev [-]

I'm reminded of the old joke "how to shoot yourself in the foot in 25 different languages". The first one was "C - you shoot yourself in the foot." Zig remains very close to that philosophy.

So the difference is not in writing new stuff but in maintaining the existing codebase. Rust's rigidity makes it potentially harder to break stuff compared to Zig's general flexibility. As a project grows and matures, different types of contributors naturally come in and it's unreasonable to expect everyone to learn about historical footguns that may have accumulated.

chrisweekly 5 hours ago | parent | prev [-]

100%. For many people, Bun is the only reason they've even heard of Zig. I'm not in a position to comment intelligently on comparative language features per se, but when it comes to mindshare and community size, Rust is a clear winner.

majormajor 4 hours ago | parent [-]

fwiw before today I'd heard of Zig and not Bun :D

something JS-adjacent could certainly be more known than an obscure language but are that many people using drop-in node replacements?

Dylan16807 2 hours ago | parent [-]

fwiw I knew about both but I had no idea Bun was written in Zig.

kllrnohj 4 hours ago | parent | prev [-]

I would expect all LLMs are going to be better at Rust than Zig - a strong, thorough compiler will simply prevent more mistakes, and the benefits of a "simple" language decreases the larger the code base gets. The more abstractions exist, the less valuable "no hidden control flow" or "no hidden allocations" from the standard library get, and that's before you add the mother of all abstractions of vibe coding.

pizlonator 4 hours ago | parent [-]

I have no doubt that LLMs are good at Rust.

But I can’t reconcile the reasoning about “strong, thorough compiler” with the fact that LLMs are also fantastic at Ruby.

They also write really great posix shell (including very sophisticated scripts) and python.

Something more subtle is going on.

josephg 3 hours ago | parent | next [-]

They do work well. But I still see the occasional type related issue or bug from refactoring that claude will introduce into javascript and python code. It seems to be happening less and less frequently as the models get better. But, the rust compiler catches real bugs in LLM code. I consider that a win.

Has anyone made any cross language benchmarks for LLMs? I wonder if rust's conceptual complexity makes it harder for LLMs to write? If all you care about is working software, which language is best for LLMs? Python, because there's more example code? Go or Java, because they're simpler languages? Ruby because its terse? Rust because of the compiler? I'd love to see a comparison!

4 hours ago | parent | prev [-]
[deleted]