In Praise of Rust: Part 1 — Introduction


June 21, 2020   ·   4 min read  ·   Edit on GitHub 

Tagged as:

When I first started this post, I thought I would just go over how I encountered the Rust programming language and then discuss what it was about it that made it stand out from the crowd, but the post got very long very fast, so I’ve decided to split it up into multiple posts, and I’ll leave this one just discussing my introduction to the language and some very high-level ways in which it differs from the crowd.


Not only do I love writing and designing software, both for a living and as a hobby, but I also enjoy learning new things within the field of software development. While it’s decidedly fun to learn new technologies that operate within a language you already know, such as learning ReactJS or AngularJS for use with JavaScript, there’s nothing I enjoy more than discovering that there exists a whole other programming language that I don’t know yet, but that clearly is worth knowing, and then spending the time and effort it takes learning it.

At no point was this love of learning a new language more apparent to me than when I discovered Rust . The backstory of how I ended up discovering and wanting to learn Rust is a bit long and complicated1, but long story short—I really needed something enjoyable to take my mind off my circumstances when I had those few moments to myself and I decided to use that time to learn a new programming language. I settled on Rust mostly based on the fact that it had been in the top spot for most loved technology four years in a row on StackOverflow’s Developer Survey (five years now in 2020), which indicated pretty clearly to me that there was something to be said for this language.

In the past I’ve bragged both to people I know and to colleagues (and even in job interviews) that I learn new technologies very rapidly. Rust is the first thing that has ever put a dent in my confidence for rapid learning. The best part, though? I needed that challenge! I really enjoyed the difficulties I faced. I think I’ve become a much better software developer in general from the lessons I learned learning Rust, regardless of which language I’d use going forward.

Rust has bucked the trend of most modern programming languages, and does not support class-based programming . Having worked in class-based programming languages more or less without pause for over a decade, it was quite the learning curve getting used to designing and writing code without the ubiquitous subclassing I was used to. Rust really gets you to appreciate composition over inheritance, if you weren’t already appreciating it from having used something like ReactJS.

If you are a fellow Rustacean2, I’m sure you know exactly what I’m going to bring up as the primary challenge I faced early on. Did you say “fighting with the borrow checker?” Congratulations! 🎉🎈 I plan on going into details about the borrow checker in a future installment of this series.


  1. Back in the summer of 2018, my wife and I had our firstborn child. While I don’t feel like sharing intricate details about him or his predicament(s), suffice it to say that he basically did not sleep for more than 5–15 minutes at a time for his first 6 months of life, and for the next year after that, he would sleep better, but still wake up between 15-30 times every night. Severe sleep deprevation and an undue care burden over a period of nearly a year basically broke me, and I sank into a deep depression, from which I’ve still only scantly recovered. Maybe I’ll write more about this experience some day.
  2. The word users of Rust have chosen as their autonym.

© 2020 Alexander Krivács Schrøder. CC-BY-SA Some Rights Reserved.  

Let others know about this article:

Comments


You can also leave comments  directly on GitHub, should you not want to authorize the utteranc.es API to post on your behalf.