5/9/2026 at 7:06:07 PM
From 4 days ago: https://news.ycombinator.com/item?id=48019226 > I work on Bun and this is my branch
>
> This whole thread is an overreaction. 302 comments about code that does not work. We haven’t committed to rewriting. There’s a very high chance all this code gets thrown out completely.
>
> I’m curious to see what a working version of this looks, what it feels like, how it performs and if/how hard it’d be to get it to pass Bun’s test suite and be maintainable. I’d like to be able to compare a viable Rust version and a Zig version side by side.
by legerdemain
5/9/2026 at 7:47:11 PM
cargo check reported over 16,000 compiler errors when I wrote that message. It could not print a version number or run JavaScript. I didn’t expect it to work this quickly and I also didn’t expect the performance to be as competitive. There’ll be a blog post with more details.by Jarred
5/9/2026 at 9:39:37 PM
If this experiment ends up resulting in a real migration path, I think that would be completely awesome. Maybe it means we have a chance to revive older projects such as ngspice [0], but with modern affordances and better safety properties.From your post, though, it sounds like Bun may have been a pretty direct rewrite, without too many hard choices along the way. Is that fair?
by gobdovan
5/10/2026 at 12:57:44 PM
I hear your suggestion without feeling the need to remark the far too common Linux/Deveoper response of “but if you just do all this other stuff and run it this special way and install 15 dependencies and compile XYZ lib from source then clearly it works fine and you’re mistaken”.That’s exactly the type of thing that is needed is to optimize projects for modern compatibility, portability and safety when other modernization efforts or forks don’t exist.
That said, I suspect this rewrite went so quickly and so optimally because it had the benefit of (effectively) 100% test coverage already in place in a really well defined system. Most open source project spawn from efforts of a single developer who frequently never waste time writing tests for a little side project. Later as it grows, they rarely stop and go back to implement testing. So if you’re truly working with an old dead project, there is a really good chance there are zero tests to be found. That is far more difficult to reach the same completeness unless the goal is simply to port all of those same problems to a new language and hope type safety fixes them.
(Not specific to ngspice, just mean generally.)
by therealpygon
5/10/2026 at 5:46:27 PM
You can instruct an LLM to improve the test coverage.by eternal_braid
5/10/2026 at 6:00:41 PM
You are absolutely correct!by pryelluw
5/12/2026 at 7:46:59 PM
I've found Rust to be pretty enjoyable to work with in terms of Agent assisted development. Easier still if you have something you're trying to port or recreate in Rust for various reasons. There are definitely some rougher edges around a few things as you get more general purpose in terms of app targets. Some of the DB engines can use some work or may be missing interfaces you use in other supported languages/platforms... There's a somewhat limited set of UI options, and no clear winner.Lifetimes can get pretty hard in very complex code bases... even if other aspects of burrow checking may be more common, this is where I've had and seen the biggest gaps in understanding in practice. That said, you can usually do inefficient things to work around these issues with the opportunity to come back later. Often inefficient Rust with lots of clone operations is still faster, smaller, lighter than the same services in Java or C# as an example.
by tracker1
5/9/2026 at 10:19:52 PM
[flagged]by bsder
5/9/2026 at 11:36:30 PM
As an amateur in the space: I download on Mac, run `ngspice`, "Error: Can't open display: :0". I look in the code - hardcoded X11-era assumptions. Not exactly modern affordances...Then I try to understand and extract the actual formulas, and there isn't a clean formula layer anywhere. All is procedural, e.g. in `b4v6temp.c` formulas are tangled with branching, caching, model-state mutation. Extracting the computation, embedding cleanly and exposing through a sane API feels hair-pulling.
So yeah, maintained, but not as in 'modern, embeddable, understandable software component' I'd be looking forward in a rewrite. Maybe not even touch the simulation core, just rewriting Embedding/API layer and the UX would already be a big deal.
by gobdovan
5/10/2026 at 11:53:04 AM
This explains a lot. But you merely need to look into the family of spice forks to realise, given the way that they're strangely limited to certain operating systems and embedded inside certain proprietary IDEs, that's there's something very wrong with the code architecture.So, that would be an awesome project!
by versteegen
5/10/2026 at 12:19:54 AM
> As an amateur in the spaceWhy are you not using this through KiCad? That's what I would expect an amateur to do; especially since they handle the UX that you are complaining about.
And you are complaining about tangled code but that code is almost certainly hyper-optimized since performance actually mattered a LOT to people running spice simulations. ng-spice (and Spice3 and Spice2) were not written for programming ease; they were written to get a real job worth real money done.
In addition, any change you make to that code needs to be run back through numerical regression tests to make sure you didn't break things since this is software that people expect to get correct answers.
However, if the legacy seems to bother you so much, perhaps you should look at Xyce from Sandia?
by bsder
5/10/2026 at 1:59:00 AM
> Why are you not using this through KiCad? That's what I would expect an amateur to do; especially since they handle the UX that you are complaining about.They sound like an amateur at circuit design, not software engineering (which is how I'd describe myself too).
by dwattttt
5/10/2026 at 3:28:58 AM
KiCad is still the preferred interface.The original point stands. Ngspice shows its heritage from the days of Fortran far more than a modern code base would or should. It's sole great virtue (from my point of view) is that it integrates with KiCad and only falls over with no reason about 5% of the time.
I would suspect that some of the simulation systems coming out of the Julia community or Xyce would be a better base.
by ted_dunning
5/10/2026 at 12:44:10 PM
> And you are complaining about tangled code but that code is almost certainly hyper-optimized since performance actually mattered a LOT to people running spice simulations.I can 100% guarantee you, that these are never mutually exclusive at all.
by ruszki
5/9/2026 at 11:50:23 PM
I see "sourceforge" and immediately I think "this project is way behind time and is going to pose a lot of issues to new users, if it's still active".by skeledrew
5/9/2026 at 11:55:36 PM
I could have linked Github repo which has been abandoned for 11 years and ranks higher on Google than the sourceforge page, but that would have maybe been disingenuous. (https://github.com/ngspice/ngspice)by gobdovan
5/10/2026 at 4:09:05 PM
I moved to codeberg and google still insists on linking SOLELY the old archived project on github. While of course snyk and such awful scanners mark them as abandoned because they don't know codeberg exists.by LtWorf
5/10/2026 at 4:17:21 PM
I think this is highlighting the problem the poster you're responding to laments!by the__alchemist
5/9/2026 at 10:32:51 PM
+1, a project presenting at FOSDEM certainly does not need a "revive".by eqvinox
5/9/2026 at 11:46:34 PM
The spice core that ngspice is built off is terrible code. It has a long history going back to 1970s era fortran. Starting fresh is probably preferableby etimberg
5/10/2026 at 12:29:03 AM
> The spice core that ngspice is built off is terrible code. It has a long history going back to 1970s era fortran. Starting fresh is probably preferableThat code is also hyper-optimized for performance. I sincerely doubt you are going to match the performance easily with any random rewrite.
Now, if you had a very clear idea of why the code was making assumptions from the 1990s that are no longer valid, then you might stand a chance of producing something that would outperform it. Or, perhaps, if you had particular knowledge of modern high-performance numerical libraries that you could apply to the problem, then you might be able to beat it.
However, circuit simulation is remarkably difficult to get right (stiff systems with multiple time constants are not uncommon) and generally resistant to parallelization (each device can have its own model which are a unique set of linear differential equations).
If, however, the legacy of ngspice bugs you that much, go look at Xyce and see if that is more to your taste.
by bsder
5/10/2026 at 1:48:00 AM
> and generally resistant to parallelization (each device can have its own model which are a unique set of linear differential equations).Solving sets of differential equations is something that's parallelizable though
See for example how there's physics engines running on GPU. That's mechanics and not electric circuits, however it's differential equations all the same.
by nextaccountic
5/10/2026 at 2:45:43 AM
Which differential equations are you talking about? Linear ones have standard solutions and are definitely parallelisable (though you can basically just write the solution down by hand). Non-linear ones vary from can basically be approximated by a linear solution with corrections to needing to use relaxation methods (which are obviously not parallelisable).Mechanics is generally linear, and for game physics engines fast is more valuable than correct (fast inverse square root being the obvious poster child). Add viscosity and you're in for a bad time.
by aragilar
5/10/2026 at 3:33:48 AM
To be specific, a linear solver can be (as in I have done) written in a week.A serious non-linear solver that handles legacy Spice models is another beast entirely. And if you want to integrate modern advances in algebraic-differential systems you take that to a higher level.
These are not partial differential equations such as you find in Navier-Stokes. These are sparse non-linear differential equations that do not parallelize nearly as simply.
Another example of related problems that parallelize poorly even though they are linear are the FDTD formulations for Maxwell's equations. These are relatively simple systems, but the bottleneck is almost always the memory bandwidth because it is so hard to parallelize.
by ted_dunning
5/10/2026 at 3:33:23 AM
The type of people who need spice is dead serious about accuracy. 1ppm error sometimes is not tolerable. So, an optimization in a game engine is definitely not suitable for engineering simulation.by ycui7
5/10/2026 at 3:07:41 PM
Dude these are incredibly oversimplified models of real components. How are you getting 1ppm when basic shit like tempco and self heating are missing from pretty much every vendor provided spice model?by NavinF
5/11/2026 at 3:07:35 PM
As others have mentioned, it's not actually that performant. The matrix solve is about as fast as a single threaded solution can do, but the problem is parallelizable. There are a number of GPU implementations and I have even heard of offloading the matrix solve to an FPGA, though without unified memory a lot of the gains are irrelevant.Even if you avoid most of the numerical code initially, the interface in the original spice core is a mess of string handling and building a custom shell experience. There are tricks like setting the upper bit of every byte to 1 when inside quotes so that the custom shell history matching skips over things in quotes. Very elegant for the time, but now that means if you want nodes with non ascii names you're either keeping a mapping outside or using utf-7.
Another great example is the expression parsing. There was a long standing bug where the expression parser leaked ~160 bytes for every step of an output expression for every timestep. So for example, if you had "($2 * 4) + 1" as an expression and ran a simulation for 10,000 timesteps you'd leak 8M bytes.
by etimberg
5/10/2026 at 10:04:57 AM
> That code is also hyper-optimized for performance. I sincerely doubt you are going to match the performance easily with any random rewrite.Hyper optimized for '70s era fortran not gonna be all that optimized on modern CPUs.
I bet that just compiler optimizations that LLVM could do with clean code gonna be faster
by PunchyHamster
5/10/2026 at 5:31:19 PM
and correctness too - I guess there aren't that many hardcore electrical engineers/physicists/mathematicians that can make sure the results it makes are correct and sound, and debug weird issues coming from numerical stability.The sort of people who can do this are very rare, and it's not likely they will just randomly decide to donate their time to rewrite the codebase.
by torginus
5/10/2026 at 7:53:36 AM
> Now, if you had a very clear idea of why the code was making assumptions from the 1990s that are no longer valid, then you might stand a chance of producing something that would outperform it. Or, perhaps, if you had particular knowledge of modern high-performance numerical libraries that you could apply to the problem, then you might be able to beat it.But that's exactly the sort of exotic domain knowledge that AI models have that I don't.
by vintermann
5/10/2026 at 5:45:26 AM
That code was optimized for performance for 1980s hardware. It’s very far from optimized for modern CPUs.by pkolaczk
5/9/2026 at 11:57:36 PM
That's not a revive though, revive (at least to me) implies it's dead.by eqvinox
5/10/2026 at 2:54:22 PM
UPDATE: This would make for an excellent case study if you don’t mind sharing the details. I am very curious about the number of agents, hours it took, and models used (did you use Mythos?).This would not have been possible 5 years ago. LLMs are going to push us into the space age. Both Anthropic and OpenAI have committed to spending 10s of billions of dollars on training alone for the year. I am equally excited and terrified at the pace of progress!
by sheepscreek
5/9/2026 at 8:05:45 PM
Rust is really fun to work with and the compiler is great, just make sure the rewrite takes compile times into account since larger projects often have to be organized in a way that makes compilation reasonably fast.by inglor
5/9/2026 at 8:09:36 PM
how long does it take to compile?
@jarredsumner: It's basically the same as in zig using our faster zig compiler. If we were using the upstream zig compiler, rust port would compile faster.
https://x.com/jarredsumner/status/2053050239423312035
by ignoramous
5/10/2026 at 1:26:31 PM
This is at least partially disingenuous. Zig is working on, and has already shipped for some situations, a faster compiler. Bun runs on an outdated version of Zig that doesn't include it.by jorams
5/9/2026 at 11:00:22 PM
In my experience Bun in Zig compiles more slowly than Deno in Rust.by laurencerowe
5/9/2026 at 11:29:56 PM
Single compiles for sure. Where Zig is optimizing compilation is in the incremental compiler, which I've seen compile the compiler itself in an instant after a single line change. Of course, that kind of speed is probably not interesting to some people if the AI is writing tons of lines of code before they go to the compilation step.by hiccuphippo
5/10/2026 at 1:03:02 AM
I found making single line changes in Bun’s zig code led to very long compiles compared to doing the same in Rust code. It was a while ago though and maybe I was doing something wrong.by laurencerowe
5/10/2026 at 5:30:53 AM
Probably a very long time ago then. Try again with Zig 0.16. It's amazing how fast recompiles can be.by cdud3
5/10/2026 at 7:36:28 AM
They can't, because Bun is tied to a fork of Zig 0.14 which is not compatible with regular Zig compiler.by lukaslalinsky
5/10/2026 at 6:50:51 PM
Bun’s patched Zig is on Zig 0.15.1by Jarred
5/10/2026 at 1:28:01 AM
What coding model are you using for the rewrite? Opus for everything? A prerelease model like Mythos?by cpeterso
5/10/2026 at 9:05:08 AM
Just an aside, is there any way to know how many of those 16,000 compiler errors are independent. I mean, could it be that just by changing say 500 lines of code all those errors disappear?Perhaps 16,000 could just measure cascade breakage, for example one lifetime mismatch can cause errors in every function that tries to use that reference.
Rust reference lifetime bookkeeping is a difficult task for LLMs. The LLM has to maintain, across multiple functions and structs, which references outlive which. Furthermore compiler messages are highly contextual and lifetime patterns are sparse in the training set.
by folderquestion
5/9/2026 at 8:59:02 PM
That's a post I am eagerly waiting to read.Basically we are seeing now an "inverse Hofstadter's Law" where doing something with an LLM takes less time thanexpected even when you take into account this law.
I am a Rust developper myself but I really love Zig and Bun. I am just overly curious of all this.
by nhatcher
5/10/2026 at 2:00:58 AM
> Basically we are seeing now an "inverse Hofstadter's Law" where doing something with an LLM takes less time thanexpected even when you take into account this law.Even LLMs themselves can't accurately estimate this (though this may be out of distribution stuff)
by nextaccountic
5/10/2026 at 12:54:02 PM
LLMs have no conception of time, unless you explicitly feed in timestamps to the contextby yen223
5/10/2026 at 7:15:40 PM
It doesn't stop LLMs provide "this feature set will require 4 months to finish" (and then finishing it one hour)by 0x457
5/10/2026 at 8:26:30 PM
Sorry yeah, I meant to say LLMs have no concept of time, so time estimates they give are almost always hallucinationsby yen223
5/11/2026 at 8:19:11 AM
Scotty from Star Trek does approve!by bw86
5/10/2026 at 12:51:41 AM
This does not surprise me in the least. Several Claudes are very good at splitting up and working through them all.by Aeolun
5/9/2026 at 10:14:22 PM
I think given the current mood of things, it would be prudent to not make such strong assertions on anything. Trust is in increasingly short supply these days.by Eufrat
5/9/2026 at 10:21:26 PM
Nothing Jarred said is an assertion other than "There’ll be a blog post with more details."by minimaxir
5/9/2026 at 11:45:09 PM
"I didn’t expect it to work this quickly and I also didn’t expect the performance to be as competitive."These are two assertions. There could have been a prior secret rewrite that took much longer than six days and this is a marketing stunt for Anthropic. In case people still don't get it, Jarred works for Anthropic and Bun belongs to Anthropic.
by dakj12iH
5/10/2026 at 12:06:02 AM
Those are not assertions of anything meaningful. We have no idea what his expectations were. Maybe he expected it to be absolute crap, and it was only kind of crap. None of it means that it's actually viable. My fat uncle trying to beat Bolt's time could exceed my expectations by improving from 30s to 20s, doesn't mean it's ever going to be a reality.> In case people still don't get it, Jarred works for Anthropic and Bun belongs to Anthropic.
In case people still don't get it, Jarred works for Anthropic and Bun belongs to Antrhopic. This means that people that have an ax to grind against anthropic (admittedly a reasonable position), will take the most antagonistic position they possibly can because of personal bias.
by preommr
5/10/2026 at 1:21:51 AM
I disagree. This is the same sort of marketing strategy as Mythos.Wow it out performed so much we have to tell you in the future. If he wasn't aligned financially with the outcome I'd agree but he's notby thrwaway55
5/10/2026 at 1:23:35 AM
So do you picture them locking up the Rust port behind closed doors as well, or what's the game gonna be? Cause it reads like it's kinda all public already.by perching_aix
5/10/2026 at 1:56:02 AM
Absolutely not, I think they prioritize it because it's internal. I to expect to see a stronger marketing push on its ability to do language translations because there is honestly value in that. Question is when they have compute but it's less crisis marketing then their security stuff so I'd see it at a lower priority. I just don't think it's as honest as the parent post positsby thrwaway55
5/10/2026 at 2:30:34 AM
The Mythos-truther community is absolutely batshit, sorry. You wrote fanfic and now you're writing more fanfic. The company is faking for marketing so therefore they're faking for marketing. The only things in common between the two situations are you and the word Anthropic, the rest of us are just confused and worried. I'm worried, that's why I'm speaking to you plainly.by refulgentis
5/9/2026 at 7:57:29 PM
> I am so tired of worrying about & spending lots of time fixing memory leaks and crashes and stability issues. it would be so nice if the language provided more powerful tools for preventing these things.haven't used zig...(only used rust)
but zig doesn't solve those problems?
by sysguest
5/9/2026 at 8:46:28 PM
Zig is a middle ground. It solves some of the common foot-guns in C, Without the costs of affine substructural typing that offers Rust its super powers.I am of the opinion that it is horses for courses and not a universal better proposition.
Because my needs don’t fit in with Rust’s decisions very well I will use zig for personal projects when needed. I just need linked lists, graphs etc…
While hopefully someone can provide a more comprehensive explanation here are the two huge wins for my use case.
1) In Zig, accessing an array or slice out of bounds is considered detectable illegal behavior.
2) defer[0] allows you to collocate the the freeing of resources with code.
That at least ‘feels’ safer to me than a bunch of ‘unsafe’ rust that is required for my very specific use case.
I was working on some eBPF code in C and did really miss zig.
For me it fits the Pareto principle but zig is also just a sometimes food for me, so take that for what it is worth.
by nyrikki
5/9/2026 at 9:05:55 PM
Fwiw you don't need unsafe for graphs or linked lists in Rust. At least not directly - these things can be abstracted. The petgraph crate is the most popular for graphs. I'm not sure about linked lists because linked lists are the wrong choice 99.9% of the time.I've written hundreds of thousands of lines of Rust and outside of FFI, I've written I think one line of unsafe Rust.
by IshKebab
5/9/2026 at 9:23:10 PM
[flagged]by fao_
5/9/2026 at 11:03:15 PM
Not really though. That's like saying that no language is "safe" because the compiler could have a bug.It's true that safe wrappers around unsafe code sometimes have bugs in them, but it's orders of magnitude easier to get the abstraction right once than to use unsafe correctly in many places sprawled across a large codebase.
by dralley
5/9/2026 at 9:45:19 PM
It's not as simple as that. All software is abstraction and with any software if you go deep enough you'll find unsafe code.E.g. look at a Python list. Is it safe? In Python sure, but that's abstracting a C implementation which definitely isn't safe.
If you look at Rust's std::Vec you'll find a very similar story - safe interface over an unsafe implementation.
It isn't as binary as you think.
by IshKebab
5/9/2026 at 9:58:30 PM
If you don’t see any difference between those two, I’m really not sure what to say.by paulddraper
5/9/2026 at 9:32:26 PM
Show codeby awesome_dude
5/10/2026 at 10:31:17 AM
I think he meant "show me a true linked list / node graph in rust that isn't unsafe". The reason being its not possible using c-style pointer following (or without just putting everything auto-pointers). What you've shown is exactly the tradeoff they were referring to. In rust, the answer is: make sure lifetime of all memory is explicitly managed, then use integers for the 'links' between nodes.His point was that for his programming, he wants to be able to make real pointers and real linked lists with memory unsafe, which Rust makes difficult or opaque. For example with linked list, you could simulate (to avoid unsafe), by either boxing everything (so all refs are actually smart pointers), or you can use a container with scoped memory lifetime, and have integers in an array that are the "next" pointer. In addition to extra complexity, the "integers as edges" doesn't actually solve the complexity, it just means you can't get a bad memory error (you can still have 'pointers' that point to the wrong index if you're rolling your own).
Same with your graph code. Using a COO representation for a graph does in theory make it "memory safe" (albeit more clumsy to use if you are doing pointer-following logic), and it also introduces other subtle bugs if your logic is wrong (e.g. you have edge 100 but actually those nodes were removed, so now you're pointing at the wrong node).
I think the point (which I agree with for things like linked list, graph, compiler) is that depending on your usecase, the "safety" guarantees of rust are just making it harder to write the simplest most understandable code. Now instead of: `Node* next` I have lifetimes, integer references, two collections (nodes and edges) to keep in sync, smart pointers, etc. Previously my complexity was to make sure `next != null`, now its a ton of boilerplate and abstractions, performance hits, or more subtle bugs (like 'next' indices getting out of sync with the array of 'nodes').
If there was a way to explicitly track the lifetime of an arbitrary graph/tree of pointers at compile time, we wouldn't need garbage collection -- its not solvable at compile time, and the complexity has to live somewhere.
by program_whiz
5/10/2026 at 2:30:58 PM
> it also introduces other subtle bugs if your logic is wrong (e.g. you have edge 100 but actually those nodes were removed, so now you're pointing at the wrong nodeThis is not actually a different kind of bug; it's just use-after-free, which you can of course get when using pointers instead of indices.
Actually it's slightly safer than pointer use-after-free because it is type safe and there's no UB.
Also some of the Rust arenas give you keys (equivalent to pointers) which can check for this. There's a good list here (see "ABA mitigation"):
by IshKebab
5/9/2026 at 9:46:02 PM
Err https://github.com/petgraph/petgraphWhat are you asking for exactly?
by IshKebab
5/10/2026 at 10:28:42 AM
Forgive me if I've mis-understood this thread, but there are unsafe declerations in that crate. Is there really any difference between using unsafe in your own code, versus wrapping it inside some crate?I guess you are making the point that the user does not have to concern themselves with the unsafe declarations?
by zipy124
5/10/2026 at 1:17:39 PM
> Is there really any difference between using unsafe in your own code, versus wrapping it inside some crate?Yes, in the same way that there's a difference between using `std::Vec` (which uses `unsafe`), and writing an unsafe Vec class yourself.
Or even the difference between using Python (which wraps an unsafe CPython implementation), and doing everything in unsafe Python code.
The difference is that widely used code like CPython and `std::Vec` are much much better tested and audited than anything I would write myself, because so many people use them. This is a continuum so something like petgraph is going to be not as well tested as std::Vec but still way better tested than anything I've written.
by IshKebab
5/10/2026 at 12:34:04 PM
I would say yes, there’s a difference, in general. I would much rather leave the unsafe code to crates used and tested by many other applications, than have them in the application code itself.by simonkagedal
5/9/2026 at 11:46:23 PM
I don't think it's unreasonable, even though I am getting marked down for daring to ask, for people who are making assertions, even if they are well understood *within their own community* (that is, not necessarily universally known) to show examples of what they are talking about.You're correcting someone, so it's clear that your understanding isn't universal, and example code is the absolute minimum.
by awesome_dude
5/10/2026 at 1:04:14 AM
It doesn't seem clear what code you're asking for.by rascul
5/9/2026 at 8:16:38 PM
zig is unmanaged memory. But rust also allows memory leaks, and they're not uncommon in large, complex programs. So this rewrite will not necessarily control for that.by efficax
5/10/2026 at 9:15:56 AM
What language doesn't allow memory leaks?by X0Refraction
5/10/2026 at 9:29:16 AM
There are two kinds of memory leaks: forgotten manual freeing (all references are gone, but allocation is not) and forgetting to get rid of references that keeps an allocation alive. Both are a kind of logical error, but the first is mostly possible in languages with manual memory management. The second one is a universal logical error (only programmer knows which live references are really needed).by dmytrish
5/10/2026 at 4:49:37 PM
In the Haskell community I’ve seen the second kind called “space leaks.” I don’t see it used much outside that community but I like the term and use it when talking about other languages as well.by ethanpailes
5/10/2026 at 12:21:19 PM
Rust allows reference-counting cycles, right?by tardedmeme
5/10/2026 at 8:36:21 PM
I suppose all languages allow them, depending on how you define a memory leak. Garbage collected languages generally prevent them, since you never have to explicitly free memory, but if there are reference cycles, that memory can never be freed automatically. Rust has the same problem, but since rust uses lifetimes to understand when to drop things, many people expect that this will mean there can be no memory leaks, but leaks are not considered a correctness or safety issue (oom is a panic and panic is safe!). Not only explicitly possible (through Box::leak) but also possible by mistake (again, usually through reference cycles).by efficax
5/11/2026 at 6:25:38 AM
> but if there are reference cycles, that memory can never be freed automatically.Many garbage collection algorithms can deal with cycles.
by xigoi
5/9/2026 at 11:15:29 PM
Zig doesn't even have RAII...by SuperV1234
5/10/2026 at 12:44:26 AM
which is a good thing. C++'s RAII is magic-sauce that does a lot for you when you can simply use `defer` in zig. A constructor is just a function call. A destructor is just a function call.by reactordev
5/10/2026 at 1:09:06 AM
And a function call is just a fancy JMP, still it's generally acknowledged to be better to have all the bookkeeping automated.by shakow
5/10/2026 at 10:24:28 AM
Does defer in zig track the objects lifetime directly, or is it like the various other 'context' features in other languages where it only really works for lifetimes of function-local variables and leaves you on your own when things get more complicated? (which, IMO, is precisely when RAII becomes most useful. It does seem like most of these languages only consider the 'forgetting to cleanup on an early return from a function' case)by rcxdude
5/10/2026 at 10:12:07 AM
Constructors and destructors are also just function calls in C++And you can't forget to type defer
by nly
5/11/2026 at 1:19:17 PM
It's not a good thing. The reasoning is extremely simple and I don't understand how can anyone oppose it: there are some operations that you don't want to forget BY DEFAULT.If I open a file, eventually I want to close it. If I allocate some memory, eventually I want to deallocate it.
Any programming language design that intentionally puts the onus BY DEFAULT on the user to *not forget to manually do something* is honestly asinine.
Defer has a place (I do use defer in C++, in fact you can implement it with RAII, proving that RAII is strictly more powerful/more flexible), but the default should be the safest and most straightforward option.
Also "magic-sauce that does a lot for you" is just false. It's literally a function call injected at the end of a scope.
by SuperV1234
5/10/2026 at 1:31:03 AM
How is defer not magic sauce?by fooker
5/10/2026 at 3:07:58 AM
Whether you consider it magic is up to you, but, unlike a destructor in RAII, there is nothing automatic going on. If you don't explicitly invoke a destructor, you won't get a destructor.The fact that you can explicitly invoke the destructor to happen later is simply syntactic sugar, just like if/else/while, or any other control construct more powerful than a conditional jump instruction.
by zephen
5/10/2026 at 7:40:53 AM
And more importantly, you can choose what destructor to call. This is perhaps what's most underrated about defer, because defer can select among many different destructors possible, at multiple different levels (group free with arenas, individual free, etc).by smj-edison
5/10/2026 at 4:31:52 PM
Or even whether you need a destructor, or something simpler, like nulling out a pointer or two to break a reference loop.defer is a perfectly general structured flow concept; it only cares about when you do something, and is completely orthogonal to what you need to accomplish.
by zephen
5/10/2026 at 6:30:27 PM
I'm not sure the folks responding can tell the difference.by reactordev
5/10/2026 at 6:21:09 AM
> If you don't explicitly invoke a destructor, you won't get a destructor.When you explicitly invoke a "destructor", you do it on many code paths (and miss one or two)
>The fact that you can explicitly invoke the destructor to happen later
You don't specify where the `defer`-red "destructor" will be invoked.
by drysine
5/10/2026 at 4:28:40 PM
> When you explicitly invoke a "destructor", you do it on many code paths (and miss one or two)Unless, of course, you do it inside a defer block.
> You don't specify where the `defer`-red "destructor" will be invoked.
Yes, actually, you do. It is patently obvious, by code inspection, where the destructor, or anything else specified in a deferred block, will be invoked. defer is a perfectly cromulent part of structured control flow, allowing for easy reasoning about when things occur without having to calculate an insane number of permutations of conditional branch instructions.
by zephen
5/9/2026 at 8:05:27 PM
Nope! Zig is like C in this regard. There’s no borrow checker. Managing memory is your responsibility.It gives you a few more tools than C - like a debug allocator, bounds checked array slices and so on. But it’s not a memory safe language like rust.
by josephg
5/9/2026 at 8:39:23 PM
It's not.. but im pretty sure it could be. could probably even take this (WIP) idea and bolt on a formal verifier pretty easily.by dnautics
5/10/2026 at 12:00:09 AM
It'd take more than that to match rust's borrow checker. Rust's borrow checker tracks lifetimes, and sometimes needs annotations in code to help it understand what you're actually trying to do. I suppose you could work around that by adding lifetime annotations in zig comments. Then you've have a language that's a lot like rust, but without an ecosystem of borrowck-safe libraries. And with worse ergonomics (rust knows when it can Drop). And rust can put noalias everywhere in emitted code. And you'd probably have worse error messages than the rust compiler emits.Its an interesting idea. But if you want static memory safety in a low level systems language, its probably much easier to just use rust.
by josephg
5/10/2026 at 2:27:36 AM
> I suppose you could work around that by adding lifetime annotations in zig comments.you can make a no-op function that gets compiled out but survives AIR
> rust knows when it can Drop.
and its possible to cause problems if you aren't aware where rust picks to dropp.
> And rust can put noalias everywhere in emitted code.
zig has noalias and it should be posssible to do alias tracking as a refinement.
> But if you want static memory safety in a low level systems language, its probably much easier to just use rust.
don't use that attitude to suck oxygen out of the air. rust comes with its own baggage, so "just using rust because its the only choice" keeps you in a local minimum.
by dnautics
5/10/2026 at 2:40:25 AM
> and its possible to cause problems if you aren't aware where rust picks to drop.Can you give some examples? I've never ran into problems due to this.
> don't use that attitude to suck oxygen out of the air. rust comes with its own baggage
Yeah, that's a totally fair argument. One nice aspect of the approach you're proposing is it'd give you the opportunity to explore more of the borrow checker design space. I'm convinced there's a giant forest of different ways we could do compile time memory safety. Rust has gone down one particular road in that forest. But there's probably loads of other options that nobody has tried yet. Some of them will probably be better than rust - but nobody has thought them through yet.
I wish you luck in your project! If you land somewhere interesting, I hope you write it up.
by josephg
5/10/2026 at 3:13:05 AM
> Can you give some examples? I've never ran into problems due to this.If it's doing a drop in the hot loop that may be an unexpected performance regression that could be carefully lifted.
thank you. Unfortunately in the last few weeks i've been too busy with my startup to put as much work into it. We'll see =D
by dnautics
5/10/2026 at 4:35:54 AM
> If it's doing a drop in the hot loop that may be an unexpected performance regression that could be carefully lifted.Yeah, I've heard of people being surprised that when they make massive collections of Box'ed entries, then get surprised that it takes a long time to Drop the whole thing. But this would be the same in C or Zig too. Malloc and free are really complex functions. Reducing heap allocations is an essential tool for optimisation.
The solution to this "unexpected performance regression" in rust is the same as it is in C, C++ and Zig: Stop heap allocating so much. Use primitive types, SSO types (SmartString and friends in rust) or memory arenas. Drop isn't the problem.
by josephg
5/10/2026 at 8:00:36 AM
In zig the solution is to use an arena allocator. That’s about as easy as it gets. Maybe Rust also allows doing that, I don’t know.by brabel
5/10/2026 at 11:45:58 AM
You can use arenas in Rust, it's just not as trivial to swap allocators generally. But there are plenty of crates for it.by staticassertion
5/11/2026 at 3:49:01 AM
no, in zig it's never unexpected, because if you're freeing memory the freesite is known, it's a function call.by dnautics
5/12/2026 at 12:05:08 AM
Right; because in zig the default behaviour is to leak memory. Rust adds an invisible free() call. Leaking is something you have to do explicitly.I understand zig's philosophy here. But I prefer rust's default behaviour.
by josephg
5/12/2026 at 3:37:43 AM
yeah, IMO generally explicit is better. It's hard to take something implicit and increase the visibility (I'm aware there are tools to show you lifetimes in rust). But another option is to statically analyze the code (or the IR) and have something else check that you aren't leaking.by dnautics
5/10/2026 at 7:58:46 PM
Those tools exit in C tooling as well, now that many ignore them is another matter.MSVC has a debug allocator since at least Visual Studio 5.
by pjmlp
5/10/2026 at 6:23:47 AM
It is quite obvious that Zig is pre 1.0 with thousands of stranded unsolved issues (per their GitHub repo). A review of Zig hype gives the strong impression it was created by being relentlessly and suspiciously pushed on HN, beyond logic or its language rankings (per TIOBE or GitHub stats), so that many were under the illusion that the language was something more or other than what it really is.Zig is still under development and beta. Stability, crashes, and leaks should not be surprising, and even expected. To stick with a beta language, usually companies and developers are philosophically and/or financially aligned with the language. An example is JangaFX and Odin, where they not only have committed to using the language (despite being beta) in their products, but have directly hired GingerBill.
Team Bun appears to have "alignment and relationship issues" with Zig, to the point they have decided to extensively explore their options. Now Bun is rewritten in Rust. They are seeing if Rust solves their requirements. As with any relationship, if one ignores or takes a partner for granted, don't be surprised if they want a divorce or jump to someone else.
by baranul
5/10/2026 at 7:39:04 AM
You might want to check their Codeberg then, because they've moved all their development over there...by smj-edison
5/10/2026 at 8:01:47 AM
Zig very much could of moved all of their GitHub issues over to Codeberg, to be resolved, but chose not to do so. Thus left thousands of issues unsolved and stranded.This maneuver was arguably obfuscated by the anti-LLM stance and finger pointing at Microsoft, but nevertheless, many still have noticed. Zig, for a long time, had been falling behind and doing poorly on their open to close ratio for resolving issues. It should be embarrassing to leave so many issues open.
Even if not accepting new GitHub issues, they have demonstrated an inability to resolve existing issues, except at an extremely slow pace. Considering there are just about no new issues on their GitHub repo, it is understandable if there are those that find the pace to close and amount of issues unacceptable or questionable, in addition to the clearly bad open to close ratio.
by baranul
5/10/2026 at 8:25:58 AM
Did you read their migration post? They are thinking about it as COW, so they're using both issue trackers right now, but as soon as the update an issue it jumps straight to the Codeberg issue tracker. It's an unconventional way of doing it, but it's no conspiracy.by smj-edison
5/9/2026 at 8:11:29 PM
Peter Naur: Programming as Theory BuildingBun: Hold my beer
by lelanthran
5/9/2026 at 7:33:24 PM
"No one has the intention of building a wall" - Walter Ulbricht, chairman of the central committee, a couple of months before the Berlin Wall was built.The AI companies and their associates are beginning to surpass that level of denials and lies.
by 4aksh19
5/9/2026 at 8:20:37 PM
It’s disrespectful to immediately jump to adversarial conclusions from a simple desire to refactor and poor netiquette.by christopherwxyz
5/9/2026 at 8:52:56 PM
The right to be suspicious of the motives of powerful people is infinitely more important than protecting their feelings from being hurt by suspicion.by yrjrjjrjjtjjr
5/9/2026 at 10:49:26 PM
Powerful people figured out how to make suspicion work for them long ago. You have every right to be unconditionally suspicious, but it’s not a good way of accomplishing any change. Also their feelings are not hurt by what you or I think, they don’t care.by johncolanduoni
5/10/2026 at 4:32:10 AM
> Powerful people figured out how to make suspicion work for them long ago. You have every right to be unconditionally suspicious, but it’s not a good way of accomplishing any change.How does one accomplish change? Even being a martyr doesn't get traction. As far as I can tell, you need to already be powerful. Nobody lets you into that group if you're not aligned with said group.
Protests (at least in their current form) don't work. Trying to assassinate someone doesn't move the needle (also not the play, I don't support murder), vocal grassroots leaders are no longer relevant at all, if they ever were.
How does one accomplish any change?
by irishcoffee
5/10/2026 at 4:40:52 AM
Not by trading the same suspicions on the internet with fellow true believers over and over again, I think the past 10 years have proven that pretty conclusively. Maybe people should try some of the things previous social movements did, seemed to work pretty well even against a much more uniform media environment and a stronger hostile social consensus.Protests don’t immediately solve everything, but I think looking at 2026 and concluding they don’t move the needle at all is a weird take. There are recent examples of protest movements (especially long-term ones) working all over the world.
by johncolanduoni
5/10/2026 at 1:19:32 PM
I said assassinations don’t move the needle. Protests just give people the warm fuzzies. They don’t change anything. Tell me what has changed with all of the no kings protests? How well did it go for Iran when they protested?The onus is on you to prove your point, not me to disprove it.
by irishcoffee
5/10/2026 at 1:55:36 PM
I’m not asking you to prove my point, but I think you’re being myopic.* Vikor Orban was just ousted by a popular protest movement. This took years due to structural electoral issues but it did work eventually. And it wouldn’t if the people opposing him gave up because they didn’t change anything right away.
* The US ICE protests (and the federal government’s insane overreaction to them) let to the head of DHS being fired and a quantifiable drop in ICE activity (e.g. arrests and number of people currently detained).
* Nepal’s protests last year led to the resignation of the prime minister and a resounding electoral victory this year for their opponents.
Protests aren’t magic win buttons, especially because even the people protesting don’t fully agree on exactly what “winning” looks like. But they accomplish more than acting out your emotions on the internet.
by johncolanduoni
5/10/2026 at 10:28:19 AM
Become mighty rich too first, and then accomplish change.by airstrike
5/10/2026 at 10:40:12 AM
> Also their feelings are not hurt by what you or I think, they don’t care.I would have agreed with this like 15 years ago, but the very existence of Twitter (and the acquisition saga) proves this to not be true.
by klausa
5/10/2026 at 7:31:24 PM
Dario Amodei is not Elon Musk. Most powerful people do not internalize the emotions of others (though obviously some do). If you think powerful people are disproportionately sociopaths, you either agree with me or are not using the word correctly.by johncolanduoni
5/10/2026 at 6:37:25 PM
> Also their feelings are not hurt by what you or I think, they don’t care.Definitely not true, they tend to care more than most.
by root_axis
5/10/2026 at 7:25:12 PM
They generally care about what powerful/influential people think. I’m not powerful or influential, but I guess maybe the person I was talking to is. If so I apologize for the miscommunication.by johncolanduoni
5/10/2026 at 9:09:58 PM
They care. They are very sensitive to their public image and most cannot tolerate criticism or disapproval.by root_axis
5/9/2026 at 11:10:06 PM
This isn’t about rights. It’s about not being a jerk. Assume positive intent unless you have direct evidence to the contrary.by otterley
5/9/2026 at 9:52:35 PM
Protecting software creators, engineers, builders, and their work, regardless of their tools, is infinitely more important. Full stop.by christopherwxyz
5/9/2026 at 8:55:36 PM
Four days ago there was no intention to rewrite, now it's a simple desire to refactor. It's not adversarial conclusion, it's pointing out the clear hypocrisy.by dandellion
5/9/2026 at 9:08:52 PM
Running an experiment, the experiment being more successful than you thought, and then deciding to put more effort into a bigger experiment is not hypocrisy. It’s engineering. If you think some of the objective facts they’re putting out (like test coverage and performance) are lies, go and prove it instead of appealing to emotion.by johncolanduoni
5/9/2026 at 11:40:35 PM
Especially if given near unlimited tokens to burn through, because any level of success fuels the LLM hype machine, which brings ROI.> It’s engineering.
Significantly, but not totally. The marketing value can't be ignored.
by baranul
5/10/2026 at 1:38:23 AM
What do you think one would have to pay to have flesh-and-blood engineers get a cross-language port of a codebase of over half a million lines with a broad test suite to over 99% conformance? I think it would be astronomically high, especially given that for this specific project your hiring pool is going to be limited to people who can get up to speed with Zig and JavaScriptCore right away (or you’re going to have to pay them for low output for a while as you train them). Also it would be literally impossible to do in 6 days no matter how much money you paid, so unless they’re lying about that it’s still something that couldn’t have been done prior for any price.More handwaving about the LLM hype machine is incredibly boring and enough of it is spewed everywhere that whatever social good it was going to accomplish must have already happened by now. If you want to inject reality into the situation, talk about reality (like Anthropic is at least pretending to).
by johncolanduoni
5/10/2026 at 2:03:45 AM
The hype machine is real and we will talk about it as long as it pleases us. It took decades to get rid of smoking in public places and restaurants, and the clankers will eventually fall, too.So cash out before that.
by rkajdh
5/10/2026 at 2:52:22 AM
Did I say it wasn’t real? Or tell you that you couldn’t talk about it? No, I just pointed out that it’s all anybody talks about and it’s boring and doesn’t engage with anything specific about this stunt/project. And I can make melodramatic analogies too — like to the panic about global overpopulation that led to mass sterilizations in The Emergency. Panic is not an unalloyed good, and if you want to fight “the clankers” you should understand what they are and are not capable of.Also I already cashed out, jokes on you.
by johncolanduoni
5/10/2026 at 10:40:19 AM
Anti AI cope is unreal, the comparisons to smoking won't stop lol. The mental model of such people (like you) will be studied. LLM's won't go anywhere, keep dreaming.by simianwords
5/10/2026 at 12:24:10 PM
Studied by whom? Your virtual AI concubine who has you under her thumb? I thought human thinking is obsolete, as can be seen by your comments.by sdhAt1
5/10/2026 at 3:04:39 PM
Sure. Let’s see whether ai sticks or not. Till then whine about it in the internet. Maybe a few would careby simianwords
5/10/2026 at 10:51:45 AM
This attempt is like shooting for the stars. Most of us software developers are plumbers and we just need to reach to the moon.by renticulous
5/10/2026 at 11:16:51 AM
Running an experiment and deciding based on the results is not hypocrisy, it's engineering, 100%.Saying you have no intention of doing something then doing it is not engineering, it's being dishonest. He could have said "well decide when we see the results", why didn't he?
by dandellion
5/10/2026 at 4:50:44 PM
If he wasn’t willing to change his mind after he saw the results, then why would he do it at all? Can you explain the false motivation that you think he communicated in the original kerfuffle about this?by johncolanduoni
5/10/2026 at 10:44:19 PM
Why are you conflating "no intention of doing a rewrite" with his actual wording, "we haven’t committed to rewriting"? The latter does not at all indicate that there would definitely not be a rewrite.by BatmanAoD
5/10/2026 at 11:58:06 AM
Maybe he didn't think it would work. Maybe even if it does "work" they'll keep the zig version anyway. Maybe further study is needed beyond existing compiling/test-suite. Intentions and perspectives change over time, even only a few days, without dishonesty.I'm guessing that if I said it ... that we have no intention of re-writing in rust ... that what I mean is "we have no intention of spending the extreme cost it would take to rewrite". When I discover the cost model is completely different that changes things.
by awwaiid
5/10/2026 at 1:30:27 PM
Giving an opinion and making a commitment are different things, wording is important.If you mean "we have no intention of spending the extreme cost it would take to rewrite" then say that, and it would be fine. If you instead say "we have no intention of re-writing in rust" you've said something very different, using a different set of words, which changes the meaning. Especially, if you say it directly in response to someone asking you whether you're going to rewrite or not like was the case here, and say that there's a high chance you'll just be throwing it away, to get the other person off your back. If then you go ahead and do it, expect them to call you out for it.
This is a very simple concept that can generally be understood by children at around age 4. Trying to cover it with vague terms and using the defence of "well I said I had no intention, and I probably won't do it but you see, I saw the results so I changed my mind so the chance was small but not zero", that's what a slightly older kid will try to do to see if they can get away with it, and as any kid discovers, that doesn't fly.
by dandellion
5/9/2026 at 9:55:04 PM
Being able to change your mind is a excellent exercise in free will.by christopherwxyz
5/10/2026 at 11:15:16 AM
Totally.Saying you don't intend to do something and then doing it is free will.
It's also lying. They are not mutually exclusive.
by dandellion
5/10/2026 at 3:07:41 AM
"People cannot change their mind!One must stick to old assertions forever!
Giant foot is gonna squish us!"
...this forum is as bad as a single backwater sub Reddit.
I am so sick of emotionally frail software engineers. I don't know why I keep bothering floating back here every once in a while to see what is up.
Same old rustled jimmies over technology evolution like back during the emacs and vi! tabs vs spaces! Sysv init vs systemd!
Super hero power scaling message boards are more engaging than this site.
AI save us from these needlessly economically empowered labor exploiting non-contributor script kiddies. Such an unserious community.
by y3ahd0g
5/10/2026 at 11:10:40 AM
Okay, that's such a shallow take I'm going to try and explain it to you like you're 5 years old:Changing your mind is okay, for example if someone said it was impossible to do the migration with current LLMs and it turns out they did it in four days, that person can and should admit they were wrong. That's not what he did though. What he did is say he had no intention of doing it, and then did it. That is lying. If he was testing and he didn't know if the change was going to be worth it, he could have said for example:
"This branch is a test, it's not a given it will work so until we see the results we won't decide if we'll be migrating or not."
He didn't say anything like that though, he basically said:
"We have no intention to migrate."
Why did he said the latter and not the former? Because he wasn't being honest, he was just trying to get people off his back, and so he didn't say what he was doing, the best for his own interest. We have a saying in my country: "it's easier to catch a liar than someone who's lame".
Also, before you come and say but he said he had no "intention" not that he wasn't gonna do it. A five year old might think that's a valid argument, but this person is an adult and we're all adults here, so it's not, it's equivocation and it's a logical fallacy.
> I am so sick of emotionally frail software engineers.
Then don't look in the mirror, you're probably being the biggest crybaby in this thread so far.
by dandellion
5/9/2026 at 9:33:44 PM
If experienced (in open source and corporate politics) developers would bet on Polymarket if the rewrite is going to be ultimately merged, which side would you bet on?What would the emerging odds be? My guess is 19/20 in favor of ditching Zig.
I have followed many initial denials on a wide range of topics, not only rewrites, over the years. Like clockwork, most of them were lies.
by erkat
5/10/2026 at 4:07:41 AM
I don't think there's much chance it gets merged.Even if it passed the full test suite there are a ton of software qualities that are not captured by tests and I think it's unlikely the AI made the right trade-off in every such case.
* We haven't seen the benchmarks yet.
* It hasn't seen wide usage. Zig Bun has had tons of bugs ironed out, Rust Bun has a different set of bugs to iron out.
* The developers know the zig codebase well, they don't know the rust code base.
by geysersam
5/9/2026 at 9:53:06 PM
I don't think most serious developers have time to watch prediction markets.by christopherwxyz
5/9/2026 at 8:34:44 PM
Not to mention invoking a major historical event, appeal to emotion move.by Cthulhu_
5/9/2026 at 9:01:30 PM
you know this whole exercise is both a marketing exercise and a way to make noise.would the world come to a standstill tomorrow if every Bun instance out there ran on Node.js ?
they know their A.I can't sell without the noise that it's now on the edge of the frontier. this is hype.
zig adopting a strict 'no LLM' policy affects the LLM vendors.
by dzonga
5/9/2026 at 11:19:43 PM
A good point. The business and marketing aspect of this situation can not be overlooked. The rewrite in Rust was a clear marketing opportunity, to maintain the LLM hype, that team Bun warmly embraced.by baranul
5/10/2026 at 12:15:19 AM
At this point one should just say Anthropic team. I can't think of a Bun team since Anthropic bought Bun.Jared, the hacker is now replaced by Jared, the millionaire soon to be billionaire as Anthropic valuation keeps going up.
by geodel
5/9/2026 at 10:15:09 PM
Exactly. Always asks “who benefits from this?” . The answer in this case is: AI vendors, not us.by sdevonoes
5/9/2026 at 9:57:58 PM
It’s also just a useful exercise in general, especially for getting feedback for models and harnesses.I’ve been thinking about setting up a non trivial project to use as a benchmark for any plugins and/or harness changes I make.
Having a prebuilt verification suite is great. You can use it to asses things like token usage, time, across different harnesses, models, plugins.
by aleksiy123
5/9/2026 at 9:05:29 PM
I don’t think the Zig project adopting a strict ‘no LLM’ policy affects the LLM vendors at all. How many developers are working on the Zig project itself that will (maybe) now not buy a Claude subscription? I can buy that this is a marketing stunt, but nobody at the top cares if a relatively small open source project doesn’t allow AI contributions.by johncolanduoni
5/9/2026 at 11:25:52 PM
I don't know about that. Zig's bdfl got significant mainstream press attention for his anti-LLM stance. Definitely enough attention for various LLM vendors to notice.by baranul
5/10/2026 at 1:50:58 AM
Based on their actions, I don’t think the LLM vendors take anti-AI sentiment very seriously. If anything they court it, though I think it’s more likely they’re just high on their own supply. I doubt the Zig statement had any effect on the thoughts of the people who actually sign contracts with Anthropic, who are mostly not engineers.The marketing opportunity here is in promoting Claude Code, not giving a smackdown to Andrew Kelley (who vanishingly few people who throw around millions of dollars on AI contracts have heard of).
by johncolanduoni
5/9/2026 at 9:38:28 PM
If you think Claude needs manufactured hype at this point to sell it you're delusional.by tracerbulletx
5/9/2026 at 9:49:34 PM
Anthropic literally has an astroturfing program:by claude_delusion
5/10/2026 at 10:36:52 AM
I would expect from 'astroturfing' that they were in some way paying people to recommend it. This just seems to be advice on how to recommend it for people who already want to recommend it.by rcxdude
5/10/2026 at 12:19:30 AM
Manufactured hype is just marketing. And companies losing money and looking to get listed very soon absolutely need it.by geodel
5/9/2026 at 10:06:21 PM
That’s how marketing works.by wiseowise
5/9/2026 at 10:15:59 PM
If you think they can survive without hype, you are the naive oneby sdevonoes
5/9/2026 at 7:06:52 PM
Looks like he did the maintainability performance and test suite checks and made his decision :)by logicprog
5/9/2026 at 7:14:01 PM
Honestly, I fully support the rewrite to Rust, but he should have just owned this from the start. I'm sure he knew in the back of his mind how dedicated he was to that branch as he had already spent the equivalent of thousands of dollars in tokens by that point.by jazzypants
5/9/2026 at 7:25:55 PM
Bun was VC funded and acquired by Anthropic. He's spending company money, not his own money.by nvme0n1p1
5/9/2026 at 7:27:19 PM
That's why I said "the equivalent of". Additionally, time and cognitive effort are not free. The work spent on this branch was work that was not spent on other branches. Does that make sense?by jazzypants
5/9/2026 at 7:35:41 PM
6 days is also nothing when you're doing R&D on your company's dime. He could have spent a month trying a dozen different things and thrown away all the code at the end. As long as he ends that month with a clear picture of where to steer the company over the next 5 years, it's time well spent.by nvme0n1p1
5/9/2026 at 8:23:39 PM
Had my former employers been so lenient with how I spend company time, I might still be an office worker instead of self-employed!by nozzlegear
5/9/2026 at 7:35:20 PM
Not even the company is spending money. It’s their employee working on a rework of the code owned by the company that owns the infrastructure on which the rework is done. And that company is still yet to turn profit. This work is subsidised by everyone who pays for Claude.by throw1234567891
5/9/2026 at 7:32:10 PM
Announcing the decision a week earlier wouldn't help anyone. Maybe he expected it to work (though he didn't say that), but there's no reason to make a final call before seeing that it did work.by skybrian
5/9/2026 at 7:35:39 PM
Fair enough. I didn't say anything about a "final call". It just feels like there is a middle ground between that and telling people they are overreacting.by jazzypants
5/9/2026 at 7:25:55 PM
Yeah but with no guarantee that it was going to work, why should he have?by fragmede
5/9/2026 at 7:29:49 PM
Yeah, but he obviously had enough confidence in this project to keep the agents working at it, didn't he? Given infinite time and money, if you prompt an LLM about something enough times, it will eventually work.Insert something about monkeys, typewriters, and Shakespeare here.
by jazzypants
5/9/2026 at 8:52:29 PM
He was 2 days into a project that ended up taking 6. You're being extremely unreasonable.by furyofantares
5/9/2026 at 7:37:54 PM
But you didn’t have to sit and type. Assuming that you look at what it did, why not?by throw1234567891
5/10/2026 at 3:11:34 AM
But he was just working along and someone else outed his branch, right? Dude doesn't owe you any sort of explanation.by zephen
5/9/2026 at 8:42:42 PM
Yeah, that means it's an extremely successful experiment so far.by raincole
5/9/2026 at 9:32:10 PM
Also a few days before that:> I expect OSS to go the opposite direction: no human contribution allowed. Slop will be a nostalgic relic of 2025 & 2026.
We should have seen this coming after they got acquired by Anthropic, but it's still disappointing. I'm not against large language models as a technology, just thoroughly disgusted how these "AI" companies rose to power, eating the software industry and the rest of society. It's creating a very unhealthy dependency.
Think a few steps ahead and start preparing a slop-free software stack and community. That includes Zig and its ecosystem. Even if we (and future generations) don't manage to live entirely without slop, it's more important than ever to ensure a sustainable computing culture, free as in freedom.
by lioeters
5/9/2026 at 9:41:09 PM
Software companies have been about automating human labor since the invention of computers. It's the whole damn point. Why do you think finance used to be (sometimes still is) the head of the IT dept? Because we automated accounting away. Then typists. Then secretaries. Then drafting. Etc etc.by tempaccount5050
5/9/2026 at 10:07:53 PM
> It's the whole damn point.Believe it or not, for some of us it’s not “the whole damn point”.
by wiseowise
5/9/2026 at 10:26:29 PM
Whether or not you want to admit that is up to you. If you're selling automation or efficiency gains, you're removing human labor.by tempaccount5050
5/10/2026 at 1:29:19 AM
My first "job" in computing, where someone else paid me for code, was in a research context where we were modeling radio propagation. Nothing about that was removing human labor. It in face eventually called for a bunch of humans to interact with each other. See: https://www.hamsci.org/basic-project/2017-total-solar-eclips...I don't think it is fair to claim computers are about putting people out of jobs.
by gravypod
5/10/2026 at 2:57:12 AM
I think it is. Before computers you would have had to write all that down on paper logs. By using code, you saved yourself time. If it wasn't less labor, you wouldn't have done it that way.by tempaccount5050
5/10/2026 at 3:31:35 AM
Before it was less labor, they might not have done it at all. Computers let you do things quicker. So you do more things.by dash2
5/10/2026 at 7:21:18 AM
Ok, then go work on homelessness or political corruption. It's not like we have a dearth of problems. Coding is solved.by casey2
5/11/2026 at 6:33:49 AM
How is coding “solved”? Even if you want to use an LLM, you still have to explain precisely what you want.by xigoi
5/10/2026 at 10:36:17 AM
> Before computersComputer used to mean "human who does math". Before machine computers, we had human computers. Machine computers replaced all of these human computers.
by oarsinsync
5/10/2026 at 5:08:50 AM
People *did* write down these logs, manually, and submit them.by gravypod
5/10/2026 at 5:17:41 AM
And without software, what then, make a bunch of books and mail it to all these people? On this site of all sites, it's blowing my mind that this kind of thing isn't obvious to everyone. I guess maybe it isn't if you were born before the internet, but man, I'm really surprised by some of these comments.by tempaccount5050
5/11/2026 at 8:05:26 PM
We did allow people to send us letters with QSO logs on paper.by gravypod
5/10/2026 at 2:22:12 AM
Human labor could do the math by handby Georgelemental
5/10/2026 at 2:46:38 AM
And in fact, was how it was done.by aaomidi
5/10/2026 at 10:21:40 PM
I'm improving error prone systems to make the world more efficient, not to replace people.by wiseowise
5/10/2026 at 2:07:46 PM
The purpose of a system is what it does. If people constantly use your device to turn kittens into pulp, you have built a kitten grinder, even if the label you slapped on the side says "coffee beans only".by ori_b
5/10/2026 at 10:20:10 PM
Nonsense. By your logic anything pointy is a killer machine, because people constantly use them to kill.by wiseowise
5/11/2026 at 5:44:00 AM
If that's constantly the thing your device is constantly used for... yes?by ori_b
5/10/2026 at 2:13:25 AM
Why else would one create software, if not to do something that a human does/did?by skeledrew
5/10/2026 at 3:19:01 AM
A few off the top of my head:- Video games
- Medical device firmware
- Synthesizers
- Detailed universe-scale physics simulations
- Mars rover control software
- The Linux kernel
by matt_kantor
5/10/2026 at 6:18:15 AM
- Video games - only feasible because of computers.- Medical device firmware - hardware control layer for medical devices, which are used to aid in medical procedures.
- Synthesizers - help to make music.
- Detailed universe-scale physics simulations - help to make certain physics problems more tractable.
- Mars rover control software - helps to remote control rovers.
- The Linux kernel - control layer that sits between firmware and actual applications, pretty much just a common shared library so apps don't have to each ship with a full stack.
I don't really see your point here. None of these examples counter the argument that software is created to automate human labour as much as is practical.
Video games are an interesting category since they're entirely enabled by software: I can't imagine anyone driving a video game manually (note I don't consider things like Chess, etc software to be video games in this context; more things like FPS, racing, etc). I do remember as a kid I thought that there were actually little people doing the stuff in video games though.
by skeledrew
5/10/2026 at 1:27:46 PM
> I don't really see your point here.The parent comment said "to do something that a human does/did", so I tried to come up with a diverse list of software that performs functions humans hadn't/couldn't've done.
> software is created to automate human labour as much as is practical
That's certainly a reason software is created, but not the only reason.
> Medical device firmware - hardware control layer for medical devices, which are used to aid in medical procedures.
I should've been more specific, maybe "MRI scanner firmware". Lots of medical devices could not exist without software.
> Synthesizers - help to make music.
Yes, they "help to make music", but synthesizers can produce sounds that humans cannot produce by themselves. If the upthread comment were about technology broadly rather than software specifically, I could've written "saxophones" here.
> Detailed universe-scale physics simulations - help to make certain physics problems more tractable.
"More tractable", or "tractable at all"? Simulations that would take 100 human lifetimes to compute on paper weren't even attempted before.
> Mars rover control software - helps to remote control rovers.
This clearly wasn't ever done without software, so I don't think I understand your response. I can't even imagine how it could have been done without software (my first ridiculous thought is very long cables going from Earth to Mars mechanically controlling a rover, but even if we had a magical material that'd enable that, the cables would get tangled up as the planets move).
> The Linux kernel - control layer that sits between firmware and actual applications, pretty much just a common shared library so apps don't have to each ship with a full stack.
I thought the pushback on this would be "this is just an implementation detail to let us run other software, so it shouldn't count". I don't think I understand your response here either.
---
I guess my general reaction is: sure, if you broaden the criteria enough then you can interpret most anything as "something that a human does/did". Like: humans "have fun" and therefore video games don't count, or humans can jump therefore they "travel through the air" therefore airplanes are just "doing something that humans do". But I don't think this reading of the upthread comment leads to interesting discussion.
by matt_kantor
5/10/2026 at 2:14:02 PM
Ah I think I see where things went off the rails. I should've explicitly added "would have to do" to purposes for creating software; it was just on my mind, and left as an implicit.I don't think there's anything out there that a computer can do but humans can't do per se. Whether it's manually doing what an MRI does, or sending people with the Mars rover. It would be anything from tedious/inefficient through crazy difficult/dangerous to totally impossible at this time (at some point in time it would at least be possible). Though that's just being pedantic, especially re video games.
> "this is just an implementation detail to let us run other software, so it shouldn't count"
That's essentially what I said, but in different words.
The main point in my original reply was to question the point of software creation, if not to stand in for human capability, wholly or partially. I don't see people creating software explicitly to just let it gather dust for example, even though that happens very often.
by skeledrew
5/10/2026 at 2:51:46 PM
> The main point in my original reply was to question the point of software creation, if not to stand in for human capability, wholly or partially. I don't see people creating software explicitly to just let it gather dust for example, even though that happens very often.Are you referring to the developer's/organization's motivations? Maybe this is a proximate-vs-ultimate-cause sort of thing, but people are also motivated to create software by a desire to express themselves, to win competitions, to stave off boredom, to commit crimes, to prove theorems, to earn money, to show off, to learn things, and so on.
I write software to automate away plenty of my own activities (and occasionally others' too), but even when counting things like test suites, build scripts, etc, I'd estimate that less than a third of the code I've written was because I sat down at the keyboard thinking "I want to replace a human capability".
by matt_kantor
5/10/2026 at 3:11:52 PM
> I don't think there's anything out there that a computer can do but humans can't do per se.The first thing that comes to mind is complex calculations that need to happen within a certain time budget to be useful. Like, sure, I could "play GTA 5" by sending each of my inputs to a room full of mathematicians frantically doing calculations who then instruct artists how to paint the next frame to send back to me[0], but even if you could somehow get that to run at 1 frame per day, I'd argue that's not really "playing GTA 5" anymore (a core aspect of the game is reacting to things in real time). For a more tangible scenario, imagine trying to pilot a quadcopter by manually controlling each actuator individually (there's no way you could do that quickly/accurately enough to avoid crashing).
[0]: Also this is arguably still "a computer", just one with an unconventional architecture.
by matt_kantor
5/10/2026 at 5:20:33 AM
This list is funny.All of these things existed in pre computer form.
A scheduler used to be a person putting punch cards into a machine.
by tempaccount5050
5/10/2026 at 1:39:01 PM
My reply in a sibling thread[0] is applicable here too. I'm not sure if you have the same things in mind as skeledrew, but at least this seems probably relevant:> If you broaden the criteria enough then you can interpret most anything as "something that a human does/did". Like: humans "have fun" and therefore video games don't count, or humans can jump therefore they "travel through the air" therefore airplanes are just "doing something that humans do". But I don't think this reading of the upthread comment leads to interesting discussion.
I'd be happy to discuss specific examples of the "pre computer forms", if you provide some.
by matt_kantor
5/10/2026 at 6:13:06 AM
What's the human form of a video game ?by TheRoque
5/10/2026 at 8:09:35 AM
Board games? All sorts of toys?by brabel
5/10/2026 at 9:33:29 AM
Well not really, since the board game itself doesn't need a paid human to work. It's been crafted by a human, but video games are also crafted by (arguably many more) humans. The closest would be escape games, or larger scale games maybeby TheRoque
5/10/2026 at 12:00:52 PM
To do things that a human could have done in theory, but did not do because it would have been too expensive.by moring
5/10/2026 at 10:16:09 AM
To do new things no number of humans can doby nly
5/9/2026 at 10:22:13 PM
No one is taking away programming as a hobby from you :)by grim_io
5/9/2026 at 10:12:52 PM
There are software components out there that are the backbone of our industry, and they are not governed by multibillion dollar companies. Linux, postgres, HTTP, TCP/IP, qemu,…It’s not that anthropic/google/openai/etc are unavoidable
by sdevonoes
5/9/2026 at 10:19:47 PM
> they are not governed by multibillion dollar companiesEvery tech you mentioned is absolutely governed by multibillion dollar companies. Something like 75-85% of OSS code is contributed by employees doing their day job. Most Linux and Postgres contributions come from those same employees. HTTP and TCP/IP are managed by standard bodies and industry working groups that, you guessed it, are governed by multibillion dollar companies. Red Hat and IBM are responsible for 40-60% of contributions to Qemu.
by tomnipotent
5/10/2026 at 4:20:49 PM
The way I understood op is that we don't necessarily have to pay to use linux or postgres (when self hosting, for example). But we have to pay to use claude code... which sucks big time (also, open source models are behind private models)by dakiol
5/10/2026 at 9:25:30 PM
Claude Code isn't OSS, so I fail to see the connection. You're paying for compute, not access to code. I'm personally more than happy to pay for access to that compute.by tomnipotent
5/9/2026 at 10:33:22 PM
The usual model for OSS projects is that initially they are written for free. Then an inner circle forms and exploits the second generation of idealists who write entire large features without ever getting the same rights.Some of the inner circle move to corporations to increase their power and are joined by corporate developers (sometimes their bosses) to take over the project.
A lot of corporate OSS development are entirely unnecessary rewrites or simple things like release management. So I'd put the number of useful code by employees much lower.
But governed, hell yeah, I agree. The corporations crack the whip and oppress real contributors.
by raj1298
5/10/2026 at 9:17:12 PM
This is a nice fantasy, but that's all it is. Most of the code used by corporations is also mostly contributed to by other corporations. Contributions by volunteers is the exception for most of the projects in this context. I also don't think this is a bad thing.by tomnipotent
5/9/2026 at 9:48:37 PM
[flagged]by claude_delusion
5/9/2026 at 11:36:49 PM
Don't make accounts just to add comments for a specific thread, you will get flagged.by satvikpendem
5/9/2026 at 10:27:43 PM
"ok guys, that's enough progress since now it's my job at stake, we can stop."by tempaccount5050
5/10/2026 at 11:43:06 AM
So you argue we discriminate based on who/what wrote the code, instead of what's in it?Let's take this to a different domain, self driving cars. Would you equally argue for human driving? I'm pretty sure over time it will become clear to everyone that machines will be able to outperform humans consistently at this task, to the degree that human driving will become illegal. But for now the press likes to focus on any failure of machine driving, taking for granted human drivers are the largest or second largest cause of premature death in many countries.
Coding (in many ways, but not all) is a more open ended and versatile task than driving, so it's natural that current iterations seem untrustworthy, but ignoring the trajectory is erring on conservatism, and doesn't seem to me to be grounded in any sound reasoning.
by shmichael
5/9/2026 at 11:09:14 PM
How could it possibly be open source if it requires proprietary models developed by a few companies to writs the code.Seems like that would make open source entirely controlled by open ai, anthropic et al.
by foxes
5/10/2026 at 8:14:28 AM
Open source and open weight models are already really good. I don’t think anyone really depends on the big AI companies anymore, if they go away, the open source models seem to be already sufficiently good to take the torch and will continue to improve thanks to research. They may require money to train , but the cost of that is already covered quite well and if these model became the mainstream way to use AI , more money from governments and research institutions would be poured into them.That is actually a very plausible scenario!
by brabel
5/10/2026 at 2:13:20 AM
It isn’t really slop anymore and it will keep improving.by andy_ppp
5/10/2026 at 7:20:44 AM
He works at claude, he has unlimited tokens. He can do anything, he is using mythos.by faangguyindia
5/10/2026 at 11:09:49 AM
I think such re-implementations will be a huge asset to the process of software developments in the future.by scotty79
5/10/2026 at 12:54:20 PM
[flagged]by openclawclub
5/9/2026 at 8:06:57 PM
What's your pointby des429
5/9/2026 at 8:12:50 PM
To demonstrate engineers may not be as skilled and knowledgeable as they appear. To make such a comment then turn around and make an announcement days later indicates that the engineers are not skilled in the tools they’re using or even possibly the domain they’re working in.by righthand
5/9/2026 at 8:37:22 PM
The quote doesn’t provide warrant for this claim. The developer did a great job investigating the applicability of a new tool and it appears the investigation yielded fruit.Your kind of negativity is pathological.
by nerdsniper
5/9/2026 at 8:40:15 PM
[flagged]by righthand
5/9/2026 at 8:53:11 PM
What are you even talking about?by fastball
5/10/2026 at 2:49:52 AM
Being an expert software developer - which Jarred Sumner indisputably is, having created Bun - doesn't automatically make you an expert on predicting the improvements in software development performance that LLMs enable. All of us - experts and amateurs alike - are in the process of figuring that out, in real time, around the world, right now.Underestimating how quickly a non-trivial project will come together is an almost unheard of phenomenon. It used to invariably be the other way around, to the point that there are laws about it, like Hofstadter's Law, which says that projects always take longer than anticipated, even when accounting for the law itself. Or Fred Brooks' work, which puts limits on how much the development of software projects can be sped up.
The sane takeaway here is that if what's being reported is true (keeping in mind it's coming from a newly minted Anthropic employee), it implies an astonishing, unheard of improvement in software development speed, at least for certain kinds of tasks, enabled by LLMs.
To somehow twist that into "experts may not be as skilled and knowledgeable as they appear" or "not skilled in the tools they’re using" makes me think of the Charles Babbage quote, "I am not able rightly to apprehend the kind of confusion of ideas that could provoke such [an opinion]."
by antonvs
5/9/2026 at 8:18:11 PM
I totally disagree with this! I think it's very important for experts to be able to adapt to their opinions based on evidence.by esquivalience
5/9/2026 at 8:33:50 PM
Sure but if you’re an expert you’re probably finishing your project and collecting results, not sprinting to an online thread to evangelize for Llms with partial results. That sounds amateur to me.by righthand
5/9/2026 at 8:40:08 PM
He's tweeting his experiences. Calling this "sprinting" and "evangelizing" is just rhetoric. Posting about a project you're working on is hardly amateurish.by staticassertion
5/9/2026 at 8:41:47 PM
[flagged]by righthand
5/9/2026 at 8:49:51 PM
[flagged]by staticassertion
5/9/2026 at 9:23:01 PM
Ugh, I really find this sort of thing frustrating. I like people developing, and testing, and ideating, and exploring in public!This is one of my problems with academia: people only sharing results when they're positive and complete. I want to hear about what people tried that didn't work, and see the string of failures. People are already inclined to avoid sharing their work out of concern that they'll be judged--let's not encourage that behavior, please.
by supern0va
5/9/2026 at 8:40:13 PM
[flagged]by ianbutler
5/9/2026 at 8:40:35 PM
[flagged]by righthand
5/9/2026 at 8:43:15 PM
[flagged]by ianbutler