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

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

Programming setup

`5:05:03`

I like the Magic Keyboard. I like the single monitor. Apple makes an awesome 6K 32-inch XDR screen that I still haven't found anyone who've beaten that I still use, even though I switched away from Apple computers. I still use their monitor because it's just fantastic. But I've always been a single screen kind of guy. I do like a big screen, but I don't want multiple screens. I've never found that that really works with my perception. I wanna be able to just focus on a single thing. I don't want all of it all over the place. And I've always used multiple virtual desktops and being able to switch back and forth between those things. But the setup I have today is Linux. I switched to a little over a year ago after I finally got fed up with Apple enough that I couldn't do that anymore. And then I use this low profile mechanical keyboard called the Lofree Flow84, which is just the most glorious

`5:06:05`

sounding keyboard I've ever heard. I know there are a lot of connoisseurs of mechanical keyboards that'll probably contest me on this. This is too thy or too clicky or too clocky or whatever. But for me, the Lofree Flow84 is just a delight that I did not even know existed. Which is so funny because I mean, I've been programming for a long time. Mechanical keyboards have been a thing for a long time. And the keyboard, when you look at it like this, it just kind of, it looks plain, it doesn't look extravagant. But the tactile sensation you get out of pushing those keys, the talky sound that you hear when the keys hit the board. It's just sublime. And I'm kicking myself that I was in this Mac bubble for so long that I wasn't even in the market to find this. I knew mechanical keyboards existed, but to be blunt, I thought it was a bit of a nerd thing that only real nerds that were much more nerdy

`5:07:05`

than me would ever care about. And then I got out of the Apple bubble and suddenly I had to find everything again. I had to find a new mouse, I had to find a new keyboard, I had to find everything. And I thought like, all right, let me give mechanical keyboards a try. And I gave quite a few of them a try. The Keychron is one of the big brands in that I didn't like that at all. I tried a bunch of other keyboards and then I finally found this keyboard and I just went like, angels are singing. Where have you been my whole life? We spent as programmers so much of our time interacting with those keys. It really kind of matters in a way I didn't fully appreciate. I used to defend the Apple Magic Keyboard, like hey, it's great. It's actually a great keyboard. And I think for what it is, this ultra-low profile, ultra low travel is actually a really nice keyboard. But once you've tried a longer travel mechanical keyboard, there's no going back. — You do have to remember in many ways, both on the software side and the hardware side, that you do spend a lot of hour behind the computer. It's worth... — It's worth investing in. — And also worth exploring

`5:08:05`

until you find the thing where the angels starts singing, whatever. — That's exactly right. And I actually do regret that a little bit, especially with this damn keyboard. I mean, I could have been listening to these beautiful thocky keys for years and years, but sometimes you have to get really off before you open your eyes and see that something else exists. I feel the same way about Linux. So I've been using Linux on the server since late '90s, probably. We ran servers on Linux back then. I never seriously considered it as a desktop option. I never ran Linux before, directly myself. I always thought, you know what? I wanna focus on programming. I don't have time for all these configuration files and all this setup bullshit and whatnot. And Apple is close enough. It's built on Unix underpinnings. Why do I need to bother with Linux? And again, it was one of those things. I needed to try new things and try something else to realize that there is other things other than Apple.

`5:09:08`

And again, it's not 'cause I hate Apple. I think they still make good computers. I think a lot of the software is still also pretty okay. But I have come to realize that as a web developer, Linux is just better. Linux is just better. It's closer to what I deploy on. The tooling is actually phenomenal. And if you spend a bit of time setting it up, you can record a reproducible environment that I've now done with this Omakub concept or project that I've done, that I can set up a new Linux machine in less than 30 minutes. And it's perfect. It's not pretty good. It's not like I still need to spend two hours on. It's perfect because you can code all aspects of the development environment into this. And I didn't know. I didn't even know, to be fair, that Linux could look as good as it can. If you look at a stock Ubuntu or Fedora boot, I mean, not that it's ugly, but I'd pick the Mac any day of the week. You look at Omakub, I mean, I'm biased here, of course, 'cause I built it with my own sensibilities.

`5:10:09`

