lunar_mycroft
Joined 1 year ago
Joined 1 year ago
> Dropping vecs that contain strings does not make any Rust code in the real world slow. You would need to have a vec containing billions of strings, occupying several gigs of memory
I actually had a hobby project where that became very noticeable/too slow for my requirements at around 800k Strings, so several orders of magnitude less than your estimate. Switching to a solution that freed all the memory at once predictably made it run effectively instantly.
> And for extreme cases like that, you can simply use arenas
I think this is a fundamentally flawed way of thinking about things. Yes, each individual string allocation and drop isn't going to cost much, but in combinations with all the other similar decisions you're likely making if you think this way, plus the decisions of library authors, etc, it can add up even if strings specifically aren't a major problem. Avoiding pessimization by default instead of only when you can't ignore them any more is a good habit to be in.
No, it's possible that there's a single gene that would do it, meaning a single mutation would enable it. But that's not what happened here. Instead, there were multiple genes involved, with some of the necessary mutations occurring long before the other.
Bonus forth point: why is this critical to solve for claude code, but not for all the other harnesses which have all converged on AGENTS.md for this purpose?
2. How exactly do our jobs depend on a thing which has been around for far less time?
1. The resulting code was of pretty low quality. Others that bothered to put it through Miri and the like found many soundness issues, but my personal favorite example is this example which is trivially and locally (meaning that someone who has the most basic understanding of unsafe in rust can see it's obviously wrong just by looking at the specific function) incorrect example [0]. This particular example was removed in an apparently unrelated refactor after spending well over a month in the code base without any of the bun maintainers or their agents detecting it, and a quick grep found hundreds of potential similar issues (although many of those are false positives).
2. More generally, it's not clear to me that there was any technical benefit to the rewrite in the first place. The stated reason was for memory safety, but replacing Zig with unsafe rust doesn't actually get you memory safety, and removing the unsafe blocks often requires more extensive refactors to fit within rust's model.
> If you can reduce a problem to a clearly verifiable end state, provide the necessary context, and equip a model with the necessary tools it can usually get to a good solution.
As others have pointed out (and you acknowledge), "reducing a problem to a clearly verifiable end state" is just "programming". What you don't seem to understand is that actually doing that is made harder by using AI, not easier. A sufficiently detailed spec is called "code" [1], the question is what language/notation is best to write it in. The answer is almost never "whatever is closest to what the computer actually executes", as assemblers and later compilers and interpreters demonstrated. But it also isn't several of the things that AI proponents have suggested to replace the latter with.
Take natural language, for example. As Dijkstra pointed out, we've been through this already with math. It used to be that all math was expressed in a way closer to what we'd now call "word problems", but this turned out to be bad. The specialized language of e.g. algebra isn't something mathematicians use to gate-keep, it's way easier to reason in the domain that way than it is in English (or other natural languages). The same is true for programming, once you actually specify what you want to do with enough rigor. It's generally easier to read and reason about code than to do so with natural language specifications.
Another proposal is to use tests and similar automatic verification to specify the program. I suspect that anyone with much experience can already tell whether it's preferable to specify a program through code or through tests, but thankfully we have empirical evidence on this for anyone who has any doubts in the form of e.g. sqlite. Sqlite is probably one of if not the closest any piece of software comes to being fully specified by it's tests. To do that takes almost 600 times as much test code as there is "regular" code. Dr. Hipp even personally weighed in on the implications this has on AI recently [3] . The reason to do testing is that it provides a second independent check for correctness, if you're using it as the *only* check that advantage disappears.
[0] https://github.com/oven-sh/bun/blob/fc865b398e51de8a95ddde4b...
[1] https://haskellforall.com/2026/03/a-sufficiently-detailed-sp...
[2] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...
LLMs are incredibly impressive. It just doesn't follow from that that they're capable of all the things proponents claim they are.
> I just can't believe that LLM haters really like computers or technology
In a lot of ways the reverse is true. The LLM coding ecosystem seems designed by people who are unaware or actively despise the fact that they have access to a computer, and almost the entire point of LLMs is to make interacting with computers less like interacting with computers and more like interacting with people.
What about the people who do have a lot of LLM experience and agree with OP?
> That thing cannot do the stuff you say it can. And there is no way I will ever try it. But I know for sure I am right.
If someone claims to be able to fly by strapping bird wing shaped pieces of plywood with feathers glued on to their arms, do you need to personally jump off a tower with them to say they don't work, or can you look at the results of others attempting it and draw conclusions based on that? LLM proponents are making claims about their capabilities which can relatively easily be checked without using LLMs yourself. To pick an example where LLM proponents are correct, anyone who says LLMs can't generate syntactically valid code can be proven wrong fairly easily by producing an example of syntactically valid, LLM generated code.
Further, if you read the rest of the paragraph you responded to, it's clear that this claim is about the state of the industry as a whole. "Software has not improved in quality, got faster, become cheaper to produce (when you exclude the mountain of poor-quality demoware that no reputable organisation would touch with a barge pole), or become more capable." Whether this is true or not is something that can be evaluated without ever having prompted yourself, or even arguably without being a developer at all.
(Also, you do not need to sell me on bumpalo, I use it heavily already)