AI: The Devil on My Shoulder
This is meant to be a sort of retrospective, both in my view and use of AI. I have wanted to write down my thoughts and experience with it for a while, mostly for my own sake. It's also my first time really writing much (that isn't strictly documentation) since school. It is very much a train of thought thing and not very polished, read at your own peril.
I have followed the development of AI like most developers who consider themselves skeptics, maybe a bit more enthusiastically so. In the beginning, it was fun to play around with, but it was obvious that it (at the time) could not be handed any task and compete it without failing, unless it was a very simple one.
I mostly used the line or multi-line completion for more mundane things and boilerplate. I figured that was really the extent of what it could do. It was a nice boost for repetitive, mundane stuff that had a predictive pattern.
I tried Junie when it came out, and it worked... somewhat okay. Again, it struggled with me come things and would therefore get things wrong, but it was an improvement. It still just felt like a tech demo. Surely this wasn't something people could use seriously. Then, models continued to improve. I got Claude through work. I could play around with it. Things continued to improve, especially after a while. It reached a point where I could probably give it a larger task that it could complete.
I gave it a task. I made it give my Discord bot hobby project a web interface. It was something I had wanted to do for a long time, but that felt too time-consuming. I could just hand it off to the AI. The first iteration used Svelte as the front-end, and I found it to be too much to add "all of front-end" as a (development) dependency, if I could just use Go, or something that generates Go code. A month or so went by before I finally did it, and even then, it took some time before I dared merging it back into the main branch. I was genuinely impressed by what it had managed. All the settings could now be managed from the web interface. Additionally, some new things only available in the web interface were added. And finally, an audit log viewer for a server.
Something still felt kinda off, or at least something was unsettling. I had skimmed over the changes and the code, but I never truly read it line by line, like I would have had to if I wrote it by hand. Instead, 7,000 new lines were added to the codebase, then another 5,000, that I had not written myself. It felt dirty somehow, like it was something that wasn't supposed to be there. Like a food stain on a white shirt. At the same time, it felt incredible to have made those features in the short amount of time it took. But, I couldn't shake the fact that something felt off.
It felt like I had lost some control of the project. And frankly, I had; I delegated a sizeable task to an AI agent. I had lost some of that control I held previously. Because it was mostly a solo project prior to this. Yet, I did not feel like this the times other had contributed things to the project. Is it because the scope was different, because I had someone I knew could reason and that could be held accountable for their work? Maybe a bit of both. Maybe this is how my project lead feels whenever he hands off projects for us to work on, or at least when he first changed roles from a developer to a project lead.
Maybe it is the fact that it has been such a personal project to me, and that having such a significant task be put in someone else's hands-- a machine's hands, with no real soul to put into it, whatever that would mean. Maybe it's the fact that the use of LLMs and AI agents is consuming vast amounts of electricity and (drinking!) water, or that they have trained these models on other people's labour, who'll never see a cent of their work being utilised for this.
There might not be a single answer to why this feels the way it does to me, and that's fine. I think it's a good mix of all of the above. It feels dirty to work with, and if I were to micromanage and review it more closely in the future (which I should, and will), I don't think I will feel better about it. I will probably see more of the inconsistencies and issues when I see the code at a lower level, which will be frustrating to have to correct, likely repeatedly. But even then, there is something disgustingly satisfying about being able to compress a multi-week project into a weekend thing. I don't really think that it is a good thing; we do the tasks at the speed we do for a reason. It takes time to write, process, and think about all that we do, and we can't just accelerate that.
With all that said, there are also the other concerns of AI. The impact it has on electricity and water usage, data centres being built near residental areas, creating a lot of noise pollution. The very same products being used to spread misinformation and exhaust people with even more endless content. I think that those concerns are probably the real reson why I shouldn't be continuing to use it, if I ever needed some.
Nevertheless, we are being pushed at work to use AI agents more and more. Due to various reasons, we have not yet, which to some extent has felt like some kind of blessing, because I really do not know how I would feel about this when my workdays will consist of telling Claude or ChatGPT what to do, and reviewing their "understanding" of tasks, their spec documents, and their code.
In the end, it really does feel like some sort of devil sitting on my shoulder, telling me to give in and just (continue to) use it, preferably more and more. But I do feel like I will lose a part of myself if I do.