Remix.run Logo
Krssst 4 hours ago

> Remember that high level programming languages are "merely" a sop for us humans to avoid low level languages.

High-level languages are deterministic and reliable, making it possible for developers to be confident that their high-level code is correct. LLMs are anything but deterministic and reliable.

tvshtr 3 hours ago | parent | next [-]

Not all code written by humans is deterministic and reliable. And properly guard-railed LLM can check its output, you can even employ several, for higher consensus certainty. And we're just fuckin starting.

Krssst 2 hours ago | parent [-]

Unreliable code is incorrect thus undesirable. We limit the risk through review and understanding what we're doing which is not possible when delegating the code generation and review.

Checking output can be done by testing but test code in itself can be unreliable and testing in itself is no correctness guarantee.

The only way reliable code could be produced without human touching it would be using formal specifications, having the LLM write the formal proof at the same time as the code and using some software to validate the proof. The formal specification would have to be written using some kind of programming language, and then we're somewhat back to square one (but with maybe a new higher level language where you only define the specs formally rather than how you implement them).

seanmcdirmid an hour ago | parent | prev [-]

You keep saying this but have you used an LLM for coding before? You just don’t vibe code up some generated code (well, you can, but it will suck). You are asking it to iterate on code and multiple artifacts at the same time (like tests) in many steps, and you are providing feedback, getting feedback, providing clarifications, checking small chunks of work (because you didn’t just have it do everything at once), etc. You just aren’t executing “vibecode -d [do the thing]” like you would with a traditional shoot once code generator.

It isn’t deterministic like a real programmer isn’t deterministic, and that’s why iteration is necessary.