Thoughts about AI coding

I’ve been working on some of my hobby projects lately. Some of which have been neglected for quite some time. It gives me an interesting viewpoint to pick up a project now, in full “vibe coding” mode, that I started with very minimal AI help.

I will write this post about working on projects where your own skill level is fairly high in the language / framework you’re using. Having AI write code for you that you don’t understand, or don’t know well is a bit of a different prospect.

There are some patterns that I notice repeating in all projects where the development is mainly just prompting. There’s the initial rush of getting very far with the first couple of prompts. Almost every time I do this, the AI tools have improved, creating things faster, cleaner and better. It feels like you’re getting 90% of the way there in a matter of minutes or hours, depending on the complexity of the project.

Tweaking the code

After the initial version is done, you usually start testing to see if everything works as expected. At this point you usually find a lot of design decisions that need improvement or problems or even bugs that need fixing.

At this point, prompting is still quite efficient. If you have a good understanding of the design, you can improve things a lot with good prompts.

But here the problems start creeping in. The more you work like this, the less you understand the project as a whole. Bigger, more difficult to find bugs can start appearing, not even because the AI makes mistakes (which it can), but because neither you nor the AI understand the full scope of the project.

The neverending polish

After you have everything more or less as you want it, you start working on the polish. This is where I find the biggest problems.

At this point you have a quite good image of what you want, but it can be difficult to explain as prompts. And by this I don’t mean that you can’t describe the tasks you want the AI to perform, but that it can sometimes feel like you’re trying to make fine adjustments with a sledgehammer. You can get the AI to do what you want, but it will often do a lot more. Here I often find myself uncertain if I should go with my plan, or keep the new things the AI made in addition to what you wanted.

In order to get the project across the finish line, you need to start properly going through the code, but sometimes after you understand a part well, the AI just rewrites the whole section.

Is it faster?

The big question in the end is probably if it’s more efficient to code with AI? I don’t know the answer to that. It’s different to be sure. I think it can be broken down into a pros and cons list.

Pros

  • Prototyping and proof of concept code is insanely fast. This makes your projects easier to sell, to project managers, customers, and even to yourself.
  • You don’t have to know / learn everything. Setting up projects is so much faster, because you don’t have to check what that specific setting was called.
  • It’s a good tool to learn new things.
  • I think all in all, it is faster than writing the code yourself.

Cons

  • It’s pretty expensive. Already now, the cost is not insignificant to use good AI tools. And we know that all the AI companies are losing money, so the cost will have to go up just to break even. And once enshittification hits, it will cost a lot.
  • The code quality is difficult to keep at a good level.
  • It’s very addictive, and your skill level goes down quite quickly if you don’t do any coding yourself.
  • You don’t have a good overview of what the code does in detail. Which can make development harder.

What does all this mean?

I’m not quite sure what conclusions to draw from this. Is it a good thing or a bad thing? I don’t think AI will make the world a better place, it’s bad for the environment, it further transfers power to an ever shrinking group of people. But it also allows people to make things more easily. It’s been very good for my hobby projects, you can actually get results even if you only have an hour or two to work on something.

I think we need to take care not to get too dependent on the companies pushing this to us, but there is no closing this box anymore, so we need to make the best of it.