The toddle Blog

Programming is magical, but it is not magic

AI "vibe coding" enables quick app creation, but lacks the control of traditional development. Developers ensure reliability, which AI alone can't provide.

Programming is magical, but it is not magic
Andreas Møller

Andreas Møller

March 20, 2025

Vibe coding has gotten a lot of attention recently. It allows people with no knowledge of coding to build simple applications simply by asking an AI agent to write the code for you.

Companies like Bolt.new and Lovable.dev have seen incredible growth in the last 6 months and Lovable.dev became the fastest growing startup in Europe.

If you have tried any of these tools, you should not be surprised. You just type in the app you want to build, and the AI builds it for you. If you want to change something, just tell the AI what you want and it will make the changes for you. It truly feels like magic.

Based on the success of these seemingly magical tools, a lot of people have been predicting the end of traditional software development. Why would you pay software developers when you have a magical tool that can do it for you instead?

Since their invention, technology, and especially computers, have been able to perform tasks that previously required a human mind. The first computers that were able to do arithmetic were met with equal parts wonder and skepticism. Eventually the skepticism receded and the wonder faded as computers became a normal part of our day. Why would the same not be true for the AI agents that are emerging now? The history of computing is a story of computers doing magical things and humans almost immediately taking them for granted.

Behind the curtain

While computers are absolutely magical, they are not magic. At the hardware level they are carrying out a surprisingly simple set of instructions. By combining those basic capabilities in clever ways through software you get modern computers that can run video games, send emails and fetch your social media feed. When you don't understand each step between what you see on the screen and the operations your CPU is doing (and very few people do) it seems indistinguishable from magic. I have been programming computers for over 20 years, and it still feels that way to me.

But there is one important difference between a technology seeming magical and actual magic. The reason why these technologies seem magical is because thousands of engineers have worked tirelessly to make it so. Whether it is me, the application developer who built the blog you are currently reading or the hardware engineer that designed the instruction set for the CPU that powers your phone or laptop, at every step there was someone who understood the technology and made sure that it worked the way it should.

But just because we don't see what happens inside the computer when we click a button does not mean it is not important. All the amazing software that you interact with every day works because of engineers that designed it to work in exactly that way. Companies like Netflix and Google can serve hundreds of millions of users because they have engineers at every level who understand exactly how every aspect of their systems work and they take their responsibilities very seriously. The fact that you are not aware of the engineers, simply means that they are doing their job.

The A is for artificial

Vibe coding is a fundamental break from this model because with vibe coding there is no engineer. The AI models don't understand your code or your business. It operates purely on probabilities.Given the input prompt, and the AI agent's vast amount of training data, it will output the most likely result that the user would want to see. The results are often incredible, but it is still just guessing.

When using AI to generate code for all of this, you probably won't know how it all works, but you are still responsible for it. You are responsible for designing your system architecture in a way that supports your product not just now, but also where it is supposed to go. You are responsible for making sure all the different services that make up your product are constantly operational.

This is why experienced developers do not use vibe coding for building software. They may still be using AI to help generate some of their code, but they are way more specific about what they want the AI to do. When using code generated by an AI, they will always verify that they code matches what they would have written on their own. Experienced engineers know the importance of understanding every part of the systems they are responsible for.

Vibe coding is fun, but it will never replace software developers because having software that is reliable is always going to be more important than how quickly you can produce it.