
Author | Rust Official Blog
Translator | Sambodhi
Editor | Zhao Yuying
As 2020 comes to a close, we are greeted with the annual Rust survey analysis! This survey was conducted in the second half of September 2020 and lasted for two weeks. Thanks to everyone who participated, especially those who helped translate non-English responses. Without further ado, let’s get to the point!
Stop Praising Rust, It’s Too Difficult to Learn
This survey included 14 language versions and received a record 8,323 responses. In the survey, 83.0% of respondents indicated that they use Rust (a historic high), while 7% reported that they had used Rust in the past but no longer do so.
When asked why they stopped using Rust, the largest group (35%) said they simply hadn’t learned it yet (possibly due to lack of time or because it is too difficult to learn), followed by companies not using Rust (34%), and some (19%) said switching to Rust would be “slower” than their current language.
Rust is Great, Strong Stability
Although Rust has always had strong stability guarantees, its stability often goes beyond just ensuring that user code compiled by new versions of the compiler does not crash. The main focus of Rust in 2020 was to clean up and stabilize existing features and plans. Although this work is not yet complete, respondents have already noticed an overall improvement in Rust’s stability.
First, we must commend the rust-analyzer and IntelliJ Rust plugin projects, both of which have a satisfied user base. Nearly three-quarters of respondents noted that they have seen some improvements in their IDEs, with rust-analyzer and IntelliJ users particularly satisfied; 47% of rust-analyzer users reported “significant improvements,” while 40% of IntelliJ users said the same.
In addition to improvements in IDE experience, the number of users relying on nightly compilers has been decreasing, down to 28% from 30.5% last year. Only 8.7% of respondents reported that they exclusively use nightly compilers. When asked why they use nightly, the primary reason is to use the Rocket web framework, which has announced it will use the stable version of Rust in the next release. The second most common reason for using nightly is const generics, but as the minimum version of const generics reaches stability, we should see a decrease in reliance on nightly for this feature.

It is worth noting that most users of nightly do so out of habit, as “nightly is stable enough.” When asked what often breaks people’s code, the most common response so far has been the introduction of new warnings in the codebase, which can break builds (this is not part of Rust’s stability guarantees, although Rust’s design ensures that adding new warnings will never break dependencies). Since we rely on nightly testing to catch regressions, this is a very good sign: nightly is stable enough and allows for ongoing changes. Kudos to the Rust infrastructure, compiler, and libs teams for doing an excellent job in ensuring that the contents of the nightly compiler are quite stable!
However, Rust Needs Improvement
While the usage of Rust seems to be growing at a healthy pace, the results of this survey clearly indicate that there is still much work to be done to make Rust a tool that fits many people’s workflows.
Top Priority: Improve Learnability
When asked how to improve Rust’s adoption rate, many mentioned making Rust easier to learn; 15.8% of respondents indicated that they would use Rust more if it were “less scary, easier to learn, or less complex.” Additionally, when directly asked how to improve Rust’s adoption, the largest feedback category was documentation and training.
When we asked respondents to rate their expertise in Rust, a notable peak appeared at 7 (out of 10). It is hard to say how significant this is across different languages, but few are willing to claim they have complete expertise, which seems noteworthy. However, compared to last year, the Rust community seems to have made significant progress in language expertise.

We also inquired about the difficulty of specific topics. According to the survey results, the most difficult topic to learn is lifecycle management, with 61.4% of respondents believing that using lifetimes is either tricky or very difficult.

It seems that having C++ knowledge does help; among respondents with some C++ experience, 20.2% indicated that lifetimes are “very difficult,” while among those without C++ knowledge, 22.2% found the topic “very difficult.” Overall, knowledge of systems programming (defined as having some experience with C and C++) tends to make Rust users more confident: those with systems programming experience rated their Rust expertise at 5.5 (out of 10), while those with experience in statically typed garbage-collected languages (like Java or C#) rated themselves at 4.9 (out of 10). Those with only experience in dynamically typed languages like Ruby or JavaScript rated themselves at 4.8 (out of 10).
Unsurprisingly, the more frequently people use Rust, the more they feel like experts in the language. Among those who use Rust daily, 56.3% rated their expertise at 7 or above (out of 10), while among those who use Rust monthly, this number is 22%.

C++ Interop
Interestingly, C++ Interop is the most popular language for better interoperability with Rust, followed by C and Python in second and third place, respectively. Improved C++ Interop is frequently mentioned as it can be used to enhance Rust’s specific use in the workplace. In fact, for users dealing with large codebases (100,000 lines or more), C++ Interop and compilation time are the most commonly cited methods to improve the Rust experience.

Improving Compilation Time
For the Rust community and the Rust team, an important topic is improving compilation time. Progress has already been made, with 50.5% of respondents indicating that they believe compilation time has improved. This improvement is particularly noticeable among respondents with large codebases (10,000 lines of code or more), where 62.6% reported improvements, and only 2.9% indicated that their compilation time has worsened. Improving compilation time is likely to be a major effort in 2021, so stay tuned!
Increasing Library Support
Overall, respondents seem satisfied with the increasing library support in the Rust ecosystem, with 65.9% indicating they have seen at least some improvements, and only 4.9% reporting no improvements. When asked which type of library support is most lacking, GUI programming was the overwhelming answer, with only 26.9% of respondents believing this area has improved over the past year.
Other areas needing improvement include a mature asynchronous programming story, more libraries for specific tasks not yet covered by the crates.io ecosystem, and more “blessed” libraries for common tasks.
A Thriving Community
There are many ways to improve the Rust community, but two methods are particularly popular. First, improving the state of the Rust community to allow those who do not want or cannot communicate in English to participate. In terms of services, no particular language seems to be lacking; Russian, Mandarin, Japanese, Portuguese, Spanish, and French are all common.
Additionally, many indicated that having large corporate sponsors in the Rust community would make it easier for them to justify using Rust at work.
Another interesting finding is that, so far, Europe seems to be the most favored location for hosting Rust conferences, with over 14% of respondents across Europe (Western, Eastern, Northern, Southern, and Central Europe) expressing interest in attending conferences in Europe, with the highest proportion in Western Europe (26.3% of respondents). The only other region with a similar situation is the United States, where 21.6% of respondents expressed interest in attending conferences held in the U.S.
The Future of Rust
As a language for production, Rust continues to make progress, with about 40% of respondents engaged in software development indicating that they use Rust in their daily work. Additionally, nearly half of respondents said their employers plan to hire Rust developers in the next year.
Among those using Rust, the most significant change seems to be among students, with a larger proportion of respondents indicating they would not use Rust at work because they are students or software enthusiasts and do not need to work in software (about 15% this year, compared to about 11% last year).
Furthermore, the use of Rust in respondents’ workplaces seems to be increasing, with 44% indicating that the amount of Rust code in their workplaces has reached or exceeded 10,000 lines, compared to 34% last year.
Overall, respondents are not only positive about the progress Rust has made over the past year but also optimistic about the advancements in the coming year. In particular, new features in the Rust language have excited many, such as const generics and generic associated types (GATs), improvements to async in the 2021 edition, the Bevy game engine, more companies adopting Rust, WebAssembly, and more!
Original Link:
https://blog.rust-lang.org/2020/12/16/rust-survey-2020.html
Today’s Survey:
Are you using Rust?
How do you think the learning curve for Rust can be lowered?
Today’s Recommended Article
Click the image below to read

Apple Disrupts the Advertising Industry, Facebook Leads the Charge! 1.8 Million Apps Affected

Are you also “watching”? 👇