It’s time to record my thoughts on AI assisted coding. What’s good and bad, and where I think we’re heading. There’s not going to be anything earth-shatteringly new in here - I feel there is a consensus building in the software industry and this comes from both my experiences and learning from others.
I’ve been using AI assisted coding seriously in my job for around 4 months, and for my own projects for around 2 months. I’m not going to state which systems I’m using; I’m not here to advertise any services. As I discuss later, I actually don’t think it really matters. But what does matter is how this is changing the software industry. The economics of software have changed forever and this is opening all sorts of exciting new opportunities to build things we’ve never been able to before. I think that’s going to be a generally good thing.
Let’s start with a common criticism. Vibe coding with AI just produces slop. Yes, it’s true and the Internet is awash with slop. The change in economics has introduced something new. This is the age of disposable code. This is exactly the same as disposable cutlery, junk food and plastic toys that get played with once and then thrown away. It’s bad for you and it’s bad for the environment but it exists for a reason. It exists because it’s cheap enough to make and it fulfils a desire. We know it’s bad and we have to minimise our use of it. We have the same challenges with the plastic fork - we can tackle this in healthy societies but we can’t stop the fact it can be made.
There’s another side to disposable code. Disposable code is that tool you built to solve a problem that you had for that hour. It’s the website you built for your school fair on the weekend. It’s that prototype you made to see if the idea you have could be real. That’s exciting. That’s allowing us to do things we could never practically do before.
What’s the difference between vibe coding and AI assisted coding? Vibe coding produces disposable code; AI assisted coding produces real products. The former is a couple of vague prompts. The latter is hundreds of prompts, with the developer driving the whole time and while not being aware of every line of code being very aware of the architecture and techniques in use. I’ve changed from spending 80% of my time coding and 20% being an architect, designer and product manager to flipping that around. I love coding, but I also love building beautiful products that people love.
AI assisted coding requires experience. It requires knowing the languages, platforms, algorithms and security processes. You get a lot of help with these from the AI, but you’re still the one responsible. Using AI is like having a chainsaw. Everyone can probably pick up an axe and do some basic wood chopping. We can all do the same with a chainsaw, but the experienced operator is going to do a better job and not end up with a gory mess. If you’re starting out in the software industry you need to learn the tools. It’s what is going to allow you to build real products and not just disposable code. It’s going to take discipline, as AI gives you that easy way out. But like junk food, you’ll regret taking the unhealthy choice for too long.
I’ve been developing open source for more than 20 years. A lot of people in the community are very concerned about the impact of AI. Does AI make open source irrelevant? If code is so cheap can we manage the costs of maintaining all the contributions? I think the fundamentals remain - sharing code has always been the best way to build software. The rising tide of open source will continue and we’ll see more open source than ever before. Even if you can build it yourself with AI for most projects, leveraging well designed and shared platforms is still going to make better software. Contributions are part of community management. Be clear in what expectations your project has and don’t be afraid to say no. No project can do everything and it’s always OK for contributors to build their own solutions if they want to maintain them.
One thing I never expected was how little I care about the LLMs and the harnesses. Some are better, some are worse, but they’re all basically good enough for AI assisted coding today. Open source is going to eat the AI industry exactly like it did the rest of the software industry. At some point, I will spend a few thousand dollars on a dedicated piece of hardware that runs a model on my local network. It will use some price optimized RAM technology that works well in this case. It will cost more than the equivalent cloud service (at least initially) but I won’t care. The model won’t be quite as good (according to some benchmark) as the one by a leading provider. Lots of people will continue to use cloud AI providers, which is fine because it is convenient for them. But the open source world will be able to use AI assistance on their own terms and the price of entry will be what it always was - if you can buy a basic device you can contribute.
Welcome to the age of AI assisted coding and disposable code. I’m working on projects I’ve been thinking about for 5-10 years. Projects I could never feasibly do and instead could only play on the edges. I’m excited to see the projects you are going to develop.