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

DHH · 2025-07-12 · source ↗ · whole document (17)

Future of programming

`1:28:06`

we can exchange as we are sitting here, it's very slow. Ruby has a much higher bandwidth of communication revealed conveys so much more concept per character than most other programming languages do. So when you are collaborating with AI, you want really high bandwidth. You want it to be able to produce programs with you, whether you're letting it write the code or not, that both of you can actually understand really quickly and that you could compress a grand concept, a grand system into far fewer parts that both of you can understand. Now, I actually love collaborating with AI too. I love chiseling my code and the way I use AI is in a separate window. I don't let it drive my code. I've tried that. I've tried the cursors and the wind surfaces and I don't enjoy that way of writing. And one of the reasons I don't enjoy that way of writing is I can literally feel competence

`1:29:09`

draining out of my fingers. Like that level of immediacy with the material disappears. And the where I felt this the most was I did this remix of Ubuntu called Omakub when I switched to Linux, and it's all written in Bash. I'd never written any serious amount of code in Bash before. So I was using AI to collaborate, to write a bunch of Bash with me, 'cause I needed all this. I knew what I wanted. I could express it in Ruby. But I thought it was an interesting challenge to filter through Bash because what I was doing was setting up a Linux machine. That's basically what Bash was designed for. It's a great constraint. But what I found myself doing was asking AI for the same way of expressing a conditional, for example, in Bash over and over again. That by not typing it, I wasn't learning it. I was using it, I was getting the expression I wanted, but I wasn't learning it. And I got a little scared. I got a little scared like, is this the end of learning?

`1:30:11`

Am I no longer learning if I'm not typing? And the way I, for me, recast that was, I don't wanna give up on the AI. It's such a better experience as a programmer to look up APIs, to get a second opinion on something, to do a draft. But I have to do the typing myself because you learn with your fingers. If you're learning how to play the guitar, you can watch as many YouTube videos as you want. You're not gonna learn the guitar. You have to put your fingers on the strings to actually learn the motions. And I think there is a parallel here to programming where programming has to be learned in part by the actual typing. — I'm just really, this is fascinating. Listen, part of my brain agrees with you. 100% part doesn't. I think AI should be in the loop of learning. Now current systems don't do that, but I think it's very possible for cursor to say, to basically force you to type certain things.

`1:31:12`

So like if you set the mode of learning, I don't want to be this sort of give up on AI. I think vibe coding is a skill. So for an experienced programmer it's too easy to dismiss vibe coding as a thing. — [DHH] I agree, I wouldn't dismiss it. — But I think you need to start building that skill and start to figure out how do you prevent the competency from slipping away from your fingers and brain. Like how do you develop that skill in parallel to the other skill? I don't know. I think it's a fascinating puzzle though. I know too many really strong programmers that just kind of avoid AI, 'cause it's currently a little too dumb. — Yes, it's a little too slow. It's actually my main problem. It's a little too dumb in some ways, but it's a little too slow in other ways. When I use Claude's code, the terminal version of a Claude, which is actually my preferred way of using it, I get too impatient.

`1:32:14`

It feels like I'm going back to a time where code had to compile and I had to go do something else. A boil some tea while the code is compiling. Well, I've been working in Ruby for 20 years. I don't have compiled weight in me anymore. So there's that aspect of it. But I think the more crucial aspect for me is I really care about the competence. And I've seen what happens to even great programmers the moment they put away the keyboard. Because even before AI, this would happen as soon as people would get promoted. Most great programmers who work in large businesses stop writing code on a daily basis because they simply have too many meetings to attend to. They have too many other things to do. And invariably they lose touch with programming. That doesn't mean they forget everything. But if you don't have your fingers in the sauce, source, you are going to lose touch with it. There's just no other way. I don't want that because I enjoy it too much. This is not just about outcomes.