CHOP Instead Of Vibe Coding
I've been experimenting with AI-assisted development where I provide direction, review, and decisions while the LLM writes the code. However, describing this as 'vibe coding' did not sit well with me.
Yesterday I came across this article that mentions 'CHOP':
CHOP, Chat-oriented programming, is a term I learned from Steve Yegge and I use it to mean LLM-assisted programming that is almost the polar opposite of "Vibe Coding". By CHOP, roughly speaking, I mean pair-programming with Claude while not giving it an inch, using a fairly formal process with rules [...].
To compare, here is the original definition of “Vibe Coding”:
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works. — Andrej Karpathy (@karpathy), Twitter, 2025-02-02
CHOP better captures the more disciplined, intentional approach I've been taking, so until I find a better definition I am going with it.