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

Search

topic: transcript-lex-474-2025 ✕

361 passages, newest first · 12 ms

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:41:03`

That's the one to get. It's just a mess. A beautiful mess in some ways, a mess that still runs the vast majority of projects to this day. Email is the lowest common denominator. That's wonderful. But we had dropped the ball a couple of times in serious ways with customers and we thought…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:42:04`

We know PHP. Can you build it in PHP?" I had free reigns. And at that time I'd been reading IEEE magazine and a couple of other magazines back from the early 2000s where Dave Thomas and Martin Fowler had been writing about programming patterns and how to write better code. And these two guys, in…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:43:04`

and I realized at that time, Ruby might not be known by anyone, but it's actually been around for a long time. Matz, the Japanese creator of Ruby had started working on Ruby back in '93. Before the internet was even a thing. And here I am in 2003, 10 years later, picking up what seems…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:44:04`

And that was the first thing that struck me is where are the damn semicolons? And I started thinking, actually, why do we have semicolons in programming? They're to tell the interpreter that there's a new line of instructions, but I don't need 'em as a human. How? Oh, someone is looking out for…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:45:07`

like a perfect tailored glove by someone I'd never met. Like, how is this even possible? — We should say maybe like paint the picture of the certain qualities that Ruby has, maybe even compared to PHP. We should also say that there's a ridiculous thing that I'm used to that I forget about that…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:46:10`

Now you're iterating over the code in that bracket five times, that's it. — [Lex] Okay, that's nice. — That's not just nice, that's exceptional. There's literally no other programming language that I know of that has managed to boil away the line noise that almost every other programming language would inject into…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:47:11`

Python, to me, I hope I don't offend people too much. I've said this before, it's ugly. And it's ugly in its space, because it's full of superfluous instructions that are necessary for legacy reasons of when Guido made Python back in '87 that are still here in 2025. And my brain…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:48:12`

offends my sensibilities to the core. Here you have the most important method that all new objects or classes have to implement. And it is one of the most aesthetically offensive ways of typing initialized that I've ever seen anywhere. And you guys are okay with this? — Hey, you're making me, you know, where you…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:49:14`

because Ruby is written for humans and humans are messy creatures. They like things in just the right way. I can't fully explain why the __init___ make me repulse, but it does. And when I look at the Ruby alternative, it's really instructive. So it's def, same part, D-E-F, space, initialize, parentheses…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:50:14`

init, short of type, it's only five characters. Initialize is a lot longer, but it looks a lot better and you don't type it very often. So you should look at something pretty. If you don't have to do it all the time, it's okay that it's long. Those kinds of aesthetic…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:51:15`

Ruby boils almost all of it away. We start with the if. Okay, that's the same. No parenthesis necessary because there's no ambiguity for the human to distinguish that the next part is just a single statement. So you do if, space, user, dot, admin, question mark. No open brackets, no parentheses, no nothing. Next…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:52:15`

That's a very human phrase, but it gets better. You can turn this around. You can have your statement you want to execute before the conditional. You can do user.upgrade. Say you're calling an upgrade method on a user. Space, if, space, user.admin?. We do the thing if the thing is true. Instead…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:53:17`

That to me is an encapsulation of the incredible beauty that Ruby affords the programmer through ambiguity that is only to serve the human reader and writer. All of these statements we've just discussed, they're the same for the computer. It'll combine down to the same C code. That'll compile down to the…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:54:17`

And what they feel, what that question mark for the if statement, what does that feel like for the user? — That's what Matz thought about because he started his entire mission off a different premise than almost every programming language designer that I'd heard, at least articulate the vision. That his number one goal was…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:55:20`

But his view of humanity is rather dark. His view of humanity was programmers at the average are stupid creatures. They cannot be trusted, which sophisticated programming languages because they're gonna shoot their foot off or their handoff. And that would be kind of inconvenient to the regional development office of a mid-tier insurance company…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:56:23`

He believes in humanity. He believes in the unlimited capacity of programmers to learn and become better. So much so that he's willing to put the stranger at his own level. This is the second part I truly appreciate about Ruby. Ruby allows you to extend base classes. You know how we just talked about 5…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:57:26`

and other things like that. So you can say cache expires in 5.days. And you're gonna get whatever's five times — That's nice. — 24 times 60 times 60 is, or whatever the math is, right? Very humanly readable. In a novel programming language, you would type out the seconds and then you would have…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:58:27`

I know there are other program languages that allow things with macros and so forth. But none do it in a way like Ruby does it. None does it with an articulated vision of humanity, a trust in humanity like Matz does, that is the opposite end of the spectrum of Java. — Yeah, I mean for my…

DHH2025-07-12transcript-lex-474-2025source ↗context

`0:59:28`

— It's the good feeling that come out of a concept compressed to its pure essence. There's nothing you can take away from that statement that's superfluous. — But see, I also wanna push back a little bit 'cause I also a program named Perl a bunch. Just be cool. So like it's not all…

DHH2025-07-12transcript-lex-474-2025source ↗context

`1:00:29`

Ruby has been worked on for over 30 years, and essentially the first draft is 90% of what we're still using. There was almost a sense of divine inspiration possible in wherever Matz was writing that initial version of Ruby that transcended time to such a degree that no one has still even begun to reach…

More