top | item 44630816

(no title)

chambers | 7 months ago

You should look up the term "zero cost abstractions".

It's the organizing principle of the second generation of Rust's leadership[1]. Formally, it means "zero runtime cost"[2], but the now-former maintainers operated as though it meant Rust could get rid of all cost. The belief was that they can have a language that's faster than C, safer than Ada, more ergonomic than Java, more memory safe than Go, by either making the compiler do more work, or working more on the compiler. In practice, I think this belief caused massive complexity in the compiler, trade-off dishonesty in the community, and bad evangelism in domains unsuited for memory safety (e.g. games programming)

[1] Graydon, the original author of Rust, was against this idea.

[2] The term originates from C++ as "zero overhead" which was smaller in scope, and not a governing principle of the C++ language.

discuss

order