upvote
I think you misunderstand. Code is also representing something. It may be what gets executed, but that does not make it "correct".
reply
It does make it correct in the reality sense

If someone says something happens and the code says something else, the code wins.

reply
That's technically correct but consider the following:

You're implementing quicksort. The actual algorithm is a conceptual piece of math. You write the code. But sometimes the code produces output that isn't sorted.

The code "wins" in that whatever the code says is what actually happens. But the code is wrong. It must be edited to match the algorithm. The _algorithm_ is the thing that is proven correct; the _algorithm_ is what we wanted to execute. The code is a representation of the algorithm.

reply
Let’s say you were trying to say “I like bread” in French (which is “j’aime le pain”) but what come out is “j’aime le vin” (I like wine). It is the wrong statement, but it will produce an effect as the other party may bring you wine (which you may hate). The actual issue here isn’t that you didn’t speak French, but that you didn’t express what you wanted well.

So code is just a notation. But one that is executable. In your example, the code is working, it’s just not what you intended. The issue is not the code, the issue is that you don’t know code well enough to “speak” your algorithm.

And that is the main issue with a lot of LLM users. They are translating specs (which they do understand) to code (that they do not understand) and then relying on superficial outputs to see if they got it right. While also telling fluent speakers that they should follow the same workflow. At least with human languages, the other party may detect discrepancy and the fact that you’re not a native speaker. But a computer will execute things blindly.

reply
> What's left is the code alone.

The necessary work is more than just the deliverable. Even a simple patch implies an indefinite number of other approaches not-taken, and sometimes not-taken for good reasons.

Sometimes we explicitly document those, sometimes we trust that a human expert decided against them. Those other aspects of work still exist, even if they are getting skipped/mismanaged with LLMs.

reply
deleted
reply
No, I think it's correct. One artefact of programming for decades is that I ended up thinking in code directly without "translating" from English first.

Thus the push to use LLMs has felt a little bit like being a fluent French speaker being told that all of the best French writers are using google translate to write French translated from English now.

reply
Nope. Code is a representation. Even low level code. The fact that you do not understand this is concerning.
reply