Type hints, ownership and Rust: how much should the compiler check?
October 5, 2026 · 15 min read
Guido van Rossum explains why Python added optional type hints, Chris Lattner builds types and ownership into Mojo, the FFmpeg maintainers debate Rust, and ThePrimeagen compares languages from daily use. The discussion helps programmers decide how much safety to trade for speed of writing.
The rules, numbers and steps worth keeping in front of you.
- No single right amount of checking; choose per project.
- Van Rossum: Python hints are optional and not checked when the code runs.
- A separate static type checker reads code without running it.
- Van Rossum: enforcing annotations would break programs that are too dynamic.
- Van Rossum recommends TypeScript over plain JavaScript.
- Lattner: in Mojo, typing is optional, but a declared type is enforced and used for speed.
- Lattner: ownership transfers values instead of copying and prevents silent sharing bugs.
- Kunhya: Rust in FFmpeg must meet the same testing bar; no compiler matches hand assembly.
- Kempf: Rust is excellent for new projects; be wary of rewrites.
- Kempf: inline assembly breaks the surrounding language's safety model.
- ThePrimeagen: try a dynamic language, a strict one, and later a functional one.
- ThePrimeagen: asserts on impossible states catch bugs compilers miss.
- Checking matters more as code and teams grow; do not force it on beginners.
- Few measurements of bugs prevented are offered; the firm numbers concern speed.
This is the short form. The full insight has every expert's reasoning, their own words and the sources.