Rust
Jun 26, 2021I tried to learn Rust a few years ago. I got really excited by many of the features, made it past ownership, then lost steam once I got to lifetimes. I think it was a combination of the cognitive load of learning Rust and that time was being taken from personal projects. Working on personal projects keeps me sane.
A few things have spurred me to try again:
- I need to spend less time chasing new things and be more disciplined with focus investment. If it takes a while to learn Rust and it takes time from personal projects, then so be it. Treat learning Rust as a personal project.
- I can’t get past modeling data using algebraic data types. They are so concise and elegant–it’s hard to go back to something else.
- I keep dropping other modern ML-inspired languages for one reason or another. I don’t want to have to learn a host language in order to learn the one I really want to use. I want the features of the language to be pervasive, not just relegated to the language itself and wrapper libraries.
- I’ve been reading some opinions on how wasteful we are being with computing resources and how we’re passing it on to the user and the environment.
- I’m trying to switch from the mindset of “you must know all of this” to “fit the ideas into your brain while reading but don’t worry if you forget some of them”.
I started learning Rust again with O’Reilly’s Programming Rust. I’m over 60% of the way through (past most of the “hard” parts) and it feels like I’ll finish. After the book, I’m going to go through Rustlings, then start using it on personal projects.
I don’t know if I’ll continue to use Rust after learning it, but I want to give it a solid try.
[Update: 12/26/2021]
I spent about 6 months working in Rust. I rewrote a couple web projects I had previously written in Go using a few different frameworks. Although memory use by the Rust versions was better, performance was a wash. The Rust code bases required significantly more knowledge than the Go ones. The way some library authors go crazy with types gives off some of the Java Architecture Astronaut vibes I try to avoid. I think for the goofy web personal projects I do, Rust is not a good fit. The surface area of Rust is large–I’m just not interested in having to hold all that stuff in my head. It was a really fun challenge to learn though, and I’m glad I went through it.
#rust