I hate to break it to you, but the definition has already changed. It now means to build software exclusively using AI/LLM.
It's similar to the whole hacker/cracker debate. Words become defined by the one that has the most influence over the community and sometimes evolve on their own through places like social media.
simonw · 2h ago
Given that this conversation is happening on the website called "Hacker News" I was hoping somebody would bring up the hacker/cracker thing!
smokel · 3h ago
Indeed, this is not how language evolves. You can't dictate the meaning of words.
Another unfortunate example is the increasingly negative connotation assigned to the word "algorithm".
dylan604 · 3h ago
at this point, those that use algorithm deserve the negative connotation. just like those that use synergy deserved to be mocked. when words are used just for the sake of using the word in word salad text, they quickly lose meaningful intent as the listeners hear them as shibboleths that the speaker is talking out of their arse.
bet
drfuchs · 2h ago
Similarly, “hacker” used to be positive, until the public at large got ahold of it.
cruffle_duffle · 2h ago
They did. But that was back in the 2000s, when nobody really understood the nuance. Today, calling someone a “hacker” to mean “computer criminal” almost feels like a boomer move. We’ve got way better language now: white hat, black hat, script kiddie, scammer (and all its lovely subgenres—pig butchering, refund scammers), phisher, etc. Not to mention whatever we’re calling the folks running dark net markets these days.
And while the general public might not know the fine distinctions between these, I think society does get that there’s a whole spectrum of actors now. That wasn’t true in 2000—the landscape of online crime (and white hat work) hadn’t evolved yet.
Honestly, I’m just glad the debate’s over. “Cracker” always sounded goofy, and RMS pushing it felt like peak pedantry… par for course.
That said, this whole “vibe coding” thing feels like we’re at the beginning of a similar arc. It’s a broad, fuzzy label right now, and the LLM landscape hasn’t had time to split and specialize yet. Eventually I predict we’ll get more precise terms for all the ways people build software with LLM’s. Not just describing the process but the people behind the scenes too.
I mean, perhaps the term “script kiddie” will get a second life?
9rx · 3h ago
Words mean whatever the speaker (or author, in this case) defines them as.
esperent · 3h ago
Words are defined by consensus of the community using them. That's the primary source of semantic meaning.
Next one down is dictionary definition (or claim to authority, for example a tweet where the term was first used). But community meaning takes precedence.
Authors are free to use a nonstandard meaning but should provide readers with their definition if they want to be understood.
9rx · 2h ago
> Words are defined by consensus of the community using them.
No. That would make it impossible for someone new to a community to communicate with a community, all while at the same time a community isn't going to accept someone new who isn't communicating. Yet clearly people do join communities.
What happens in reality is that everyone accepts that the speaker's definition reigns supreme, and if there is suspicion – absent of a definition – that there is a discrepancy between the speaker's definition and own's own definition, the speaker will be asked to clarify.
A speaker may eventually adopt a community's definition, but that doesn't always happen either. Look at the Rust users here. They hang desperately onto words like enum that do not match the community definition. But it doesn't really matter, does it? We remember that when they say enums they really mean sum types and move on with life.
Isn't it the converse(?)? Words mean whatever the audience understands them as.
9rx · 3h ago
No. A speaker can only speak with words as he understands them. It is impossible to know what other people are thinking.
A good speaker will define the words as he speaks (still relying on some baseline shared understanding of the most common words, of course; there is only so much time in the day...) so there is no room for confusion, but in absence of that it is expected that the listener will question any words that show an apparent disconnect in meaning, allowing the speaker to clear up what was meant, to ensure both parties can land on the same page.
sampullman · 2h ago
In theory, but in practice the audience understanding is important, and communication doesn't always end up with both sides on the same page.
Even more so when it's an author/reader relationship. The reader is free to interpret the book/article/etc. how they want, and if enough agree, it becomes the consensus.
9rx · 2h ago
> but in practice the audience understanding is important
Where audience understanding is important than you will definitely go out of your way to ensure that definitions are made abundantly clear and that the audience agrees that they understand.
But, in actual practice, most of the time the audience understanding really doesn't matter. Most people speak for the sake of themselves and themselves alone. If the audience doesn't get it, that's their problem. Like here, it means nothing to me if you can't understand what I'm writing.
conorjh · 2h ago
how did the speaker understand the words if he couldnt guess what the other person was thinking or feeling?
9rx · 2h ago
Probably from listening to another speaker who defined it, adopting their definition. Possibly from making it up on the spot. After all, someone has to create the first definition! Words weren't handed down to us by some magical deity.
But that doesn't mean the audience came from the same place. It is very possible, and often happens, that they heard/created an entirely different definition for the same word. The speaker cannot possibly use their definition before even knowing of it.
nathan_douglas · 3h ago
Isn't that what it originally meant?
Timber-6539 · 2h ago
No. Just read the original tweet from Karpathy.
firefoxd · 2h ago
When I first heard vibe coding, it sounded like a meme, a joke. But people took it seriously. Andrej Karpathy was still in the process of defining it when the phrase took a life of its own. I'm surprised it's making it into a book barely two months after it was coined.
If vibe coding somehow becomes the method of programming, then code will become obsolete. Hear me out:
Why code when you can just ask the computer to do what you want and get the results. The coding part is abstracted deep in the background where no human needs venture.
When vibe coding dominates, It's not that people won’t know how to code anymore, it's that coding becomes irrelevant. The same way that there are people who still know how to ride horses, but it's irrelevant to transportation. When vibe coding reaches its peak, programming languages will evolve into something unrecognizable. Why do we need a human readable programming language when no human needs to read it? I picture a protocol agreed upon by two computers, never released to us humans.
area51org · 2h ago
> Why code when you can just ask the computer to do what you want and get the results.
Because then you won't know the design of the code or how it even works.
The hard part of coding isn't writing the code itself. It's the design of the code that takes skill, and if you leave that part completely up to AI, you are taking your life in your hands. Bad idea.
firefoxd · 2h ago
Not saying it's a good idea. In fact, I watched someone on twitter debugging code. When the application errored out, he regenerated the code, including the issue in the prompt. Something else failed, the prompt was updated, and code regenerated. Now that of course was for visible errors.
When the person building the application doesn't know or care, the application will still be deployed.
dirtyhippiefree · 1h ago
> When the person building the application doesn't know or care, the application will still be deployed.
Resistance is futile.
We will adapt.
simonw · 2h ago
That's why I'm keen on keeping vibe coding to it's original definition as a fun way to prototype some ideas if you don't care at all if the code is robust, secure, maintainable etc.
If you're writing code for production, even if you get an LLM to put together bits of it for you, that's programming. It's pretty much copy-and-paste-for-stackoverflow if StackOverflow had a massively larger library of snippets that almost always included the thing you needed at that exact moment.
Professional programmers still need to take responsibility for making sure the code they are producing actually works!
firefoxd · 2h ago
Now imagine it's not professional programmers writing this code. The same way it's not professional film makers making Mr Beast videos. The quality is not even part of the equation.
esafak · 2h ago
To spell out the obvious, the most subscribed channel on Youtube belongs to an 'amateur' -- that's what people are choosing. People don't care. But that's because that's what Youtube incentivizes; Mr.Beast just optimized his content for the medium.
CamperBob2 · 2h ago
Of course, what you're describing is just machine language, but at a different level of abstraction. How many C++ coders these days can read x86 or ARM assembly? Not many, because they almost never need to.
It's well past time for traditional "high level" programming languages to meet the same fate.
dttze · 30m ago
Formal language to formal language provides a level of determinism. I know what kind of code gcc will generate for a loop, generally. But if I care about vectorization or whatever, I will need to inspect the assembly to ensure it is generating it correctly (or write it myself).
Natural language to formal language does not provide that. How the hell would I debug or operate a system by just looking at a prompt? I can't intuit which way the LLM generated anything. I will always have to be able to read the output.
AFAICT, the only people who say you can remove code are people who don't code. I never hear this from actual devs, even if they are bullish on AI.
CamperBob2 · 8m ago
Yeeeeah, determinism... going to have to leave that behind, I'm afraid. Otherwise you will be outcompeted by people who do. If you thought test-driven development was important before, you ain't seen nothin' yet.
SIMD optimization is already handled well by the current generation of models [1]. There will be no point in doing that by hand before too long. An exercise for antiquarians.
I never hear this from actual devs, even if they are bullish on AI.
I can’t imagine tweeting something random at 4am and the next month a whole industry was formed around my tweet’s choice of words.
yoyohello13 · 2h ago
It's kind of been a rude awaking realizing that so many "founders" just choose their business direction based on the latest blog post they read.
flappyeagle · 2h ago
Why is this bad? Is the idea bad?
barbazoo · 3h ago
Can’t wait for the obligatory hn post about the documentary twitter thread on how their tweet blew up /s
alabastervlog · 3h ago
Can anyone recommend a video that's a good representation of "vibe coding"? I'd like to get a better sense of what the actual moment-to-moment of it looks like.
LLMs have been so spectacularly useless the couple of times that I've tried to use them for programming, that I can't really wrap my head around what this must be.
simonw · 2h ago
Which version of vibe coding do you mean? Using AI to help you write code or using LLMs to build apps without caring about the code at all?
alabastervlog · 2h ago
The not-caring version, especially.
jofer · 1h ago
I'm really struggling to understand it as well. I mean, sure if what you're doing is a website, then maybe you can get something that functions out of an LLM. I don't really do web development, so maybe they're better for that specific niche.
However, for most cases I've tried, I get wildly incorrect and completely non-functional results. When they do "function", the code uses dangerously incorrect techniques and gives the wrong answer in ways you wouldn't notice unless you were familiar with the problem.
Maybe it's because I work in scientific computing, and there just aren't as many examples of our typical day to day problems out there, but I'm struggling to see how this is possible today...
We should call what those authors are doing “vibe writing” because they didn’t have any editors who actually cared about the contents of the book.
zelon88 · 2h ago
This.
I'd be concerned purchasing a book from a "programmer" who claims to teach people how to code without code. Kinda sounds like an "author" who publishes books without writing books.
zelon88 · 2h ago
Are we supposed to believe that a book which teaches people how to be "programmers" without writing any code was actually written by a human author?
rzz3 · 2h ago
Lol, sigh. Author says the term was coined 84 days ago on February 6th 2025. Literally go to Google and search ‘“vibe coding” before:2025-02:01; I see posts from more than a year ago.
simonw · 1h ago
Can you provide some links? I tried that search and couldn't see what you were seeing.
theflyestpilot · 1h ago
a short story to address explaining what vibe coding is for non developers:
Picture this- are tools like Devin "vibe coding"?
if we break down the mechanics of what interfaces it's looping through:
1)Chat
2)IDE
3)CLI
4)Dev console/Browser
and it's effective copy and pasting what it sees while trying to complete an objective it doesn't fully comprehend. Blissfully ignoring the ramifications of desired combinations as long as decent version control practices are being applied. iterating / adjusting prompts subtlety along the way to debug when getting stuck in a thought loop. changing your prompt from "fix it" to something with more "pizazz" as the key to breaking this cycle.
how is it any different than when I do all this manually?
Slog through this game of 4 square long enough and you can pretty much vibe anything together.
readthenotes1 · 19m ago
Hate the uninformed changing word meanings? Think how the devops feel...
pchristensen · 3h ago
The ship has sailed (originally “is sealed”, voice dictation error) on the original definition. Sorry Simon. But the work that Gene Kim and Steve Yegge are doing talking about chat oriented programming is really interesting, and I recommend people look into it.
Finnucane · 3h ago
>The ship is sealed on the original definition.
And apparently the original cliché as well.
xnorswap · 3h ago
"When I use a word," Humpty Dumpty said, in rather a scornful tone, "it means just what I choose it to mean—neither more nor less."
z0r · 2h ago
Learned from this post that steveyegge went full AI
davidhunter · 2h ago
Anyone else think “vibe coding” is a poor choice of name. Too ambiguous.
Friend of mine suggested “apping”.
I ‘apped’ this in 2 hours vs I ‘vibe coded’ this in 2 hours.
khedoros1 · 1h ago
And "apping" isn't even more ambiguous?
scblock · 2h ago
That's because it doesn't mean a god damned thing.
puff_pastry · 1h ago
"Author fails to understand that there can be multiple definitions for a phrase"
It's similar to the whole hacker/cracker debate. Words become defined by the one that has the most influence over the community and sometimes evolve on their own through places like social media.
Another unfortunate example is the increasingly negative connotation assigned to the word "algorithm".
bet
And while the general public might not know the fine distinctions between these, I think society does get that there’s a whole spectrum of actors now. That wasn’t true in 2000—the landscape of online crime (and white hat work) hadn’t evolved yet.
Honestly, I’m just glad the debate’s over. “Cracker” always sounded goofy, and RMS pushing it felt like peak pedantry… par for course.
That said, this whole “vibe coding” thing feels like we’re at the beginning of a similar arc. It’s a broad, fuzzy label right now, and the LLM landscape hasn’t had time to split and specialize yet. Eventually I predict we’ll get more precise terms for all the ways people build software with LLM’s. Not just describing the process but the people behind the scenes too.
I mean, perhaps the term “script kiddie” will get a second life?
Next one down is dictionary definition (or claim to authority, for example a tweet where the term was first used). But community meaning takes precedence.
Authors are free to use a nonstandard meaning but should provide readers with their definition if they want to be understood.
No. That would make it impossible for someone new to a community to communicate with a community, all while at the same time a community isn't going to accept someone new who isn't communicating. Yet clearly people do join communities.
What happens in reality is that everyone accepts that the speaker's definition reigns supreme, and if there is suspicion – absent of a definition – that there is a discrepancy between the speaker's definition and own's own definition, the speaker will be asked to clarify.
A speaker may eventually adopt a community's definition, but that doesn't always happen either. Look at the Rust users here. They hang desperately onto words like enum that do not match the community definition. But it doesn't really matter, does it? We remember that when they say enums they really mean sum types and move on with life.
A good speaker will define the words as he speaks (still relying on some baseline shared understanding of the most common words, of course; there is only so much time in the day...) so there is no room for confusion, but in absence of that it is expected that the listener will question any words that show an apparent disconnect in meaning, allowing the speaker to clear up what was meant, to ensure both parties can land on the same page.
Even more so when it's an author/reader relationship. The reader is free to interpret the book/article/etc. how they want, and if enough agree, it becomes the consensus.
Where audience understanding is important than you will definitely go out of your way to ensure that definitions are made abundantly clear and that the audience agrees that they understand.
But, in actual practice, most of the time the audience understanding really doesn't matter. Most people speak for the sake of themselves and themselves alone. If the audience doesn't get it, that's their problem. Like here, it means nothing to me if you can't understand what I'm writing.
But that doesn't mean the audience came from the same place. It is very possible, and often happens, that they heard/created an entirely different definition for the same word. The speaker cannot possibly use their definition before even knowing of it.
If vibe coding somehow becomes the method of programming, then code will become obsolete. Hear me out:
Why code when you can just ask the computer to do what you want and get the results. The coding part is abstracted deep in the background where no human needs venture.
When vibe coding dominates, It's not that people won’t know how to code anymore, it's that coding becomes irrelevant. The same way that there are people who still know how to ride horses, but it's irrelevant to transportation. When vibe coding reaches its peak, programming languages will evolve into something unrecognizable. Why do we need a human readable programming language when no human needs to read it? I picture a protocol agreed upon by two computers, never released to us humans.
Because then you won't know the design of the code or how it even works.
The hard part of coding isn't writing the code itself. It's the design of the code that takes skill, and if you leave that part completely up to AI, you are taking your life in your hands. Bad idea.
When the person building the application doesn't know or care, the application will still be deployed.
Resistance is futile.
We will adapt.
If you're writing code for production, even if you get an LLM to put together bits of it for you, that's programming. It's pretty much copy-and-paste-for-stackoverflow if StackOverflow had a massively larger library of snippets that almost always included the thing you needed at that exact moment.
Professional programmers still need to take responsibility for making sure the code they are producing actually works!
It's well past time for traditional "high level" programming languages to meet the same fate.
Natural language to formal language does not provide that. How the hell would I debug or operate a system by just looking at a prompt? I can't intuit which way the LLM generated anything. I will always have to be able to read the output.
AFAICT, the only people who say you can remove code are people who don't code. I never hear this from actual devs, even if they are bullish on AI.
SIMD optimization is already handled well by the current generation of models [1]. There will be no point in doing that by hand before too long. An exercise for antiquarians.
I never hear this from actual devs, even if they are bullish on AI.
You're hearing it from one now.
1: https://github.com/ggml-org/llama.cpp/pull/11453
LLMs have been so spectacularly useless the couple of times that I've tried to use them for programming, that I can't really wrap my head around what this must be.
However, for most cases I've tried, I get wildly incorrect and completely non-functional results. When they do "function", the code uses dangerously incorrect techniques and gives the wrong answer in ways you wouldn't notice unless you were familiar with the problem.
Maybe it's because I work in scientific computing, and there just aren't as many examples of our typical day to day problems out there, but I'm struggling to see how this is possible today...
I'd be concerned purchasing a book from a "programmer" who claims to teach people how to code without code. Kinda sounds like an "author" who publishes books without writing books.
Picture this- are tools like Devin "vibe coding"?
if we break down the mechanics of what interfaces it's looping through:
1)Chat 2)IDE 3)CLI 4)Dev console/Browser
and it's effective copy and pasting what it sees while trying to complete an objective it doesn't fully comprehend. Blissfully ignoring the ramifications of desired combinations as long as decent version control practices are being applied. iterating / adjusting prompts subtlety along the way to debug when getting stuck in a thought loop. changing your prompt from "fix it" to something with more "pizazz" as the key to breaking this cycle.
how is it any different than when I do all this manually?
Slog through this game of 4 square long enough and you can pretty much vibe anything together.
And apparently the original cliché as well.
Friend of mine suggested “apping”.
I ‘apped’ this in 2 hours vs I ‘vibe coded’ this in 2 hours.