In C and C++, there are well-recognized problems that programmers have to deal with. This includes difficulties in compilation, the high chance of memory leaks, the process of managing memory manually, and known segfaults. Rust’s job is to get around these shortcomings while increasing performance and security.
The first version of Rust appeared in 2010, and it immediately ranked third on the list of developers’ favorite languages on StackOverflow. In 2011, Rust topped the list and stayed there for several years. Let’s look at why it’s become such a popular language, and why there’s so much controversy.
What’s the idea behind Rust
The creator of the language liked the speed of C++ and the reliability of Haskell. He set out to combine both of these approaches in a single language, and within a few years, he had built the first version of Rust. Rust is positioned as a compilable high-level system multiparadigm language. Now let’s explain what that means.
A compiled language means that the finished program is a separate file that can be run on any computer with the desired operating system. You don’t need to install a development environment and a compiler to run it, just that the compiled version fits your computer.
Systemic is when programs are written in the language to run the system as a whole. These can be operating systems, drivers, and service utilities. Ordinary programs can also be written in Rust – from a calculator to a database management system. The system language allows you to write fast programs which take full advantage of the hardware.
Multi-paradigm means that the language combines several programming paradigms. In the case of Rust, it is OOP, procedural and functional programming. Moreover, OOP in Rust came from C++, and functional part came from Haskell. The programmer can choose which style he will write code in, or combine different approaches in different elements.
The main feature of Rust programs
Despite its C-like syntax, the main feature of Rust programs is taken from Haskell.
If a Rust program is compiled and doesn’t crash at run time, it will run until you stop it.
It means that Rust programs are almost as reliable as Haskell programs. Almost, because if the programmer uses an “unsafe” block that gives him direct memory access, in theory, this can sometimes lead to crashes. But even with these blocks Rust tries to cope with itself and crashes only in hopeless cases.
Strengths and weaknesses of the language
When a language combines several different approaches from other languages, it gets most of the advantages of each:
- High program speed;
- The ability to write OOP-style code: with classes and objects (but there are limitations);
- Stability in operation and compilation;
- The compiler itself offers options to fix bugs in the code;
- Cross-platform compiler;
- Multi-threading support;
- Support for “unsafe” blocks to work directly with memory;
- It is possible to insert code in C and C++.
The disadvantages are mainly related to the speed of language development. Since Rust is rapidly evolving, the code from the old version does not work in the newer version.
What is written in Rust?
Rust is suitable for developing operating systems, web servers, system monitoring programs, web-engines, and creating scalable parts of the frontend and backend. For example, here are the most famous projects where Rust has been the main programming language:
- Dropbox – the server-side, which is responsible for the synchronization;
- Coursera – most of the front and backend written in Rust;
- Mozilla – Firefox and distributed cache for the compiler);
- OpenDNS – a service for using public DNS services;
- Servo – a browser engine with multithreading;
- Twitter – uses Rust for the high-loaded part of the service.
Rust most often used in projects where you want stability and reliability under heavy load and overall program speed.