But I look at that and go like, this is better. This is beautiful. And then you look at some of those true Linux rising setups where people go nuts with everything and you go, oh yeah, I remember when computers used to be fun in this way, when there was this individuality and this setup. And it wasn't just all planned the sameness. And I think that's the flip side sometimes of something like Apple, where they have really strong opinions and they have really good opinions, they have very good taste. And it looks very nice and it also looks totally the same. And Linux has far more variety and far more texture and flavor. Sometimes also annoyances and bugs and whatever. But I run Linux now. It's Ubuntu-based with the Omakub stuff on top. The low free keyboard. I use a Logitech, what's it called? The MX 3 mouse, which I love how it feels in my hand. I don't love how it looks. I actually was a Magic Mouse stan for the longest time. I thought it was genius that Apple integrated the track pad into a mouse,

`5:11:12`

and I used that. And I always thought it was ridiculous that people would slag it just because you had to charge it by flipping it over. 'Cause the battery would last for three months and then you'd charge it for half an hour. I thought like, that's a perfect compatibility with my sensibilities. I don't mind giving up a little inconvenience if something is beautiful, and that Magic Mouse is beautiful. But it wasn't gonna work on Linux. So I found something else. The S3 is nice, but I sometimes do wish like the Magic Mouse. That's pretty good. — Yeah, Linux is really great for customizing everything, for tiling, for macros, for all of that. And I also do the same in Windows with AutoHotKey or just customize the whole thing to your preferences. — If you're a developer, you should learn how to control your environment with the keyboard. It's faster, it's more fluid. I think one of those silly things I've come to truly appreciate about my Omakub setup is that I can, in whatever time it takes to refresh the screen, probably five milliseconds switch from one virtual desktop to another.

`5:12:14`

Even on Windows, you can't get it that smooth. You can get close, you can't get it that smooth. On macOS, for whatever reason, Apple insists on having this infuriating animation when you switch between virtual desktops, which makes it just that you don't want to. You don't wanna run full screen apps because it's too cumbersome to switch between the virtual desktops. The kind of immediacy that you can get from a wonderful Linux setup in that regard, it's just next level. — Yeah, and it seems like a subtle thing, but you know, difference in milliseconds and latency between switching the virtual desktops, for example. I don't know, it changes... — It changes how you use the computer. It really does. — Similar thing with VR, right? If there's some kind of latency or like it just completely takes you all out of it. — And it's funny, I actually had to watch, I think it was ThePrimeagen on YouTube when he was showing off his setup and I was seeing how quickly he was switching between those virtual desktops. And I'd always been using virtual desktops, but I didn't like switching too much

`5:13:15`

because just of that latency and it's like, oh, you can do that on Linux? Oh, that's pretty cool. So I run that, and then my editor of choice now is Neovim. — Oh good, all right. Well we're out of time. No, all right, you did for many, many years. You used, what is it? TextMate. — Yes, TextMate. — TextMate, yeah. — That was actually, that was the main blocker of moving away from Apple. Everything else I thought, do you know what? I can swing it. But TextMate was and is a wonderful editor. One, I helped birth into this world. The programmer Allan Odgaard is a good friend of mine, all the way back from the party days when we were lugging our computers around. And he was a big Mac guy. And in 2005, he was writing this editor and I helped him with the project management of kind of keeping him on track, keeping him focused on getting something released. Because I really wanted it for myself. And I thought, this was the last editor I thought I was never gonna switch. — Forgive me for not knowing,

`5:14:15`

but how featureful as this editor is this? — It's quite featureful, but it's a GUI-driven editor in some regards. It was really early on with ways of recording macros and having sort of sophisticated syntax highlighting. And it did a bunch of firsts and it was just a really pleasant editing experience. I think these days a lot of people would just use VS Code. VS Codes exist in the same universe as TextMate in some ways. And actually I think is compatible with the original TextMate bundles, the original TextMate format. So it really trailed a path there, but it also just didn't evolve. Now a lot of people saw a huge problem with that. They were like, "Oh, it needs to have more features. It needs to have all these things." I was like, I'm happy with this text editor. That hasn't changed at all. Basically when Allan stopped working on it for a decade or more. I don't need anything else. Because as our original discussion went, I don't want an IDE. I don't want the editor to write code for me.

