# Aleksey Kladov - Why Not Rust (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article2.74d541386bbf.png) ## Metadata **Cover**:: https://readwise-assets.s3.amazonaws.com/static/images/article2.74d541386bbf.png **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Aleksey Kladov]] **Full Title**:: Why Not Rust? **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **Document Tags**:: #from/pocket **URL**:: [matklad.github.io](https://matklad.github.io//2020/09/20/why-not-rust.html) **Host**:: [[matklad.github.io]] **Highlighted**:: [[2020-09-23]] **Created**:: [[2022-09-26]] ## Highlights - Ada is memory safe if you don’t use dynamic memory - Somewhat amusingly, Rust’s default ABI (which is not stable, to make it as efficient as possible) is sometimes worse than that of C: [#26494](https://github.com/rust-lang/rust/issues/26494#issuecomment-619506345). - The biggest one is probably the fact that Rust’s move semantics is based on values (`memcpy` at the machine code level). - Finally, while in theory Rust code should be more efficient due to the significantly richer aliasing information, enabling aliasing-related optimizations triggers LLVM bugs and miscompilations: [#54878](https://github.com/rust-lang/rust/issues/54878). - *First*, there’s no definition of Rust memory model, so it is impossible to formally check if a given unsafe block is valid or not. - `unsafe` blocks are not, in fact, modular