# Aleksey Kladov - Why Not Rust (Highlights)

## 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