`5:15:19`

I want to text editor. I want interact with characters directly. And Neovim allows me to do that in some ways that are even better than TextMate. And I love TextMate, but Vi as you know. Once you learn the commands and it sounds, I sometimes feel like Vi fans overplay how difficult it is to learn because it makes them perhaps seem kind of more awesome that they were able to do it. It's not that difficult. And it doesn't take that long, in my opinion, to learn just enough combo moves to get that high of holy shit, I could not do this in any other editor. — How long did it take you? And by the way, I don't know, I haven't yet. Oh, I know, intellectually. But just like with kids, I haven't gone in all the way in. I haven't used Vim. — You have a treat in mind. Well, I switched in about, I had three days when I switched here about a year ago. I had three days of cursing where I thought it was absolutely terrible and it was never gonna happen.

`5:16:20`

And I had three days of annoyance and already the next week I was like, this is sweet. I'm not going anywhere. But I also had a bit of a head start about 20 years ago in early 2000s. I tried Vim for like a summer and it didn't stick. I didn't for whatever reason love it at the time. But Neovim is really good. The key to Neovim is to realize that you don't have to build the whole editor yourself. There's a lot of Neovim stans are like, here's how to write the conflict from scratch. Over 17 episodes, that's gonna take you three weeks. Ah, I don't care that much. I love a great editor. I love to tailor it a little bit, but not that much. So you have to pair Neovim with this thing called LazyVim. Lazyvim.org is a distribution for Neovim that takes all the drudgery out of getting an amazing editor experience right out of the box. — Ridiculous question, we talked about a bunch of programming languages. You told us how much you love JavaScript. It's your second favorite programming language.

`5:17:22`

Would TypeScript be the third then? — TypeScript wouldn't even be in this universe. I hate TypeScript as much as I like JavaScript. — So what you hate, oh man, I'm not smart enough to understand the math of that. Okay, before I ask about other programming languages, if you can encapsulate your hatred of TypeScript into something that could be human interpretable, what would be the reasoning? — The JavaScript smells a lot like Ruby when it comes to some aspects of its metaprogramming. And TypeScript just complicates that to an infuriating degree when you're trying to write that kind of code. And even when you're trying to write the normal kind of code, none of the benefits that accrue to people who like it. Like auto completion is something I care about. I don't care about auto completion because I'm not using an IDE. Now I understand that that is part of what separates it and why. I don't see the benefits. I only see the costs. I see the extra typing.

`5:18:23`

I see the type gymnastics that you sometimes have to do and where a bunch of people give up and just do any instead, right? Like that they don't actually use the type system because it's just too frustrating to use. So I've ever only felt the frustration of TypeScript and the obfuscation of TypeScript in the code that gave me no payoff. Again, I understand that there is a payoff. I don't want the payoff. So for my situation, I'm not willing to make the trade and I'm not willing to take a language that underneath is as dynamic of a language as rubious and then turn it into this pretend statically type language. I find that just intellectually insulting. — Do you think it will and do you think it should die TypeScript? — I don't wanna take something away from people who enjoy it. So if you like TypeScript, all the most part of you. If you using TypeScript because you think that's what a professional program is supposed to do, here's my permission, you don't have to use TypeScript.

`5:19:24`

— There's something deeply enjoyable about a brilliant programmer such as yourself, DHH is talking shit. It's like one of my favorite things in life. What are the top three programming languages everyone should learn if you're talking to a beginner? — I would 100% start with Ruby. It is magic for beginners in terms of just understanding the core concepts of conditionals and loops and whatever, because it makes it so easy. Even if you're just making a shell program that's outputting to the terminal, getting hello-world running in Ruby is basically puts, P-U-T-S, space, start quotes, hello world, end quotes, you're done, right? There's no fluff. There's nothing to wrap it into. There are other languages that does that, especially in the Perl or Python would be rather similar. But Go would not, Java would not. There's a lot of other languages that have a lot more ceremony and boilerplate. Ruby has none of it. So it's a wonderful starting language.