This was initially a response to a thread of naysayers but then I realized it is its own post.
"Vibe Coding" What a terrible name. Can we rename this right now to something more serious sounding and explicit. How about AI Assisted Coding? This terrible name immediately puts people on the defensive. We all pictured a hippie with a joint in his mouth on a computer listening to techno or Marley, right?
Firstly, anyone thinking vibe coding is a fad is blind. Anyone who can't get things working with vibe coding is trying to talk to a human while actually talking to an LLM. Anyone who says it is high risk is... correct, sort of. We are at the very beginning of this kind of tool and they are not half as good as they will be in 6 months, much less 5 years. Let's accept that they don't do what we want them to do because we don't yet know how to use them. Yet.
1. It is not a fad, it is the future. For now it is only for rapid prototyping, proof of concept and MVPs. If you can generate an application with the minimum features and prove it's worth working on, maybe make a little money, you will be much more comfortable putting paid employees on the project. There will be security issues. There will be errors which need fixing by a real programmer but ALL applications have these at the start.
2. Stop trying to 1 shot prompt an application. Thinking you can fully describe or an AI will fully generate a project of any real size in a single prompt is ridiculous. The best tool will start from the beginning as if every person who would be involved with any aspect of the application were in the same room and it will take you through the steps of defining the project with their assistance. These YouTubers are out here judging tools based on their ability to one shot an application and it's a joke. In the real world you might use 50 prompts to fully describe and adjust a single feature to your liking.
3. Talking to an AI has little to do with how we talk to each other. We can send an email to another person describing a project or feature and they will build it. They will use some domain knowledge, some best known methodology, some research, some decision making of their own and ask some questions to us, to coworkers and to the internet in order to get to their final offering. An LLM does almost NONE of these things by default. This is exemplified when debugging a feature issue, not a general error. If you tell the AI a feature isn't working like you wanted 9 times out of 10 it will not only not fix the issue, but create new ones. You can prompt in a way such that it can better understand its mistake and resolve them but we're still learning these intricacies.
4. The future of AI software engineering is fast, NOT cheap! If you or I were offered 1 year's worth of a senior level coder's work for $100,000 and it'd be done in 24 hours we'd laugh. If you offer that to a corporation they'll take 10. Hell, 100. Lots of prompting. Lots of testing. Lots of adjustments. Lots of iterations. It will not be cheap, it will be fast.
5. AI code should not, and eventually will not, look like human code. The best way for AI to create a codebase that it doesn't mess up is to use a huge amount of modularity. An amount that would be impossibly annotying to a human coder. Anything that doesn't have to count on something else should be separated from it in the project. This means small portions of code can not only be eliminated from possibly being part of a bug but cannot be broken by the refactor as it will not be edited at all. We will depend more heavily on libraries of constantly iterated on, improved and tested components that do a small thing perfectly and are designed to integrate easily. We might even end up with programming language that are not human readable.
Long story short if you attempt to build a project of any size using AI Assisted Coding you will beat your head against the wall. As a non-coder you don't stand a chance, yet. As a coder you will say it's futile and go back to writing your own. What I say is give it time. The LLMs will get better. Models will be created with specific focuses and knowledge or what good code is vs. what's most common. Tools will get better. We will get better at understanding the intricacies of working with LLMs. It's all coming so build your projects as the current time best dictates for you but don't keep your eyes closed just because version 1 is ugly.
"Vibe Coding" What a terrible name. Can we rename this right now to something more serious sounding and explicit. How about AI Assisted Coding? This terrible name immediately puts people on the defensive. We all pictured a hippie with a joint in his mouth on a computer listening to techno or Marley, right?
Firstly, anyone thinking vibe coding is a fad is blind. Anyone who can't get things working with vibe coding is trying to talk to a human while actually talking to an LLM. Anyone who says it is high risk is... correct, sort of. We are at the very beginning of this kind of tool and they are not half as good as they will be in 6 months, much less 5 years. Let's accept that they don't do what we want them to do because we don't yet know how to use them. Yet.
1. It is not a fad, it is the future. For now it is only for rapid prototyping, proof of concept and MVPs. If you can generate an application with the minimum features and prove it's worth working on, maybe make a little money, you will be much more comfortable putting paid employees on the project. There will be security issues. There will be errors which need fixing by a real programmer but ALL applications have these at the start.
2. Stop trying to 1 shot prompt an application. Thinking you can fully describe or an AI will fully generate a project of any real size in a single prompt is ridiculous. The best tool will start from the beginning as if every person who would be involved with any aspect of the application were in the same room and it will take you through the steps of defining the project with their assistance. These YouTubers are out here judging tools based on their ability to one shot an application and it's a joke. In the real world you might use 50 prompts to fully describe and adjust a single feature to your liking.
3. Talking to an AI has little to do with how we talk to each other. We can send an email to another person describing a project or feature and they will build it. They will use some domain knowledge, some best known methodology, some research, some decision making of their own and ask some questions to us, to coworkers and to the internet in order to get to their final offering. An LLM does almost NONE of these things by default. This is exemplified when debugging a feature issue, not a general error. If you tell the AI a feature isn't working like you wanted 9 times out of 10 it will not only not fix the issue, but create new ones. You can prompt in a way such that it can better understand its mistake and resolve them but we're still learning these intricacies.
4. The future of AI software engineering is fast, NOT cheap! If you or I were offered 1 year's worth of a senior level coder's work for $100,000 and it'd be done in 24 hours we'd laugh. If you offer that to a corporation they'll take 10. Hell, 100. Lots of prompting. Lots of testing. Lots of adjustments. Lots of iterations. It will not be cheap, it will be fast.
5. AI code should not, and eventually will not, look like human code. The best way for AI to create a codebase that it doesn't mess up is to use a huge amount of modularity. An amount that would be impossibly annotying to a human coder. Anything that doesn't have to count on something else should be separated from it in the project. This means small portions of code can not only be eliminated from possibly being part of a bug but cannot be broken by the refactor as it will not be edited at all. We will depend more heavily on libraries of constantly iterated on, improved and tested components that do a small thing perfectly and are designed to integrate easily. We might even end up with programming language that are not human readable.
Long story short if you attempt to build a project of any size using AI Assisted Coding you will beat your head against the wall. As a non-coder you don't stand a chance, yet. As a coder you will say it's futile and go back to writing your own. What I say is give it time. The LLMs will get better. Models will be created with specific focuses and knowledge or what good code is vs. what's most common. Tools will get better. We will get better at understanding the intricacies of working with LLMs. It's all coming so build your projects as the current time best dictates for you but don't keep your eyes closed just because version 1 is ugly.