3 ms·
> 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 ge
by sophacles 2y ago
> 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?
- steveklabnik 2y agoThe 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.
- samatman 2y agoCognitive 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.
- klodolph 2y ago> 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.