For those that don’t know, Rust is a new programming language that is designed to reduce the number of errors in an application through the strict management of memory references, among other safety-related features. There are no commercial Rust tool suites yet, but the latest Rust survey had 5,000-plus respondents, with most using Rust to develop applications. More than 40% have been using Rust for over a year. That is still a small fraction compared to those using C and C++, but it represents a significant growth in the use of Rust.
The size of Rust projects is growing as well but most are still under 10,000 lines (Fig. 1). Most projects are likely evaluations of Rust so this amount is likely to rise if these projects continue to use Rust.
Linux is the primary target platform for Rust applications (Fig. 2), but Windows and Apple macOS are used for a significant fraction. Some applications are used for more than one target. The number of embedded applications is low, but that is likely due to the lack of commercial Rust compilers.
Much of the work on Rust is associated with open-source projects, versus projects in a commercial setting (Fig. 3). This is not surprising given the dominance of C and C++ in embedded applications, as well as other programming languages used in commercial settings.
Rust has a lot of promise, and the latest versions are targeting stability and long-term support as the feature set has been refined. Programming languages like Ada and SPARK that have safety and security features have found limited appeal outside of military and avionic applications, but this is also changing. The big difference between these and Rust is that commercial tool suites are available now, and the definition of the languages and support systems are also well defined, which is important for commercial applications.
In the meantime, the use of C and C++ for safety and security critical applications is being augmented through the use of third-party static and dynamic analysis tools. Developers who understand the advantages of these tools, and languages like Ada and SPARK, have an edge in delivering safe and secure applications—on time and within budget. This Internet-of-Things (IoT) age is more susceptible to bugs in applications, which is why it’s important to use tools that minimize these problems. Rust may wind up being in that mix, and there is a growing number of developers getting experience with it.