DHH · 2025-07-12 · transcript-lex-474-2025 · source ↗
Vibe coding
`1:50:30`
so I'm leaning into the meme a little bit, but the vibe coding, meaning you generate code, you have this idea of a thing you want to create, you generate the code and then you fix it with both natural language to the prompts and manually. You learn enough to manually fix it. So that's the learning process. How you fix code that's generated, or you write code from scratch and have the LMS kind of tab, tab, tab, tab, add extra code. Like which part do you lean on? I think to be safe, you should find the beauty and the artistry and the skill in both right from scratch. So like there should be some percent of your time just writing from scratch and some percent vibe coding. — There should be more of the time writing from scratch. If you are interested in learning how to program, unfortunately you're not gonna get fit by watching fitness videos. You're not gonna learn how to play the guitar by watching YouTube guitar videos. You have to actually play yourself.
`1:51:31`
You have to do the sit ups. Programming, understanding, learning almost anything requires you to do. Humans are not built to absorb information in a way that transforms into skills by just watching others from afar. Now ironically, it seems AI is actually quite good at that, but humans are not. If you wanna learn how to become a competent programmer, you have to program. It's really not that difficult to understand. Now I understand the temptation. And the temptation is there because vibe coding can produce things. Perhaps in this moment, especially in a new domain you're not familiar with, with tools you don't know perfectly well, that's better than what you could do. Or that you would take much longer to get at, but you're not gonna learn anything. You're gonna learn in this superficial way that feels like learning, but is completely empty calories. And secondly, if you can just vibe code it, you're not a programmer. Then anyone could do it, which may be wonderful. That's essentially what happened with the Access database.
`1:52:31`
That's what happened with Excel. It took the capacity of accountants to become software developers because the tools became so accessible to them that they could build a model for how the business was gonna do next week. That required a programmer prior to Excel. Now it didn't because they could do it themselves by coding enables non-programmers to explore their ideas in a way that I find absolutely wonderful. But it doesn't make your a programmer. — I agree with you, but I wanna allow for room for both of us to be wrong. For example, there could be, vibe coding could actually be a skill. That if you train it, and by vibe coding, let's include the step of correction, the iterative correction. It's possible if you get really good at that, that you're outperforming the people that run from scratch, that you can come up with truly innovative things, especially at this moment in history. While the LLMs are a little bit too dumb
`1:53:33`
to create super novel things and a complete product, but they're starting to creep close to that. So if you are investing time now into becoming a really good vibe coder, maybe this is the right thing to do as if it's indeed a skill, we kind of meme about vibe coding, just like sitting back and it's in the name. But if you treat it seriously, a competitive vibe coder and get good at riding the wave of AI and get good at the skill of editing code versus writing code from scratch, it's possible that you can actually get farther in the long term. Maybe editing is a fundamentally different task than writing from scratch if you take that seriously as a skill that you develop. To me that's an open question. I just think, I personally, now you're on another level, but just me, just personally, I'm not as good at editing the code that I didn't write.
`1:54:35`
— No one is. — That's one different. — No one is of this generation, but maybe that's a skill. Maybe if you get on the same page as the AI, 'cause there's a consistency to the AI. It's like it really is a pair programmer with a consistent style and structure and so on. Plus with your own prompting, you can control the kind of wrote code you write. I mean, it could generally be a skill like. — That's the dream of the prompt engineer. I think it's complete pipe dream. I don't think editors exist that aren't good at writing. I've written a number of books. I've had a number of professional editors. Not all of them wrote their own great books, but all of them were great writers in some regard. You cannot give someone pointers if you don't know how to do it. It's very difficult for an editor to be able to spot what's wrong with a problem if you that it couldn't make the solution themselves. Editing, in my opinion, is the reward, the capacity to be a good editor
`1:55:36`
is the reward you get from being a good doer. You have to be a doer first. Now that's not the same as saying that vibe coding, prompt engineering won't be able to produce fully formed amazing systems even shortly. I think that's entirely possible, but then there's no skill left, which maybe is the greatest payoff at all. Wasn't that the whole promise of AI anyway, that it was just all natural language that even my clumsy way of formulating a question could result in a beautiful, succinct answer. That actually to me is a much more appealing vision that there's gonna be these special prompt engineering wizards who know how to tickle the AI just write to produce what they want. The beauty of AI is to think that someone who doesn't know the first thing about how AI actually works is able to formulate their idea and their aspirations for what they want, and the AI could somehow take that messy clump of ideas and produce something that someone wants. That's actually what programming has always been.
`1:56:37`
There's very often been people who didn't know how to program, who wanted programs, who then hired programmers, who gave them messy descriptions of what they wanted and then when the programmers delivered that back said, "Oh no, actually that's not what I meant. I want something else." AI may be able to provide that cycle. If that happens to the fullest extent of it, yeah, there's not gonna be as many programmers around, right? But hopefully presumably someone still, at least for the foreseeable future, have to understand whether what the AI is producing actually works or not. — As a interesting case study, maybe a thought experiment. If I wanted to vibe code Basecamp or HEY, and some of the products you've built, like what would be the bottleneck? Where would I fail along the way? — What I've seen when I've been trying to do this, trying to use vibe coding to build something real is you actually failed really early. The vibe coding is able to build a veneer
`1:57:39`
at the current present moment of something that looks like it works, right? But it's flawed in all sorts of ways. There are the obvious ways, the meme ways that it's leaking all your API keys, it's storing your password in plain text. I think that's ultimately solvable. Like it's gonna figure that out or at least it's gonna get better at that, but its capacity to get lost in its own labyrinth is very great right now. It code something and then you wanna change something and it becomes a game of whack-a-mole. Real quick, Pieter Levels who've been doing this wonderful flight simulator was talking to that where at a certain scale, the thing just keeps biting its own tail. You wanna fix something and it breaks five other things, which I think is actually uniquely human because that's how most bad programmers are. At the certain level of complexity with the domain, they can't fix one thing without breaking three other things. So in that way I'm actually in some way it's almost a positive signal for that the AI is gonna figure this out because it's done an extremely human trajectory right now.
`1:58:39`
The kind of mistakes it's making are the kind of mistakes the junior programmers make all the time. — Yeah, can we zoom out and look at the vision, the manifesto, the doctrine of Rails? What are some of the things that make a programming language a framework great? Especially for web development. So we talked about happiness. The underlying objective of Ruby. What else? — So you're looking at the nine points I wrote out in I think 2012. And first, before we dive into 'em, I wanna say the reason I wrote it down is that if you want a community to endure, you have to record its values and you have to record its practices. If you don't, eventually you're gonna get enough new people come in who have their own ideas of where this thing should go. And if we don't have a a guiding light helping us to make decisions, we're gonna start flailing. We're gonna start actually falling apart. I think this is one of the key reasons that institutions of all kinds start falling apart.