DHH · 2025-07-12 · source ↗ · whole document (17)
Programming - early days
`0:15:20`
And they're looking at you, "You're a journalist?" Yeah, can I borrow some games? Because this was when games moved on to the PlayStation and these other things. You couldn't just as easily pirate, at least not at first. So I went down there, did all that, and that started the journey of the internet for me. It started working on these gaming websites, working with programmers, figuring out that I could do something, I could work on the HTML part. It's not really programming, but it kind of smells like it. You're talking to a computer. You're making it put text on the screen and you're communicating with someone halfway around the world. So that became my pathway back into programming. And then slowly I picked up more and more of it. First website I did with someone, one of these programs from the demo scene that was dynamic was ASP.NET. I wasn't even actually called.NET. That was what we started on. And then we moved on to PHP, and PHP was when I finally got it. When it finally clicked. When conditionals and loops and variables and all of that stuff started to make sense enough to me
`0:16:23`
that I thought I can do this. — So would it be fair to say that we wouldn't have DHH without PHP, and therefore you owe all of your success to PHP? — 100% that's true. And it's even better than that because as PHP to me didn't just give a start in terms of making my own web applications, it actually gave me a bar. In many ways, I think the pinnacle of developer, web developer ergonomics is late '90s PHP, you write this script, you FTP it to a server and instantly it's deployed. Instantly it's available. You change anything in that file and you reload. Boom, it's right there. There's no web servers, there's no setup. There's just an Apache that runs mod PHP. And it was essentially the easiest way to get a dynamic webpage up and going. And this is one of the things I've been chasing that high for basically the rest of my career. That it was so easy to make things for the internet
`0:17:24`
in the mid to late '90s. How did we lose the sensibilities that allowed us to not just work this way but get new people into the industry to give them that was success experiences that I had. Adding a freaking blink tag to an HTML page, FTPing a PHP page to an Apache web server without knowing really anything about anything, without knowing anything about frameworks, without knowing anything about setup. All of that stuff have really taken us to a place where it sometimes feels like we're barely better off. Like webpages aren't that different from what they were in the late '90s, early 2000s. They're still just forms. They still just write to databases. A lot of people, I think are very uncomfortable with the fact that they are essentially CRUD monkeys. They just make systems that create read, update or delete row in a database, and they have to compensate for that existential dread by overcomplicating things.
`0:18:25`
Now that's a bit of a character. There's more to it. And there's things you can learn from more sophisticated ways of thinking about this. But there's still an ideal here, which is why I was so happy you had Pieter Levels on, because he still basically works like this. And I look at that and go like, man, that's amazing. — Yeah, you're chasing that high. He's been high all along using PHP, jQuery and SQLite. — I think it's amazing because he's proving that this isn't just a nostalgic dream. He's actually doing it. He's running all these businesses. Now some of that is, as he would admit up first upfront, is that he's just one guy. And you could do different things when you just one guy. When you're working in a team, when I started working on the team, when I started working with Jason Fried on Basecamp, we at first didn't use version control together. I used version control for myself. And then I thought, do you know what? Designers, ah, they probably not smart enough to figure out CBS. And therefore I just like, no, no, no, you just FTP it up.
`0:19:27`
You just FTP it. I knew they knew how to do FTP. And then after the third time I had overridden their changes. I was like, goddammit. I gotta teach Jason CBS to not do that again. But I think there's still way more truth to the fact that we can work the way we did in the '90s, work the way Pieter works today, even in the team context. And that we've been far too willing to hand over far too much of our developer ergonomics to the merchants of complexity. — And you've been chasing that with Rails 8. So how do you bring all the cool features of a modern framework and make it no build, make it as easy to create something and to ship it as it was in the '90s with just PHP? It's very difficult for me to beat the Pieter Levels approach. It's so easy to just ship some PHP. — And it should be. Why should it be harder than that? Our computers today are almost infinitely faster