People keep asking me If I use Generative AI tools for coding and what I think of them, so this is my effort to put my thoughts in writing, so that I can send people here instead of having to repeat myself every time I get the question.
From the title you already know that this isn't a pro-AI blog post. But it isn't an anti-AI post either, at least I don't think it is. There are already plenty of articles by AI promoters and AI critics, so I don't feel there is a need for me to write one more of those. While I'm definitely not neutral on the subject, in this article I'm just going to share my personal experience with these tools, from a strictly technical point of view.
AI is not faster
Really the main and most important reason why GenAI tools do not work for me is that they do not make me any faster. It's really that simple.
It would be easy to use GenAI coding tools to have code written for me. A coding agent would be the most convenient, as it would edit my files while I do something else. This all sounds great, in principle.
The problem is that I'm going to be responsible for that code, so I cannot blindly add it to my project and hope for the best. I could only incorporate AI generated code into a project of mine after I thoroughly review it and make sure I understand it well. I have to feel confident that I can modify or extend this piece of code in the future, or else I cannot use it.
Unfortunately reviewing code is actually harder than most people think. It takes me at least the same amount of time to review code not written by me than it would take me to write the code myself, if not more. There is actually a well known saying in our industry that goes something like "it’s harder to read code than to write it." I believe it was Joel Spolsky (creator of Stack Overflow and Trello) who formalized it first in his Things You Should Never Do, Part I article.
You could argue that code that was written by AI can be considered a black box. I guess you can convince yourself that as long as the code works as intended it is safe to use without the need to review it, which would translate into some productivity increase. I think this is highly irresponsible, because the AI is not going to assume any liability if this code ever malfunctions. I'm always the responsible party for the code I produce, with or without AI. Taking on such a large risk is nuts, in my opinion.
This is even more important for some of the work that I do where there are contracts signed, with associated legal obligations and money payments. If I'm hired as a professional, I really have no other choice than to be one. AI tools cannot help me make more money or do my work in less time. The only way I could achieve those things is by degrading the quality of the work and introducing risk, and I'm not willing to do that.
AI is not a multiplier
... continue reading