In my old age I’ve mostly given up trying to convince anyone of anything. Most people do not care to find the truth, they care about what pumps their bags. Some people go as far as to believe that perception is reality and that truth is a construction. I hope there’s a special place in hell for those people.
It’s not though. Programming languages, like assembly before them, are deterministic. If you run the same C code again the same environment, it will do the same thing, and altering the code will alter the behaviour correspondingly. It’s possible to reason about it. The same does not apply to LLMs. You can’t reason about their behavior, when means you can’t build anything non-trivial with them. All that is mentioned in the article.
Software you create with LLMs is deterministic, because it is the same code as you produce manually. The process of creating it is maybe not, but it is a task of a programmer to review it before publishing it.
By contrast however, the programmer does not generally need to review the machine code produced by their compiler when coding in C.
LLMs do not create the same code that I would, nor do they produce code at the same level that I would. Additionally, LLMs are not deterministic (normally - there are ways to manually seed some but it’s rare). Determinism has a very specific meaning. Compilers supporting reproducible builds are deterministic. LLMs producing a different output each time are not.
Tell that to my coworkers. It’s honestly insulting the code I have to review and contribute to. Having used these tools myself, I’m better off writing the code myself.