What Is The Vibe
There is a point where how we use words is so ambiguous terms become useless.
Vibe Coding Is Still Finding Itself
Vibe coding seems to float around a cluster of meanings all having to do with using generative AI tools to write code based on prompting. The wikipedia article about vibe coding has this to say about it:
AI researcher Simon Willison said: “If an LLM wrote every line of your code, but you’ve reviewed, tested, and understood it all, that’s not vibe coding in my book—that’s using an LLM as a typing assistant.”
Meanwhile, popular use drifts away from this strict definition, where vibe coding seems to shift between the pure “hands off the code” approach described by Willison, to human editing of the code to correct it when the LLM drifts from what one wants, to as thin as using an ai assistant providing code snippets in prompts as the programmer copies and pastes them where needed.
While language is always fluid, and never locked, sometimes by convention we adopt a specific defintion to achieve a specific utility. I believe the ambiguity in what we mean by vibe coding misses an important purpose that the term serves.
A Suggestion for a Purpose Driven Clean Separation: Where are the Programmers Going?
It is popular to claim programmers are going away sometime in the next couple of years (for audience sake, today is May 3rd, 2025, and a fun game might be to check your calandar and ask around if any of the people you know are still writing code). It is also popular to make the same claim of testers, and they are part of this.
AI tools are presented as evidence of this claim. Vibe coding is the practice that is supposed to replace the programmers and the testers. Anybody who works directly with the code, where technical expertise is required to build and deliver a software product, is supposed to be replaced by people who are able to in plain English clearly describe a business problem. From there the AI tools will create code sufficient to solve that problem, no computer software expert required.
Vibe coding no longer supports that claim if the person working with the AI toolset steps in to apply any skill that is specific to software programming or testing. The claim is only supported if a person is able to produce a sufficiently usable application using only business domain expertise.
Given vibe coding has been offered as evidence of the AI displacement of programmers, it seems pointless to entertain any definition of vibe coding which allows for someone altering the code after the fact. Because of this, I offer the following strict definition of vibe coding.
Vibe Coding (verb), The creation of software products via the use of plain human language description to an AI code generation tool of product behavior without the application of any skill associated with code architecture, structure, design, algorithm, or the manipulation and alteration of the code generated.
Implications of a “Hands Off the Code” Definition
This definition would mean that the introduction of any violation of those exclusions would transform the act from “vibe coding” to just “coding”. To touch the code requires the skills of a programmer, which would mean vibe coding has not been the means to displace programmers, it only transformed the way they applied the same skills.
This definition would also disallow the use of programmer skills to describe code architecture, design, or algorithmic structures. These are the skills of programming and have everything to do with the devices they are implemented on, not the business problem they are solving. For example, if one decides that the list of user choices will come from a Redis cache instead of a PostgreSql database, that would not be vibe coding. That would be a programmer making a decision demanding special knowledge in the programming domain.
Where is this Going?
From today’s vantage point, we cannot know where things are going, we can only speculate. Will AI displace programmers, or are we just giving them new tools to apply the same skills? This is a wait and see moment, people have picked their seats, bought their snacks, and are ready to watch the show.
The point of settling on the terms is making sure we are watching the same show.