A milestone for Rust: version 7.0 of the Linux kernel has been released with official support for the programming language. At the same time, Rust’s popularity appears to be leveling off somewhat, according to the CEO of the TIOBE Index.
Rust was designed to be suitable for kernel development. It is memory-safe, unlike venerable languages such as C, but has a smaller community and has only been available in a stable form for just over a decade.
While earlier versions of the Linux kernel offered only experimental support for Rust, this support is now official. This is a major step, as previously only C and Assembly were supported.
A Long Road
A programming language doesn’t just make it into the Linux kernel. Maintainers of this critical foundation for the open-source OS have long spoken out against the inclusion of the language. Bug fixes would become more difficult because far fewer project contributors know the language, whereas people have had decades to master C.
On top of that, adopting Rust limits the flexibility of kernel development. Consider interfaces that must remain stable to maintain compatibility across programming languages. Integration with Rust now requires C bindings (generated via tools like bindgen) that must be continuously synchronized with the evolving C interfaces.
Nevertheless, young programmers—particularly those focused on low-level code—have become Rust natives. To safeguard long-term support for the Linux kernel, the inclusion of Rust is an important step.
Stagnation?
You can expect some complexity from a low-level programming language. And you can expect a complex language to lose out in adoption to more accessible alternatives. Python, for instance, is unbeatable, especially since it has become the de facto standard for AI development. Rust has nonetheless seen undeniable growth, with Microsoft, Google, Amazon, Meta, Cloudflare, Discord, Dropbox, Mozilla, GitHub, and many other tech companies embracing the language.
Nevertheless, Paul Jansen, CEO of the TIOBE Index, states that Rust’s growth is leveling off. The TIOBE Index is a ranking based on the number of online searches, tracking data from Google, Bing, Wikipedia, YouTube, and more. It is not an absolute truth that the highest-ranked languages are actually the most popular; still, some correlation is evident.
Rust reached 13th place earlier this year, after first entering the top 20 six years ago. Now, however, the language has slipped back to 16th place. Jansen points to the difficulty beginners experience with the language. For experts specializing in domains where performance is critical, according to Jansen, Rust’s learning curve is worth the effort. Mainstream adoption seems more challenging.
A world turned upside down
Although Jansen is correct, we should take the TIOBE Index for Rust with a grain of salt. Adoption is essential for programming languages. Without users (and thus maintainers), a language dies out. But there is a clear difference between accessible languages like Python and domain-specific options like Rust. Several factors can be true at the same time: accessible languages gain popularity faster than more complex ones, older languages have an advantage over newer ones, and growth isn’t measured by the same criteria for every language.
For example, in the most recent Stack Overflow survey, Rust is the most highly rated programming language (72 percent). Additionally, Cargo, Rust’s package manager, is the most highly rated tool in cloud development and infrastructure. This shows that Rust, while by no means always the language of choice for programmers, is well-loved when it is used.
For Python, its ubiquity is a major advantage. Code written in the language is uniquely available for AI training, it is highly readable, and its applicability is extremely diverse thanks to a vast array of libraries, modules, and projects. The entire TIOBE Top 15 consists of languages that are either very old, have a domain-specific application, or both. Rust is no exception in this regard.
On top of that, Rust remains the youngest language in the index. C is considered one of the oldest. They differ greatly from Rust, and the latter was not designed for an easy transition. Nor should we expect one; there are cultural differences between the Rust community (young, challenging, and often seen as abrasive) and that of C (traditional, accustomed to conventions, and stable). Rust’s technical strengths are now well known, but those human differences prove stubborn. The Linux kernel is and remains, even after the experimental phase, a battleground for both sides.
Read also: Linux kernel to move to version 7.0 after release of 6.19