I don't care about AI. But I feel like I should.
AI has been a mainstay of science fiction for decades, touted as the future of, well, everything it seems.
For me as a software engineer, I try to keep abreast of what's going on in the industry at large to ensure that I'm following trends and keeping my skills up-to-date. AI seems to fall into this strange category when spoken about online. There are those that herald it as a new beginning, an evolution of traditional software development, the end of programming all together.
But I just don't really care about it.
There are a many reasons to be distrustful of the supposed benefits that AI brings but here are some that resonate with me:
- The idea that it will replace software engineers altogether
- The environmental cost
- The spread of even more misinformation
After reading through Danilo Alonso's excellent artical on "The Recurring Cycle of 'Developer Replacement' Hype" it got me thinking about AI in terms of how we actually use it on a day to day basis. As discussed in their artical, Danilo points out that AI cannot be used to architect whole systems. It doesn't have the context nor the training to understand how all the individual pieces fit together, let alone how they should continue to be evolved upon.
It's why we get tweets like this:

But surely it's actually good for something?
My own experience with AI has been a mixed one. I've used ChatGPT and Microsoft CoPilot (the web one that's basically ChatGPT again. Why are they all named CoPilot?!) and have found them to be useful tools. They allow me to express what I'm looking for in natural language, to get right to the heart of what I'm trying to solve without having to trawl through endless documentation and stackoverflow threads. As a chatbot they really shine but my own experience has been that whilst the experience of using these is excellent, the actual code that they output can be flaky or completely broken.
Now, you may be thinking "Why not just tell it what the error is and have it solve the problem?".
And I could do that, but doesn't that kind of defeat the point? I could come up with a solution that doesn't work. That's why I'm asking the question in the first place.
Which highlights why we've seen the rise in coding assistants. Something that's working alongside you as you develop so you aren't always having to provide the context to a chat bot. Surely this will fix the problem right? I can be prompted in real time with suggestions and improvements to my code.
But again, there's this issue of sometimes, the code just doesn't work.
At the moment I work primarily with VueJS, which uses a lot of HTML and JS in it's syntax but has it's own quirks. And the developer experience of using copilot is appalling. It just makes things up, doesn't understand the code that's already in the file and in general actually slows me down sometimes.
But when it works. 🤌 It's glorious.
But that's the problem, it often doesn't.
Initially I found it great for writing unit tests. It would proudly generate whole tests, seemingly smirking at the the petty thing it was being asked to do. But the tests were often poorly written, didn't pass or were testing the wrong thing entirely.
And whilst all of this is well known, it brings me back to Danilo's closing remarks.
| When implementation speed increases dramatically, architectural mistakes get baked in before you realize they're mistakes.
What are we giving up by using these tools? What are we sacrificing? What are we missing?
We're being told that these tools will speed up development and catch bugs but if anything they do the opposite. We spend more time critiquing what the AI has spat out instead of actually solving the problem. This is without touching on the decline in critical thinking or the additional work for developers that comes from using these tools.
It feels difficult as a software engineer to go anywhere or talk to anyone about the work we do without AI coming into the conversation, without people saying you'll be left behind if you don't adapt and adopt. But I just don't really believe the hype. I don't believe the rhetoric. I believe that these are incredibly powerful tools. The LLMs behind these AI agents are amazing. But what we're using them for isn't.
We should be diverting these new tools towards finding cures for diseases, improving the quality of education, inventing new things. Instead, we prefer to have chat bots that tell us to use glue to help cheese stick to pizza and coding assistants that don't help us write code.
I believe that we should be focussing on training people, helping them grow as software engineers and further their careers. Not just seeing another tool that's going to reduce effort and create more problems as we go.