Earlier quoted context omitted.
The analogy is fine. AI moves us up to a higher level language, and it is understood that higher level languages come with their own leaky abstractions, but the idea remain the same. It is different, but only to the extent that would be expected from stepping up to the next higher level. It's not something completely different. We don't yet have AGI that will magically produce the software before you even knew you ne…
It might not be the perfect analogy, but it does show some important parallels and differences. Compilers reason to some extent - for example type inference is definitely some deductive reasoning that I would have to do if the compiler didn't do it for me. The hallucinations point is a difference and one that we haven't quite learnt to handle yet. Generally, compilers are deterministic (even it it might not feel like…
If AI Writes All the Code, What Do the Programmers Do?
41–49 of 49 posts
Re: If AI Writes All the Code, What Do the Programmers Do?
#42Earlier quoted context omitted.
It might not be the perfect analogy, but it does show some important parallels and differences. Compilers reason to some extent - for example type inference is definitely some deductive reasoning that I would have to do if the compiler didn't do it for me. The hallucinations point is a difference and one that we haven't quite learnt to handle yet. Generally, compilers are deterministic (even it it might not feel like…
> Generally, compilers are deterministic Not really. Maybe more so than they used to be thanks to deterministic algorithms becoming faster, but most compilers still aren't deterministic by default. There are still advantages to non-determinism in compilers, like not having to worry about thread execution order. To be fair, most compilers these days allow you to optionally enable determinism. Then again, LLMs also all…
Re: If AI Writes All the Code, What Do the Programmers Do?
#43Earlier quoted context omitted.
> LLMs also allow you to optionally enable determinism really? Please explain
What's in need of explanation? Computers are designed to be deterministic, and LLMs run on computers, so LLMs must also be deterministic. There caveat to that is where external inputs give the illusion of non-determinism. Thread execution order, like we already discussed, is one such example. Technically still deterministic if you understand the external inputs, but for the sake of discussion we can consider external…
Re: If AI Writes All the Code, What Do the Programmers Do?
#44Earlier quoted context omitted.
> Generally, compilers are deterministic Not really. Maybe more so than they used to be thanks to deterministic algorithms becoming faster, but most compilers still aren't deterministic by default. There are still advantages to non-determinism in compilers, like not having to worry about thread execution order. To be fair, most compilers these days allow you to optionally enable determinism. Then again, LLMs also all…
Thread-connected non-determinism is not what the author meant by "compilers are deterministic"
Re: If AI Writes All the Code, What Do the Programmers Do?
#45Earlier quoted context omitted.
What's in need of explanation? Computers are designed to be deterministic, and LLMs run on computers, so LLMs must also be deterministic. There caveat to that is where external inputs give the illusion of non-determinism. Thread execution order, like we already discussed, is one such example. Technically still deterministic if you understand the external inputs, but for the sake of discussion we can consider external…
Ok, technically you’re right. You can make LLMs deterministic if you make literally every other aspect of execution deterministic as well - self-hosting and open-weights model with identical, reproducible logits, batching, FP math, etc.
What's old is new again. LLMs are back to believing that the user doesn't really care what gets spit out, preferring performance over determinism, but it is likely that eventually we'll find increasing importance in reproducible builds again — especially when, like we saw with compilers, the hardware/algorithms catch up and the performance cost of determinism isn't there anymore. The industry is highly cyclical. These aren't hard technical limitations, just human choices mixed with a humorous dose of "this time is different". But in hindsight the times never end up being different, do they?
Re: If AI Writes All the Code, What Do the Programmers Do?
#46Earlier quoted context omitted.
It might not be the perfect analogy, but it does show some important parallels and differences. Compilers reason to some extent - for example type inference is definitely some deductive reasoning that I would have to do if the compiler didn't do it for me. The hallucinations point is a difference and one that we haven't quite learnt to handle yet. Generally, compilers are deterministic (even it it might not feel like…
>> Compilers reason to some extent - for example type inference is definitely some deductive reasoning that I would have to do if the compiler didn't do it for me. But this "reasoning" is done within a strict ruleset and includes "just find the optimum in X", and there is no space for "language interpretation", so I wouldnt call this reasoning compared to that type what LLMs are doing.
In order to consider LLMs to be something different then there needs to be a clear dividing line and I'm not sure that there is. It seems more likely that it is the same type of reasoning, but that LLMs take it to a further degree.
Re: If AI Writes All the Code, What Do the Programmers Do?
#47Earlier quoted context omitted.
This is certainly overstating the difference between compiled code and the source code. If I write an if/else statement, I understand what the computer is going to do when it's evaluated even if I don't know or see the literal machine code.
Only if the compiler is perfectly naive. With the state of today's optimizing compilers, the output might be very different from what you'd expect. But it also doesn't matter because the business goal is the results from executing the program, not the static code. Hence why, as the earlier commenter pointed out, efforts go into validation rather than understanding the generated code. 99% of the time the code a compil…
Re: If AI Writes All the Code, What Do the Programmers Do?
#48Earlier quoted context omitted.
Some of the code bases I have at work are legacy spaghetti -- hard to reason about. I too employ the prompt and pray strategy and then see if CI fails. I can only be surgical where I already have a grasp on the codebase, or if I was involved from the beginning. Morally, I dislike what AI is doing to the profession. Rigor is suffering.
It's also possible to point the AI at legacy spaghetti and say "document this in detail" as a starting point for unspaghettifying it.
Re: If AI Writes All the Code, What Do the Programmers Do?
#49Earlier quoted context omitted.
Only if the compiler is perfectly naive. With the state of today's optimizing compilers, the output might be very different from what you'd expect. But it also doesn't matter because the business goal is the results from executing the program, not the static code. Hence why, as the earlier commenter pointed out, efforts go into validation rather than understanding the generated code. 99% of the time the code a compil…
compiler is not putting words together randomly with a mathematical probability but the LLM is
That may be an interesting distinction in a vacuum, but given that the input to both is words put together randomly with a mathematical probability a compiler's binary correctness isn't actually the useful property that it may first seem. In the real world, to overcome the probabilistic input, you have to validate the input with respect to the output. And it turns out once you have systems in place for that, you gain the same assurances with a probabilistic output as you do with binary output.
So, while there are some technical differences, there is no practical difference.