So I’ve been using Rust for a bit over a year now, so I figure why not write a blog post reminiscing why I got myself into this mess.

    I was hanging out in one my friends Discord server’s, everyone was gaming but I was programming. As always, I’m on my high horse because I use Arch Linux (btw) and I was talking about how I love it because I get a little less abstraction around the working of my computer. Then one of my buddies hit me with a tough question:

If you hate abstraction, why is Python your favorite language? Isn’t that like one of the most abstract languages out there?

    He kinda got me with that one, I didn’t have a good retort, because he was right. Python is great, but its really high level. I learned it in college because I was really shitty at C++ and I needed some way to get my CS homework done. In the long run I think I made the right call doing that, but if I was going talk shit on people for using languages like JavaScript I probably needed to learn something that would give me something to satisfy my dipshit ego.

    So what were my options? I narrowed it down to 3 possibilities:

  1. C++
  2. Go
  3. Rust

    C++ should be an obvious pick for any systems programmer, but I had such an absolutely fucking horrible experience with it in college I suffered flashback any time I touched it. Also, while C++ has gotten better over the years, there’s just tons of old documentation that I would have to search through to find what is still relevant. Finally it lacked a lot of niceties of modern languages, like a strong package manager and consistent build system.

    Second up, was Go. In all honestly, I probably should have picked Go instead. It’s way easier, is super widely used across the industry, and is pretty easy to pick up (from what I hear). Unfortunately, being my dumbass self, I was feuding with Google at the time over their information privacy policies and took a vehement stance in opposition to anything they owned. Google and big tech’s privacy stance is a rat’s nest that I don’t really want to unpack right now (frankly because my opinions are pretty half baked), but I’ve since revised my stance on Google products.

    Finally there was Rust. I’d heard a decent amount about it, particularly about it’s notoriously high learning curb, but despite that it checked a lot of boxes for me.

  • It was pretty new
  • It had a good package manager
  • It was a manual memory managed language (unlike Go)
  • The community around it seemed strong

    With all that in mind, I set off on the long journey of learning it. It was pretty damn hard (and it still is at times), but I’m glad I did. The people workin’ on the language are inspiring, and I enjoy building things in it. I’ve since built few medium scale projects, threw a few commits at an open source project, done a bunch of fucking LeetCode problems, listened to every single Rustacean Station podcast, and devoured one book about it. I think I’ve become an even more opinionated developer than before, but those opinions I think have done well for my career and made me a better reviewer and designer.

    At some point I’ll have to do some more deep dives on specific Rust concept, but I really wanted to talk about how I ended up at this point in my programming journey.