Rust's option and result types, algebraic data types, and strong type system allow moving discipline from developers to the language itself. Dynamic languages place the burden of maintainability on team discipline, making long-term code quality harder to guarantee. Rust's compiler and tooling enforce correctness and quality, producing reliable production behavior regardless of who wrote the code. This enforcement creates developer confidence and permits more experimental or reckless approaches to writing code while the compiler elevates code to a high standard. The emotional effect is a sense of fearlessness driven by language features and tooling that prioritize safety and maintainability.
When I started off learning Rust, I was reading the Rust book, the official book, and it really resonated with me when they started speaking about option types, and result types, algebraic data types, and all those things. It occurred to me at that time, or it was the first time it clicked, that you could move this burden of discipline from yourself to the language.
Previously, I wrote a lot of code in dynamic programming languages, and that required you to have quite a lot of discipline within your team, specifically, in order to ensure that your code stays maintainable and is easy to keep over a long period of time. With Rust, the compiler and the language really enforce this level of quality on you. You knew that your production code was well-behaved no matter who wrote it.
Rust promotes a sense of fearlessness, and you can approach your code with some recklessness and work with the compiler to bring it up to a certain standard and quality, whereas opposed to a lot of other languages where you have to be a lot more meticulous with your code in order to ensure that it works really well.
Collection
[
|
...
]