Thoughts on using AI for coding
I'm still undecided whether AI will or will not radically transform software development. On one hand I read people saying how more productive they become using AI assistants. On the other hand, my most impactful work is usually done on paper with a pen after a walk and I don't see how an AI would help with that.
What I currently experience is that AI-generated code looks very good at first. It is code that when you see from a human you'd evaluate them highly competent. But the text itself is just a little part of the development process and it hides a lot of thinking. Why there are 3 different roles for users? Why is this relation one-to-many and not many-to-many? Why a retry is needed in one place but not in other? Why this function has these arguments?
When I write code, most of my time is spent making these decisions and writing down the code is just a fraction of the time. If I had to describe all the thinking to an AI that will in turn write the text for me, that would not be much easier to just write it myself. And if I have to write a lot of boilerplate then (I) I could use better tools to write that for me, or (II) use a different framework that more closely provides what I actually need and abstracts away what I don't.
What I'm more afraid of is that using an AI to write code makes it harder to distinguish bad developers from good developers. After all, if everybody can write competent-looking software and it needs a much closer scrutiny to assess its real value, that would make it way easier to appear productive without putting in the necessary thinking required for good products.
But I don't have a crystal ball, so I'll wait and see how the AI boom will work out.