Superintelligence CouncilСовет гения · sim.im

DHH · 2025-07-12 · transcript-lex-474-2025 · source ↗

Programming - early days

`0:03:05`

who had a Commodore 64. No one else had a computer, so we were all the kids just getting over there and we were all playing "Yie Ar Kung-Fu." I dunno if you've ever seen that game. It was one of the original fighting games. It's really a great game. And I was playing that for the first time at five years old. And we were like seven kids sitting up in this one kid's bedroom, all taking our turn to play the game. And I just found that unbelievably interesting. And I begged and I begged and I begged my dad, could I get a computer? And he finally comes home. He's like, "I got your computer." I was like, yes, my own Commodore 64. And he pulls out this black green and blue keyboard. That's an Amstrad 464. I was like, dad, what's this? — The disappointment. — This is not a Commodore 64. But it was a computer. So I got my first computer at essentially six years old that Amstrad 464. And of course, the first thing I wanted to do,

`0:04:06`

I wanted to play video games. And I think the computer, which he by the way, had traded for TV and a stereo recorder or something like that. Came with like two games. One was this "Frogger" game where you had to escape from underground. It was actually kind of dark. Like this frog, you're trying to get it out from underground. And I was pretty bad at it. And I only had those two games. And then I wanted more games. And one way to get more games when you're a kid who don't have a lot of money, I can't just buy a bunch of games, is to type them in yourself. Back in '84, '85, magazines would literally print source code at the back of their magazines and you could just sit and type it in. So I tried to do that and it would take like two hours to print this game into the Amstrad. And of course I'd make some spelling mistake along the way and something wouldn't work, and the whole thing. I wasn't that good of English. I was born in Denmark. So I was really trying to get into it because I wanted all these games. I didn't have the money to buy 'em.

`0:05:07`

And I tried quite hard for quite a while to get into it, but it just never clicked. And then I discovered the magic of piracy. And after that I kind of basically just took some time off from learning to program because, well, now suddenly I had access to all sorts of games. So that was the first attempt, like around six, seven years old. And what's funny is I remember these fragments. I remember not understanding the purpose of a variable. If there's a thing and you sign something, why would you assign another thing to it? So for some reason, I understand it constants. A constants made sense to me, but variables didn't. Then maybe I'm 11 to 12, I've gotten into the Amiga at this point. The Amiga, by the way, still perhaps my favorite computer of all time. I mean, this is one of those things where you're like, people get older and they're like, "Oh, the music from the '80s amazing." To me, even as someone who loves computers, who loved new computers, the Amiga was this magical machine that was made by the same company

`0:06:08`

that produced the Commodore 64. And I got the Amiga 500, I think in '87. — Look at this sexy thing that is a sexy machine right there. — This is from an age by the way, where computing wasn't global in the same sense. The different territories had different computers that were popular. The Amiga was really popular in Europe, but it wasn't very popular at all in the US as far as I understand it. It wasn't popular in Japan. There were just different machines. The Apple II was a big thing in the US. I'd never even heard of Apple in the '80s in Copenhagen. But the Amiga 500 was the machine that brought me to want to try it again. And you know what's funny? The reason I wanted to try it again was I remembered the first time to learn. And then there was this programming language that was literally called EasyAMOS, like the easy version of AMOS. I'm like, if it's EasyAMOS, how hard can it be? I gotta be able to figure this out. And this time I tried harder. I got into conditionals,

`0:07:08`

I got into loops, I got into all these things and I still, I couldn't do it. And on the second attempt, I really got to the point of like, maybe I'm not smart enough, maybe programming is just not for me, maybe it's too much math. Like I like math in this sort of superficial way. I don't like it in the deep way. That's some on my perhaps slightly nerdier friends did who I had tremendous respect for. Like I'm not that person. I'm not the math geek who's gonna figure it all out. So after that attempt with EasyAMOS and failing to even get, I don't even think I completed one even very basic game. I thought the program's just not for me. I'm gonna have to do something else. I still love computers. I still love video games. I actually at that time had already begun making friends with people who knew how to program, who weren't even programming EasyAMOS. They were programming freaking assembler. And I would sit down and just go, how do you, the moves and the memories and the copies, how do you even do this?

`0:08:09`

I don't even understand how you go from this to Amiga demos, for example. That was the big thing with the Amiga. It had this wonderful demo scene in Europe. It's this really interesting period of time in Amiga's history where you had all these programmers spread out mostly all over Europe who would compete on graphic competitions, where you could probably bring one of these different... — On that thing? — On this thing, they would make these little almost like music videos, combining some midi music, combining some cool graphics. And they would do all of it in like 4K, four kilobytes. That is not 4Ks of revolution, four kilobytes of memory. And I just thought that was such a cool scene. This was obviously pre-internet. It was even pre BBS, bulletin board systems to some extent. It was you swap your demo software with someone else by sending them a disk in the mail, like the 3.5s.

`0:09:11`

