BUT: How many people do you know who can achieve sufficient clarity up front? It is a skill (or set of skills) that needs developing. It can also mean the difference between spending $20 in tokens versus $2000, and/or throwing away the result and starting from scratch again (you don't really want to touch an AI generated codebase with fundamental design flaws if you value your time and sanity)
In the meantime, deliberate checkpoints for human review are still a good idea.
My theory: behind every "10x AI coder" is a long trail of expensive failures that never made the light of day, but which they are learning from. The early adopters will therefore have a competitive advantage.
Edit: What I mean is that these agents would work autonomously until their task is accomplished. They can ask for clarification if they require it.
More generally, I want analytic reasoning and problem solving skills. Assembly, C, and Python all still have me writing an understanding algorithms, while prompting (mostly) does nt. (Actually, more so with C and Python than Assembly because it abstracted away an appropriate amount of stuff, much the same as how I can do better math with pen and paper than in my head.)
It's possible that at some point it will make sense to switch to a different analytic reasoning practice regime, but for now, programming is a really relevant one for me, and one I enjoy.
I mostly don’t think that is possible though because there’s too much ambiguity in natural language. So the answer is probably when AI is close enough to AGI that I can treat it like an actual trusted senior engineer that I’m delegating to.
There’s ambiguity in the x86 specification, such that you can execute a single instruction and get different results in intel vs amd. See the rcpss instruction, for example.
I get that LLMs are categorically different, and they’re absolutely not as reliable as compilers are, but compilers are also not as reliable as compilers seem. And even less predictable IMO.
Yeah a fair amount is the time. And when I can’t, I can predict what an unoptimized version of the assembly will look like.
And I know that the optimized assembly has a very very high likelihood of being semantically identical. And I know enough of the edge cases where the differences matter to know when I need to actually verify what’s coming out of the compiler.
Prompt instability (not even worrying about non-determinism ) ensures that asking for the same exact thing in very slightly different ways or with slightly different contexts will give you wildly different outputs that are not even close to semantically identical.
People are allergic to articles and documentation generated/processed by LLM.
You're switching from an active role to a passive one, meaning your skill will suffer over the time. There is a huge difference between doing the things and thinking you know what it's doing. It's harder to review bad generated code because how polished it looks, compared to code made by humans where the difference is much more obvious.
Code assistants seem to work great when dealing with boilerplate, but wouldn't be better to get rid of the need for the boilerplate in the first place?
Yes, as a better autocomplete.