![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
When people talk about using generative AI for writing software, they often liken it to getting help from a junior developer. For me, the bulk of the cost is in reviewing the generated code: for anything that is to reach customers of a reliable product, I want to be sure of what the code means and does. From that perspective, it seems worth noting to me that there's an important distinction among kinds of junior developer.
There are junior developers who are variously confused or careless and, at least until those issues are addressed, they are little use for anything more than rapid prototyping. Separately, there are developers who, while they lack knowledge and experience in software development, they are already disposed toward mathematical engineering: they are analytical, clever, and precise in their work. Code from that kind of junior developer is much more welcome because, as a reviewer, I don't have to spend as much time covering for various kinds of mistake. Their code already makes some sense even if it could be better.
Additionally, if coding assistance is coming from a static AI model rather than from a person then I can't incrementally get better results. With a real person, they can learn from constructive feedback about how they could have written the code differently.
There are junior developers who are variously confused or careless and, at least until those issues are addressed, they are little use for anything more than rapid prototyping. Separately, there are developers who, while they lack knowledge and experience in software development, they are already disposed toward mathematical engineering: they are analytical, clever, and precise in their work. Code from that kind of junior developer is much more welcome because, as a reviewer, I don't have to spend as much time covering for various kinds of mistake. Their code already makes some sense even if it could be better.
Additionally, if coding assistance is coming from a static AI model rather than from a person then I can't incrementally get better results. With a real person, they can learn from constructive feedback about how they could have written the code differently.