Hacker News new | ask | show | jobs
by mech998877 15 days ago
I disagree with this, and I've been spending time thinking about it because some of my friends had a similar conversation.

The friction itself does not add value. The time spent thinking on the problem does. Friction should be minimized beyond the absolute bare minimum. Programming is a discipline where your workstation is already streamlined, and it is easy to forget where the friction is. Programming is done in a world of pure though, in a sense, so most of the friction already lives in your head, and it is difficult to distinguish effort wasted fighting friction from effort making real progress.

Consider the Wright brothers. They worked iteratively. When they wanted to design an airplane they moved from Ohio to a windy place with lots of loose sand (NC outer banks). Why? So that they could do test runs with good wind conditions (for an airplane that is barely able to fly this matters a lot) and crash with the least amount of damage. They rebuilt the airplane dozens and dozens of times and had a workshop tuned to their needs on location. They reduced friction wherever they could so that they got the most work done that they could with the least amount of distraction.

5 comments

>Programming is done in a world of pure though, in a sense, so most of the friction already lives in your head

It seems that way, but that's not actually true. A fully greased-up brain would produce just incoherent nonsense decoupled from reality, because it would lack all constraints that would allow it to judge the value of an idea (i.e. how possible and useful it would be to implement in the real world). The friction comes from fitting your ideas into the real world.

>They reduced friction wherever they could so that they got the most work done that they could with the least amount of distraction.

They reduced unnecessary friction. They could have eliminated all friction by imagining a teleporter machine that can send you anywhere instantly and that runs on the hopes of children. But they still wanted the friction of unsuccessful attempts so they could actually build a plane that worked.

Your concluding example doesn't make sense to me but I think that it's because we have different definitions for what friction means here. It's also kind of hard to define in context.

I would say that, within the Wright Brothers example, working with a battered, worn-out screwdriver is an example of friction (or, perhaps having to use a bit and brace instead of a power drill), but the act of building a new unsuccessful airplane iteration is not friction. Every build is asking physics for feedback on the design; every airplane build is just the same as running your code through the compiler. I wish I had a good word to distinguish this from friction. The closest thing I can imagine is how waste is defined in Lean Manufacturing, but keeping in mind that what you are manufacturing is Ideas and Software.

It sounds like you're not disagreeing with what the other person was saying then, you're just disagreeing with their application of the word "friction". I don't think it makes much sense to argue about the precise definition of a metaphor.
Didn't see this reply before adding my own. Yes, I think we're in agreement.
fair enough. I'm probably still in disagreement with the friends I mentioned earlier!
I liken it to dieting. If your only goal is to be certain weight, then learning how to cook, learning how to portion, learning to make a meal plan, learning about macro nutrients is all "friction" now that we have GLPs. And maybe using a meal prep service reduces some "unnecessary friction" but you still would have to learn a bunch of useful skills along the way.

Concretely, If your only goal is to produce "software" then learning about design, planning, project management, testing etc is all unnecessary friction when you can just ask an LLM to "make it so"

As someone who has been losing weight over the past year, the cost of GLP1s is and was a greater point of friction to me compared to just eating less garbage.
Nitpick, but this is misunderstanding GLPs (I'm on them). If you don't change your diet and your habits, yeah, you'll temporarily lose weight but it'll come right back when you're off it AND you'll lose a lot of muscle. You kinda still need to do "the right things", it's not a magic cure all. (Of course, same thing can be said of AI).
A fair callout, though yes it was supposed to be a simplified analogy. I think you got it exactly right though that its temporary in the same that I'd argue the benefits of using AI are temporary
I definitely agree with your overall point, just wanted to correct that one thing.
GLP's don't make you lose muscle. Losing weight without exercising does.

You'll get the exact same muscle loss with a CICO calculation weight loss.

I think this is just my choice of wording, friction as a means of slowing down and thinking something through is useful. Friction isn't just a roadblock. For all the times you want to do something exotic, throw an hour or two at it and in the process realise it was a bad idea and a more elegant idea emerges. That, that's the kind of useful friction I mean.

But overall yes, time spent thinking is the thing that matters.

It's less "there should be more friction" and more "LLMs remove too much". Instant gratification is great if you're a consumer, awful if you're a creator.

> The friction itself does not add value

Exactly. I don't have to write binary machine code directly, every zero and one artisanally crafted by hand, to have thought deeply for years about a how to solve a problem.

In fact, choosing the right level of abstraction is essential to my ability to solve the problem.

For most problems, the friction of writing binary code by hand is the wrong level.

And we're discovering that many important problems can be solved faster and with greater quality than can be achieved by dogmatically hand-writing every line of source code just for the friction.

I think that friction of feedback and friction of construction are two different things. Having lots of tokens to build things doesn't mean you have more feedback. I'm a bun user I like it. I can't really comment from my use on what the Zig vs Rust rewrite means to me.