| ▲ | huani 4 hours ago | ||||||||||||||||
why is the LLM-compiler analogy flawed? Is it only because LLM output is non deterministic? | |||||||||||||||||
| ▲ | torben-friis 3 hours ago | parent | next [-] | ||||||||||||||||
Besides probabilistic and non reproducible output, programming languages are designed to be unambiguous and explicit, and human language doesn't have that. For(){} it's normally either undefined or has a specific meaning. "Then iterate and do x" might mean many subtly different things. Most programmers never deal with a compiler bug in their whole career, and can dismiss the possibility. For LLMs it would be hard to even define what a "compiler bug" would be since there is no specification for English. Then there's the fact that models generally don't guarantee anything at all. Sonnet can change under your feet. Models also degrade as the context window gets larger. Compilers handle one line just the same as 20. I could keep going, there's so many fundamental differences in the process that the analogy only serves to provide a false feeling of security. | |||||||||||||||||
| ▲ | GrinningFool 4 hours ago | parent | prev | next [-] | ||||||||||||||||
Because you don't have to coax, trick, or guide your compiler into doing the right thing. | |||||||||||||||||
| |||||||||||||||||
| ▲ | hyper_frog 4 hours ago | parent | prev | next [-] | ||||||||||||||||
I don't think its just, there's also the fact that if you're working with c or cpp or any systems level language, you typically do know how to read assembly because you've stumbled upon it for some reason, and if you're writing low level programs (which is typically what these languages are used for) you will definitely at some point need to know to read assembly and maybe even write some. But with LLMs the entire field has shifted. You don't need to know anything to write any language and you don't even need to have high level computer science knowledge nowadays to get something that works and the world increasingly just seems to want something that works. | |||||||||||||||||
| ▲ | TremendousJudge 2 hours ago | parent | prev | next [-] | ||||||||||||||||
I have mentioned it several times lately, but if the analogy was correct, people would be committing prompts and not code. High-level source code gets committed, binaries don't. If prompts were really "just a higher level of abstraction", then there wouldn't be a need for saving the code. Or at least you'd see people publish their prompts and chat history alongside the code. | |||||||||||||||||
| ▲ | bbg2401 4 hours ago | parent | prev [-] | ||||||||||||||||
Compiler: "Here is an exact program. Translate it while preserving its meaning." LLM code generation: "Here is an intent/specification. Invent code that hopefully satisfies it." Does the compiler analogy provide value under those terms? I don't think it does. In fact, I think it provides negative value. We don't need to use tortured analogies to express excitement over these tools. | |||||||||||||||||