4 ms·
Also in Rust, you have combinations of existing and upcoming language features that make certain conceptually simple designs either outright impossible to imple
by legerdemain 4y ago
Also in Rust, you have combinations of existing and upcoming language features that make certain conceptually simple designs either outright impossible to implement, or only possible to implement a subset of due to certain barely documented compiler quirks, or impossible to determine whether it is actually possible to implement them without sinking hours of time into dead-end prototyping attempts.
Like, not "Rust doesn't do this," but "there's a 50% chance that Rust can do this, but it might turn out to be impossible after all, and absolutely no one can tell which is which, because the language is just barely not expressive enough, or the compiler doesn't analyze this particular case, and might not until both the borrow checker and the type system receive complete rewrites."
And this, in turn, kind of explains why the Rust standard library and especially the Rust compiler are swimming not just in unsafe code blocks, but code that uses features so unstable and private that you can't even enable them with flags on nightly builds.
[0] https://github.com/rust-lang/rust/pull/96709#issuecomment-1118275010 https://github.com/rust-lang/rust/pull/96709#issuecomment-11...
[1] https://sabrinajewson.org/blog/the-better-alternative-to-lifetime-gats https://sabrinajewson.org/blog/the-better-alternative-to-lif...