Today 7% of Programmers are using Rust Programming Language and is considered as the most satisfactory Programming Language by its users. Rust offers the expressiveness of Python and the speed of C Programming Language without any memory issues.
Today, Rust is backed by Google, Microsoft, Amazon Web Services (AWS), Huawei and Mozilla. It is the most promising language and you should learn it to take advantage of rising opportunities in future.
The Timeline of Rust Programming Language is as follows:
|2006||Started development of Rust||Graydon Hoare|
|2010||Annoucement of Rust||Mozilla|
|2015||First release of Rust||Mozilla|
|2018||Used in Firecracker tool||Amazon|
|2019||Used in npm Registry||NPM|
|2020||Used in Sync Engine||Dropbox|
|2020||Switched backend to Rust||Discord|
|2020||Setback: Laid off Rust team||Mozilla|
|2021||Formed Rust Foundation||5 companies|
|2021||Used in Fuchsia OS / Android|
There are three factors in the rise of Rust:
- Its focus on speed and safety
- Widespread comparison with GoLang while it was at its peak
- Early adoption by major companies like Amazon and NPM
What makes Rust unique?
Rust Programming Language has focus on three key points:
- Control of Memory Layout
Rust aims to be the language of choice for highly concurrent and highly safe systems.
Rust aims to be memory safe so it does not support Null pointers, Dangling Pointers and Race condition in data access which have proven to cause memory related issues historically in production systems. Moreover, Rust does not have a garbage collector (which was first introducted in Java). It used "Resource Acquisition is Initialization" rule along with reference counting by borrow checker which is optional step in Rust.
Type System in Rust is inspired by Haskell Programming Language.
Historically, it has been a challenge for Programming Language to call C++ functions for within their code. Rust supports Foreign Function Interface (FFI) and has a library CXX which allows this with practically no overhead.
Some tools that are frequently used with Rust are:
- Cargo: Build system and Package Manager of Rust
- Rustfmt: Code formatter of Rust
- Clippy: Linting tool for Rust
- RLS: Language Server Protocal providing Text editors for Rust
Performance wise the goal of Rust is to be as efficient as C++ Programming Language but also provide code safety. Rust uses LLVM which is used in C++ as well and is strong supported by community. So, Rust gets direct advantages from optimizations in LLVM. Therefore, performance of Rust is good and is expected to closely match C++ as it develops.
Use case of Rust
Companies using Rust are:
- Firecracker tool by Amazon
- Updating npm Registry to Rust by NPM
- Updated Sync Engine from Go to Rust by Dropbox
- Switched backend to Rust by Discord
- Some components in Fuchsia OS / Android in Rust by Google
- Operating Systems built in Rust: Theseus and Redox
- exa: An alternative to the popular command "ls"
- Other companies using Rust in experiments like Microsoft
- Tor is conducting experiments to port its code to Rust. It is originally written in C Programming Language.
With this, you must have a strong idea of why Rust is on the rise and if there is any new Programming Language, you should learn then, it should be Rust.