“You were the chosen one! You were supposed to democratize programming, not to join the programmers telling me to learn to code!”
But Cursor just took an important step toward artificial general intelligence — someone gave it dumb orders and it told them to go away. Git gud, scrub.
Ah, that primo British wit. Good for taking the sting out of the unending nightmare that is modern life.
Excellent work as usual, David.
do you even code?
not if i can avoid it
the amateur computer toucher: i love code! have you ever heard of docker? it really makes my node.js portable!
Principal Computer Touching Engineer: fuck computers, fuck programming, and fuck you
As an app fondler with 20 years of experience, it’s also “fuck my life”
I love programming. I truly, genuinely loathe it. I like the way it hurts my sanity. I can’t stop thinking about programming. I want to program more. I don’t just think about programming, I’m always thinking about thinking about programming. I love my computer. I hate computers. I love the concept of computers, but I hate my computer specifically. I hate your computer too. I love programming, but I hate programs. Some programs are cool I guess. The only thing I hate more than my programs are your programs. All of your programs. I hate procedural programming. I want to like functional programming, but the best I can do is liking liking functional programming. I hate having a crush on types. I want to do everything with types. I cannot do shit with types. I don’t know whether to blame myself or types. I love it. I love procedural programming. You just write out things and the computer does the things. It sucks. The ISO C standard is the best homage to Franz Kafka ever written. The tickets cost a hundred bucks to some Swiss people to even read it. C++ jumped the shark, too unbelievable. I love Rust. No, my code doesn’t fucking compile because I spent eighteen hours trying something fun instead of just making things work. I love it. Can’t have bugs if you don’t even have an executable. I love Lisp. If I sit on my hand until it goes numb, it feels like someone else is writing it. I hate shell scripts, except when I write them. I am the only person who writes Bourne shell good. I love bugs. I am fine and my mental health is fine. I do not hate myself very much. I do not hate myself as much as I hate programming. Most of all I hate people who do a lot of programming and do not hate programming. Programming is great. It should be illegal.
this is the first time i hear of vibe coding and what the fuck, why is shoving AI-generated code into your project called vibe coding
Reading this I had a small epiphany about something I’ve been observing for a really long time wrt. programmers. That term sounds like something I would use to describe a specific category inexperienced or experienced-but-terrible programmers before the entire LLM disaster. Like this very specific kind of coding based on not giving a fuck, where you haphazardly copy snippets from the internet, write no tests, debug based on divine guidance.
You might know the term “philosophical zombie”. Its usefulness in philosophy aside, I’d call this kind of coder a “programming zombie”. For a programmer, the process of coding is a quite complex internal experience. We build large models inside our minds to capture the context in which we need to perform the task, often spanning multiple abstraction levels. When you’re working on a small project you have a quite detailed model of e.g. the current file you’re working in, but also awareness of the other parts of the projects and how they connect to the file you’re in right now. Everyone has this to some extent after some experience with coding. People who are really good at coding sometimes seem from the outside like fucking magicians, because you’ll come to them with some small issue in one part of the codebase and in milliseconds they’ll be able to utter shit like “ah, this is because of how module X interacts with this syscall in Y.cpp when you’re running an old version of the kernel”, and they’ll be right. In their head they have this intricate deep understanding of what they’re working on and can pull connections and explenations seemingly out of thin air.
A programming zombie doesn’t have any of that. The moment something doesn’t work and their usual MO of copying or changing random things until it works doesn’t produce effects, they’re completely stuck. It’s like they don’t have a way to reason about their program, they don’t have a mental model of what they’re actually doing. This is what you get when you treat code as just some words on the screen. And it’s something I’ve always struggled to understand and explain, because I don’t actually know how to teach someone to have that process. It seems like an intrinsic part of the job, when I tell you “I’m programming” I don’t mean “I’m writing some funny characters on the screen”, I mean I’m designing a program, the same way an electrician isn’t just connecting random wires and hoping for the best but rather has some larger electrical network in mind.
In the before times, so far ago I wasn’t even born yet, it was probably quite hard to be a programming zombie because everything about programming was so much harder. I mean, a punchcard had to be a great filter against people without mental models of code. People on interviews started using FizzBuzz to try and weed out people who can write code, but cannot code, and it kinda worked for some time. But now? We’re in the prime time of a vibecoder. You don’t have to know fucking anything now. If you’re a Blockchain Programmer then your code probably doesn’t even run anywhere. It’s all just vibes, man. We’re pretending to be engineers by pretending to write code that we pretend we tested, and then our customers pretend to use it. In actuality it’s code shat out by an LLM deployed to a site visited only by search engine bots, advertising an app with no real use, in service of a number going up somewhere. And what’s that number based on? Yup, just vibes.
Now I don’t know if this is true because I’m only definitionally a writer in that I write a lot of prose, but the point of “this is what happens when you treat code as just text” seems to generalize to an eerie extent when we’re talking about LLMs. Cause that’s what they do, right? Writing is not just writing words, when you write an article you have a mental model of something more abstract that you’re trying to bring to life with the words. The structure and flow are something that originates from your inner understanding of what you’re trying to convey, it’s just expressed by the language. As in, language is just a tool we use to convey abstract concepts, the same way programming languages are just a tool we use to express abstract functionality. The way LLMs are advertised and so often used puts this on its head, the text is the primary product and a goal in and of itself. Why does LLM poetry suck? Because it’s just words. There’s no poem there, it’s just words arranged in a way to resemble a poem. It’s the same reason their prosaic writing sucks. The same reason its code sucks. Only if you perceive poetry as flowery words, prose as long passages of text, and programs as keywords on a screen, can you be fooled into thinking there’s any substance behind the LLM vibes.
Anyway, I kinda lost myself in my harrowing philosophical nightmare that is our tragic reality, in conclusion ye, just throwing random AI garbage into your code and seeing if it sticks is very much what I’d call vibecoding.
I really appreciate this take. It was able to capture something I couldn’t properly articulate. I am learning programming as a hobby and I am actively trying to avoid LLMs and other things I see as “cheating” because I want to actually learn how to program, not just copy and paste AI slop. Plus, the exercise of having that mental model of what you’re doing is what appeals to me since it’s forcing me to think in ways that I am not accustomed to thinking. That’s the appeal for me. Not the act of mashing a keyboard and hoping something usable comes out.
It’s worse than that. It’s avoiding ALL coding and ONLY using code an LLM generated from instructions you gave it, AND ALSO not reviewing that code just assuming that it works. Merely shoving AI generated code into a project is not enough to be bogovibes.
there’s got to be a better name. bogocoding?
previously known as “coding by whacking the keyboard with dildos”
excellent method, compatible with all worst practices and suitable for posting on hackernews as well
enterprise dildomancy
figure 1: the loved one whacks a keyboard with a dildo, thus reproducing Tumblr
“coded by dildo” coined in this post and I have a whole tag here going back nearly 10 years
Rubber dick debugging
Rubber dick? I hardly know’er!
I have an answer for you but you might learning what it is
First usable advice from an “AI”.