This is a series of posts about my brief tour through the Rust programming language. I plan for this series to be between 5 to 10 entries describing my initial thoughts about the language and ecosystem. It is not intend to be a thorough review or critique of the language. It is also not meant to be a tutorial of the language. There are already many good resources out there, including: The Book – Rust programming language.
This is the first set of blogs that I am writing and you maybe asking, why start with Rust? During AWS re:Invent 2018, Amazon announced the open sourcing of Firecracker, a microVM that is also the foundation of AWS Lambda. I decided to go take a look, and what I found surprised me. Digging through the source code on github I saw that the code was written in Rust.
With so much of the container world being built on Go, it surprised me that a relatively little used language, in my mind, like Rust would be used on such an important part of AWS, but then I realized that Google created Go, and that likely was part the reason, in addition to rationale in the announcement. So, with Amazon choosing to put some weight behind Rust, I decided I should finally take a deeper look.
I have know about Rust for years, but I basically put it in the same bucket as D and later Go. It looked like a successor to C and C++ as a systems programming language and I was not convinced that any of these would gain a ton of traction, although Go in the container world is proving the error of my thinking. I used to love C and its simplicity compared with C++, even with the verbosity of doing anything substantial, but hey I used to like assembly too.
This series of posts documents my initial journey into Rust and my initial thoughts on it. If you are new to Rust, hopefully it may inspire you to take a look at the language. If you are a Rustean, please have patience with me and send me corrections for anything that I get wrong to @rushtonality.