3 ms·
The compiler analogy doesn’t quite fit, because the essential difference is that source code is (mostly) deterministic and thus can be reasoned about (you can l
by layer8 1y ago
The compiler analogy doesn’t quite fit, because the essential difference is that source code is (mostly) deterministic and thus can be reasoned about (you can largely predict in detail what behavior code will exhibit even before writing it), which isn’t the case for LLM instructions. That’s a major factor why many developers don’t like AI coding, because every prompt becomes a non-reproducible, literally un-reasonable experiment.
- steveklabnik 1y agoI think the "largely" in there is interesting and load-bearing: a lot of people find compiler output quite surprising! But that doesn't mean that it's not a gradient, and LLM output may be meaningfully harder to reason about than compiler output, and that may matter.
- layer8 1y agoAssembly output may sometimes be surprising, but maintains the language semantics. The surprise comes from either misunderstanding the language semantics, or from performance aspects. Nevertheless, if you understand the language semantics correctly, the program behavior resulting from the output is deterministic and predictable. This is not true for LLMs.
- steveklabnik 1y agoI don't disagree on a factual level, I am just describing some people's subjective experiences: some language semantics can be very subtle, and miscompilation bugs are real. Determining if it is just an aggressive optimization or a real codegen bug can be difficult sometimes, that's all.
- layer8 1y agoTo some extent yes, but I don’t think that changes much about the distinction to AI coding I was making. The thing is that language misconceptions are fixable; the LLM unpredictability isn’t.