Rust is a relatively new programming language initially from Mozilla. It is a multipurpose programming language with a focus on safety, especially safe concurrency, supporting both functional and imperative paradigms, syntactically similar to C++, but its designers intend it to provide memory safety and security without sacrificing performance.
Besides the language itself, I really like the tooling around it and the great documentation. The Rust community is very active and helpful. Since I work with Rust, I realized how crappy the Java ecosystem is. The language itself with Null and Exceptions is already a mess. But the tooling is also a mess. I recently had to do some work in Gradle config files and realized that there is no proper build tool for Java. It is a mess.
C and C++ are responsible for many security issues in the world. I don’t see any reason to use them anymore. Rust is a great alternative.
Many people say or think that Rust is only for systems programming. But this is not true. You can use Rust for many different things. I use it for embedded programming, web development and for CLI tools. It is a great language for many different use cases. It is well-supported by embedded hardware vendors like Espressif, but also by Cloud providers like AWS. Writing Lambdas with the help of cargo-lambda is just wonderful. Microsoft is adding first class support for Rust in all their internal tooling. You can now write Linux Kernel code in Rust, it is officially supported.
In some areas there is room for improvement, of course. Native GUI programming is not really possible at the moment. There are frameworks in development, but they are not ready for advanced GUIs yet. At least, if you don’t want to write your own widgets for many situations where you find proper implementations in other frameworks. The library situation is also not perfect. There are many crates, but some of them are not maintained anymore. There is a lot of movement. But all this will improve over time. Rust is still a young language.
I see a bright future for Rust. It is a great language and I really enjoy working with it.
If you want to learn Rust, I can recommend some great resources. First of all, the official Rust book. It is a great introduction to the language. It is well-written and easy to understand. The Rustlings project or Rust by Example are also great resources to learn Rust. In case you want to have some arguments why Rust is a great language, you can watch no boilerplate on YouTube. If you prefer a paper book, I can recommend Programming Rust.
Learning Rust is not easy. It is a complex language. But it is worth it. Especially if you are coming from a language like Java or C++ you have to get used to Rusts concepts. The ownership model is a bit tricky in the beginning. But after a while you will understand it, and you will love it. It is a great concept. Parallel programming gets much easier by this, because it is always clear who owns a resource.