And I was enamored with that whole scene. I was enamored with what they were able to create and I just wanted to be a part of it even though I kind of didn't have any skills to contribute. And that's how I got into running BBSs. I didn't learn programming then and I wouldn't learn programming until much later, until I was almost 20 years old. The bulletin board systems existed in this funny space where they were partly a service to the demo scenes allowing all these demo groups to distribute their amazing demos. And then it was also a place to trade piracy software, pirated software. And I ended up starting one of those when I was 14 years old in my tiny little bedroom in Copenhagen. I had my, at that point, Amiga 4000. I had three telephone lines coming in into my tiny room. — [Lex] Nice. — Which is funny because again, I'm 14 years old. By the time I was in Sterling, my third line, you had to get someone from the telephone company to come do it. I get this guy and he's just looking around like, "What is this?

`0:10:11`

Why the hell is a 14-year-old having three phone lines into their tiny little bedroom? What's going on here? Why are all these modems blinking red and black and making funny sounds?" — Did your parents know? — They did and they didn't. They knew I had the phone lines. They knew I had the computer. I don't think they really understood that I was trading pirated software that was both illegal, and whatever else was going on. — Oh, we should probably say that in Europe, maybe you can comment on this in, especially in Eastern Europe, but Europe in general, piracy I think was more acceptable than it was in the United States. I don't know there maybe it's just my upbringing. — Even that conversation wasn't present. I never spoke to anyone growing up in Denmark. — The piracy is wrong. — Had any moral qualms whatsoever about piracy. It was just completely accepted that you're a kid, you won a lot of games. You don't have a lot of money, what do you do? You trade. — Yeah. — Some people would occasionally buy a game. I mean, I once bought a second Master System,

`0:11:14`

and I bought one game. Because that was what I could afford. I got "After Burner II." I dunno if you've ever played that game. It's pretty bad implementation on the second Master System, but it was like 600 crowners. And I was making money at that time doing newspaper delivery. I had to do that for a month to afford one game. I like video games way too much to wait a month just to get one game. So piracy was just the way you did it. And that was how I got into running this bulletin board system, being part of the demo scene, being part of the piracy scene to some extent. And then also at some point realizing, oh, you can actually also make money on this and this can fund buying more phone lines and buying more modems and buying more Amigas. Oh yeah, that was one of the demo parties. These were amazing things. — What am I looking at? — Isn't that amazing? — Look at all those CRT monitors. — All these CRT monitors. Again, when I was 14, I don't understand fully why my parents allowed this.

`0:12:15`

But I traveled from Copenhagen, the capital of Denmark to Aarhus this tiny little town in Jutland on the train with a bunch of dudes who were like late teens and their 20s. I'm 14 years old. I'm lugging my 14-inch CRT monitor with my computer in the back to go to the party. That was what it was called. That was the biggest demo scene party at that time. And it was exactly as you see in that picture, thousands of people just lining up with their computers, programming demos all day long, and trading these things back and forth. — That's kind of awesome. Not gonna lie. It's a little ridiculous. — It's totally awesome. And I miss it in ways where the internet has connected people in some ways, but the connection you get from sitting right next to someone else who has their own CRT monitor who's lugged at halfway around the country to get there is truly special. Because it was also just this burst of creativity. You're constantly running around. You're constantly surrounded by people who are really good at what they could do. They're really good at programming computers.

`0:13:15`

It's infectious. It was part of that pang I felt then going like, oh man, why can't I figure this out? I mean, why can't I even figure out EasyAMOS? It's kind of frustrating. — But on your third attempt, you a little more successful? — So third attempt is when I start getting it, this is when I start helping out, let's say build things for the internet. So around '95, I think it is, or '96, I discovered the internet. Actually, in ninth grade. That was my first experience. I went to some university in Denmark. And in ninth grade, we had this excursion and they sat us down in front of a computer and the computer had Netscape Navigator, the first version, or maybe it was even the precursor to that. And they had a text editor. And us kids just got like, "Hey, built something on the internet." And it was just HTML and the first thing you do is like, oh, I can make the text blink by just putting in this tag and saving it. That moment, that was actually when I reawaken the urge

`0:14:20`

to wanna learn the program because I got a positive experience. All the other experiences I had with programming was I'd spend hours typing something in, I'd click Run and it wouldn't work. And I'd get an error message that made no sense to me as a kid, either at six or seven or at 12. And here I am sitting in front of a computer connected to the internet and I'm making text blink. I'm making it larger. I'm turning it into an h1 or an h2. And these guys out here, "We just did it for like an hour and a half." And suddenly I go, oh, I can make things for the internet that someone in Germany can be able to access and see, and I don't have to ask anyone for permission. This is super cool. I gotta do more of this. So I got into to the internet. I got into working with HTML and I still had all these friends from these demo parties. And I started working with them on creating gaming websites. I'd rather buy the video games, I'd review him. This was another good way of getting new video games was to walk down to some store and say like, hey, I'm a journalist. I'm like this 15-year-old kid.

`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