logoalt Hacker News

sophacles11/08/20243 repliesview on HN

> Rust is designed with the philosophy of zero-cost abstractions. (I don’t like the name, because the cost is never zero, but it is what it is.)

So when the generated asm is the same between the abstraction and the non-abstraction version, wheres the cost?


Replies

steveklabnik11/08/2024

The point is that different people have different understandings of "cost." You're correct that that kind of cost is what "zero cost abstractions" means, but there are other costs, like "how long did it take to write the code," that people think about.

samatman11/08/2024

Cognitive cost is the most important cost to minimize.

A Rust project's cognitive cost budget comes out of what's left over after the language is done spending. This is true of any language, but many language designers do not discount cognitive costs to zero, which, with the "zero cost abstraction" slogan, Rust explicitly does.

klodolph11/11/2024

> So when the generated asm is the same between the abstraction and the non-abstraction version, wheres the cost?

The generated asm isn’t the same.

There’s also a presupposition here that you know what the non-abstracted version would look like. If you don’t know what the non-abstracted version looks like, you can’t do a comparison.