Rust may just be one programming language out of so many, with wide applicability and the ambition of being as reliable as it is practical. But this relatively young language (the first version appeared in 2010) seems able to rely on a community of particularly active and enthusiastic users.
Gandi has also had the pleasure to host meetups #51 and #52 at our offices, the perfect occasion to get to know those who call themselves “rustaceans” and try to list the advantages of Rust in the current tech environment. We interviewed Guillaume Gomez, “Rustdoc team leader” as well as Aurélia and Axel, two Rust evangelists at Gandi and the architects of the perfectly executed Meetups at Gandi.
Rust, a language that learned from its predecessors
The main advantage of Rust is its relative youth and therefore its capacity to carefully avoid the pitfalls of its predecessors like C or C++, whether technically or organizationally. You might think Rust doesn’t have much experience, but it has, in any case, known how to exploit these older languages.
Rust as a technical response to the limits of previous languages
The genesis of Rust clearly shows the will of its creators to resolve a problem inherited from earlier languages: Graydon Hoare, creator of Rust, then employed by Mozilla, started to work on this project in 2006 to overcome certain difficulties.
“Rust was created based on an observation coming from the development of Firefox (even though it can be found in any large project written in C/C++): the management of memory is much too difficult,” explains Guillaume Gomez. “The majority of security failures in software come from that, and, despite all the tools we have available, this doesn’t seem to improve the situation.”
Imagining a language capable of guarding against these risks without costing runtime was thus an imperative.
“The concepts of ‘ownership’ and ‘lifespan’ and obviously ‘borrow checker’ enable you to prevent these errors before the program is done compiling,” added Guillaume Gomez.
A similar observation brought Axel to Rust in 2013, with this language becoming rapidly identified as the hope for a solution to the usual memory errors in C.
“It wasn’t stable and still changed frequently but it was just the future in my eyes.”
According to him, Rust was, at that time a good synthesis of the best that could be done integrating the notions that would be new for a system programmer but had already been theorized by researchers.
Besides this notion of “ownership,” in response to a particular problem with older languages, Rust is characterized by its use of concepts proved by other languages without integrating new notions, in a certain way, “standing on the shoulders of giants,” capable of synthesizing the successes and errors of the past. It’s also this aspect that made it, for a while, a potential successor to previous languages like C++ for example, in so much as a language can be “replaced.”
Rust as a model for participative development
One of the things that makes Rust stand out and the proof, once again, that this language has been able to learn from its distinguished elders: the mode in which Rust evolves (and so to a certain extent its governance) is through a process called Request for Comments, or RFC. It’s this last bit that makes it possible for anyone to propose changes and submit them to the community. The community then decides whether to implement it, changed or not, and communicate it out.
Rust found its audience
It’s probably these characteristics that helped with Rust’s wide spread, first among grizzled veteran developers, then progressively among beginners who more and more discovered the relative accessibility of the language.
Trying Rust means adopting it
That’s certainly one of the most notable phenomenons surrounding Rust: the affection its users have for it. It’s been several years now that Rust has ranked as the top language according to developers who have had to work with it, according to a survey conducted every year by Stack Overflow.
“I swore by only C++. But after a few months of use, it was impossible to go back,” Guillaume Gomez explains.
The reasons for the loyalty Rust inspires in its users are many: the documentation provided, the errors in the compiler which helps tremendously, a very well done tooling that enables you to easily manage dependencies and the fact that “when it compiles, it works,” which is particularly appreciated.
Getting started with Rust
While for a while, most Rust users came over from C and C++ for the technical reasons explained above, the community now seems to be bringing in more and more less experienced programmers, at least that’s what Guillaume Gomez has seen on the forums dedicated to it. Many who come out of curiosity are soon drawn in by the spirit of mutual support within the Rust community and some have been encouraged enough to turn to Rust as their primary language for pedagogical purposes: like C or C++, and in contrast with more “intuitive” languages like Python, Rust forces its developers to understand how the machine works, which provides a solid basis for learning about the fundamentals of computer programming.
However, Rust does have its weak points, and the difficulty of concepts like “ownership” and “borrowing” which are some of the unique aspects of Rust, can pose problems for beginners. Axel, who has experience teaching, suggests Rust as a second programming language, or as one to learn in parallel to one that’s more accessible.
An active community
Whether the cause or consequence of the great affection and growing interest in Rust, the development of an active community around Rust speaks to a general spirit of caring and camaraderie.
A diverse community
What most characterizes the community of “rustaceans,” and a testament to its buzz, is its propensity to specialize in different fields: “There are themed communities like ‘on boarding’, etc. At the heart of the compiler, even, you could say that there are several communities: those who work on the lower layers of the compiler, those who work on errors, those who work on the documentation, etc., says Guillaume Gomez. “What’s interesting, though, is that all these communities overlap and interact very frequently and in a true spirit of mutual support.”
An active French-speaking Rust community
Guillaume Gomez also specifies that the porousness of these communities is also present on a geographical and linguistic level. There are physical meet ups between Rust users at the local level in New York, Tokyo, and even as far afield as Iran. And within this global distribution of “rustaceans” France is doing quite well with regards to the meet ups in different cities, in particular in Nantes, Montpellier, and Paris. “The Rust Paris meetup is a good example. There are also many French developers who contribute directly to the language and some of them have some of the most popular crates in the Rust ecosystem. I think France has one of the largest Rust communities in the world.”
Mutual support and multiple resources
These communities are diverse in their areas of interest and their locations, but all of them, it seems, are guided by a particular mindset oriented towards mutual support and making resources available that make it possible for everyone to progress.
In 2019, Gandi had the pleasure of attending RustConf in Portland. We were impressed by the importance Rust gave to community in its conferences and the necessity to ensure that community remained a space that’s open to all identities, where people are friendly and ready to help.
The portal for getting started, finding documentation, or following news is on their website, particularly The Book, a comprehensive document on all the theoretical aspects and the syntax of Rust and Rustlings that gives you practice using Rust.
Rust, then, has everything, meeting the needs of veteran developers and enabling beginners to familiarize themselves with the finer points of programming with rich documentation and an involved and engaged community. What’s more, more and more Rust exceeds in the best metric of all: satisfaction among those who use it.
At Gandi, we’ve used Rust in production for 7 years now. each time that our servers answer DNS requests, for example, they use Rust.
So, can we count on you to come to the next Rust meetup, either hosted in our offices in Paris, or in a city near you?Tagged in conference