I don’t think the comparison of giving a LLM instructions and expecting correct code to be output is fair. You are vastly overestimating the competence of human programmers: when was the last time you wrote perfectly correct code on the very first try?
Giving the LLM the ability to run its code and modify it until it thinks its right would be a much fairer comparison. And if, as you say, writing unit tests is easy for a LLM, wouldn’t that just make this trial-and-error loop trivial? You can just bang the LLM against the problem until the unit tests pass.
(And this process obviously won’t produce bug-free code, but humans don’t do that in the first place either.)
I don’t think the comparison of giving a LLM instructions and expecting correct code to be output is fair. You are vastly overestimating the competence of human programmers: when was the last time you wrote perfectly correct code on the very first try?
Giving the LLM the ability to run its code and modify it until it thinks its right would be a much fairer comparison. And if, as you say, writing unit tests is easy for a LLM, wouldn’t that just make this trial-and-error loop trivial? You can just bang the LLM against the problem until the unit tests pass.
(And this process obviously won’t produce bug-free code, but humans don’t do that in the first place either.)