4 ms·
> Even if LLMs worked perfectly without hallucinations (they don't and might never), a conscientious developer must still comprehend every line before shipping
by kaonwarb 1y ago
> Even if LLMs worked perfectly without hallucinations (they don't and might never), a conscientious developer must still comprehend every line before shipping it.
This seems excessive to me. Do you comprehend the machine code output of a compiler?
- belter 1y agoFalse analogy. I must comprehend code at the abstraction level I am working at. If I write Python, I am responsible for understanding the Python code. If I write Assembly, I must understand the Assembly. The difference is that Compilers are deterministic with formal specs. I can trust their translation. LLMs are probabilistic generators with no guarantees. When an LLM generates Python code, that becomes my Python code that I must fully comprehend, because I am shipping it. That is why productivity is capped at review speed, you can't ship what you don't understand, regardless of who or what wrote it.
- kaonwarb 1y agoI think the analogy holds within the context of the statement I replied to: > Even if LLMs worked perfectly without hallucinations...
- astrange 1y agoCompilers definitely don't have formal specs. Even CompCert mostly but doesn't entirely have them. It can actually be worse when they do. Formalizing behavior means leaving out behavior that can't be formalized, which basically means if your language has undefined behavior then the handling of that will be maximally confusing, because your compiler can no longer have hacks for handling it in a way that "makes sense".