High level languages like Python, PHP, and so on, ensure we do not have a lot to worry about when coding. We simply have to write our business logic in an efficient way. This is not the case in systems programming languages where the focus is on performance. The programmer is provided with access to the underlying hardware of the machine and has to write memory-safe and performant code.
Rust is a modern systems programming language which has many of the benefits of writing low level code, without many of the drawbacks.
Why Learn Rust?
Rust has grown increasingly popular in recent years, and was listed as the most loved programming language in the 2020 StackOverflow Developer Survey. You should be looking to Rust if you are interested in a fun new language that probably has a bit more flexibility than what you are currently used to.
It is a growing language and community, so there are plenty of opportunities to collaborate with people and create content, libraries, frameworks, and so on.
Microsoft also recently joined the Rust Foundation and are interested in adopting the language in a number of ways, including rewriting parts of Windows. It is gaining a lot of traction, and could be used in many new systems in the near future.
Who Uses Rust Now?
You can find a full list of companies using Rust here. Some mentions which I found interesting are:
- Figma: Figma’s multiplayer syncing engine, which enables Figma users see changes made to documents in real-time is written in Rust.
- Dropbox: Dropbox used Rust to write Nucleus, their new sync engine, which powers the Dropbox folder on desktop computers.
- Discord: Discord uses Rust on both client side and server side. They saw major performance improvements by switching one of their services from Go to Rust. I found this particularly interesting as Go has a reputation as one of the faster languages. They claimed that with Rust they “were able to beat Go on every single performance metric”.
- Brave: Brave browser implemented its new ad-blocker in Rust, improving its performance by 69x. The old ad-blocker was implemented in “heavily optimised C++”.
Useful Resources
One of my favourite things about Rust is the fact that the team put together a lot of great resources to learn the language in various domains. The Rust Book is a really good starting point. You can also find useful links here.
Some other interesting resources I found:
- What is Rust and why is it so popular?
- Rust: A Language for the Next 40 Years - Carol Nichols
- Writing an OS in Rust
- rust-lang/rustlings
Conclusion
Using Rust has been interesting so far for me. I have been introduced to concepts that I either did not know at all, or knew very little about. It is probably the easiest programming language I have picked up. I especially love the fact that the resources to learn it are so well curated by the core team.
Will you be trying Rust out? Have you already? Let’s chat. Maybe we’ll become Rustaceans1.
1Many Rust programmers call themselves “Rustaceans,” a play on the word “Crustacean”. ↩
Cover Photo by takis politis