Make invalid states unrepresentable ( geeklaunch.io )
Some programming languages have really powerful type systems, so we're really leaving money on the table if we don't take full advantage of them. In the case of Rust, I believe the type system has been shown to even be Turing-complete! (That's not an injunction to implement everything at compile-time.)
I know, for myself, coming from a JavaScript background, strict type systems seemed... restrictive, at first, but I've gradually grown to love and even depend on the strong guarantees provided by languages like Rust.
This is a presentation I recently gave at a work conference in article form. I've also recorded a YouTube video version if you prefer that format.
![](https://kbin.cafe/media/cache/resolve/entry_thumb/2a/81/2a8153048e75b4998d5c1b8e10d3c49b26f3911f96b8de4fd0d9bae9d742b41c.png)