"The overriding problem hindering use of Rust is adoption," according to the language's official survey, with some developers struggling to be productive and hampered by limited IDE support.
Rust is the "most-loved" language, the StackOverflow research says, and has been for four years in a row, but the new study shows that one in five Rust developers do not feel productive in the language. The top reasons cited as barriers to adoption were the need for better training and documentation, improved libraries, and more IDE integration.
"As a small business, even 4-6 weeks to become productive is a lot to ask," said one respondent.
The survey was conducted in December 2019 and received 3,997 responses – nearly 2,000 fewer than the 2018 survey achieved. Of those surveyed, 27.6 per cent use Rust daily and a further 40.9 per cent at least weekly. The most common role for a Rust developer is back-end web development, followed by distributed systems and embedded devices.
Fifty-five per cent of Rust users develop on Linux, 24 per cent on Windows and 23 per cent on macOS. Visual Studio Code is the most popular IDE with 34.9 per cent share, followed by Vim (23.6 per cent) and IntelliJ (21.1 per cent), with the latter option being an open-source plug-in for IDEA, CLion or other IntelliJ products. The targeted platforms include Linux (36.9 per cent), Windows (16.3 per cent), macOS (14.7 per cent) and WebAssembly (14.4 per cent).
Developers declared themselves very happy with improved Async I/O in Rust – a key feature – but most cited only "some improvement" in other areas, including adoption level, compile time, IDE experience, library support, documentation and tool support.
Why is Rust relatively difficult to learn? The 2018 survey asked users to rate the difficulty of various topics, showing that many find ownership and borrowing, lifetimes, macros and unsafe code particularly challenging.
It seems evident, though, that despite the enthusiasm of developers who've become proficient, adoption remains limited. Redmonk analyst Stephen O'Grady remarked in January "the shiny language that many have argued should be used as the basis for more core infrastructure projects moving forward remained flat" in the programming language rankings. "The question then is whether Rust's technical differentiation from Go, albeit with an arguably longer learning curve, will be enough to allow it to outperform its most serious current rival for modern infrastructure workloads," O'Grady said.
The frustration for Rust proponents is that lack of adoption is cited as the biggest deterrent to further usage. The language would benefit from take-up by a major project in order to break through. Google Fuchsia (a possible successor to Android) perhaps? Unfortunately, the official programming policy says, while praising the memory safety and asynchronous features of the language, that "none of our current end-developers use Rust. Rust is not a widely used language. The properties of the language are not yet well-understood, having selected an unusual language design point (e.g., borrow checker) and having existed only for a relatively short period of time." This drives the conclusion that "Rust is not supported for end-developers", though it is "approved for use throughout the Fuchsia Platform Source Tree" other than the kernel. By end-developers, Google means people writing software for the platform outside the core source code. The most favoured languages are C, C++ or Dart for end-developers.
Rust is loved and its language design widely admired, but not yet used as widely as its merits deserve. ®