Rust is ‘Devouring’ Our Systems, It’s Time for C/C++ to Step Down

Rust is 'Devouring' Our Systems, It's Time for C/C++ to Step Down

Author | Rupert Goodwins Translator | Nuclear Cola Editor | Dongmei

What is the endless programming language war really about?

(This article represents the author’s personal views)

It’s time for C/C++ to step down, Rust is the future

Rust is rapidly infiltrating our systems.

The first driver written in Rust is now part of Linux, and Microsoft Azure’s Chief Technology Officer Mark Russinovich has stated that it’s time for the mainstream system languages C/C++ to step down, with Rust being the direction for future development.

However, many practitioners still hold opposing views. The technical ecosystem has always been filled with conflict and confrontation, and the long-standing programming language wars have seen more than one battle. This time, however, the stakes are higher than ever.

C++ first entered commercial use in 1985, the same year that the Nintendo Entertainment System (NES) launched in the United States. Those trendy young programmers from back then have now grown into executives and pillars of various companies, and their understanding of IT infrastructure often remains stuck in that past era. As a result, many of them have become opponents of Rust, believing that what Rust can do, C++ can do just as well, and that good programmers do not need extra help at the programming language level.

Indeed, old tools are still effective and can meet the development needs of most people. Coupled with the long-standing technical inertia, the market is still filled with ancient systems that can be considered “living fossils.” The legal and medical industries still use Latin terms, and many thought processes in religion can be traced back to the Iron Age; the reasoning is the same.

However, many facts have proven to us that languages born in the past will ultimately be insufficient to describe this new world. So it comes down to who can better keep pace with the times, allowing old things to be “recompiled” in new forms to better align with today’s world.

C/C++ hands the safety switch to developers, Rust: “Let me handle it”

The significant change that has made C/C++ incompatible with the real world is the ubiquitous heterogeneous distributed computing.

Let’s set aside our current computing tasks and look at the computing application scenarios of the previous and next generations. How many tasks run on how many instances of operating systems? Where is this code deployed? Yes, everyone will soon realize that most of the code resides in shared environments, relying on certain underlying technologies to achieve sandboxing/partitioning/isolation.

In the past, bug fixes could only rely on releasing new versions, a method that could immediately impact the privacy of millions of people in today’s era or leave ransomware with opportunities in national-level health systems. In this efficient era where content typed in an IDE can be quickly transformed into global output, C/C++ still hands the safety switch to each developer, while Rust says, “Let me handle it.”

Indeed, some kernel development experts do not need the assistance of programming languages, as they have been working this way for 30 years without major issues. But remember, not all developers in the world are experts; there are many newcomers who are still growing and are somewhat clueless about safety details. Rust can reduce risks without sacrificing performance, allowing more people to quickly write high-quality code. What’s wrong with that?

Of course, Rust is not a panacea; it simply understands better the potential oversights that data may encounter in modern environments and knows how to enforce safety protections at compile time without sacrificing performance. This merely sets a higher starting point and does not aim to limit the creativity of developers.

A successful language must keep pace with the times

A successful language should respond to demands and point the way forward for the era that gives rise to these demands.

The emergence of C coincided with the growth of small computers, later extending to 8-bit microcomputers, where efficiency and portability were paramount. As personal computers became powerful enough to perform complex tasks on complex data, C++ quickly followed to address the issue of expanding software scope and stabilized in the 1990s.

Similar to the two, Rust was born from the computational maturity of the 2010s, emphasizing safety, reliability, and concurrency, which are the core issues to be addressed in the distributed era.

Transformation is never easy.

Open-source projects require contributions from a large number of skilled developers and code reviews and fixes from experienced experts. In this regard, the system skills accumulated in C/C++ are much deeper and cannot be compared to Rust. However, truly excellent system engineers should engage in formal and abstract thinking, as this is the greatest commonality among different programming languages.

So whether the language transition can be completed largely depends on culture and self-awareness, rather than technical proficiency. It is difficult for anyone to completely set aside the skills they have honed over the years and immediately embrace a new language, but as long as it represents the actual productivity requirements of the new era, we must set aside prejudices and make the right choice.

In fact, we who have experienced transformation are a fortunate generation. In the 1970s, information technology gradually evolved from a niche concept that only concerned the banking industry and scientists into a universal achievement that affects everyone’s daily life, and such disruptive changes have only gone through two generations of system languages. This is a moment exclusive to developers, a wonderful experience that only those in the IT industry can resonate with.

From a practical perspective, Rust possesses all the qualities to become the benchmark of the third-generation language. It stands on the shoulders of giants, focusing on solving real-world problems, and is expected to unleash the development potential of more people to create a better future. This is both a technological revolution and a cultural shift. Humanity has never shied away from facing the changes and challenges of the times, and the new dawn has already sounded. So let us all keep an open mind, for one day Rust will also be replaced; it is this inheritance and development that constitutes the brilliant history of human society.

Original link:

https://www.theregister.com/2022/09/26/rust_column/

Today’s Recommended Article

Click the image below to read

Rust is 'Devouring' Our Systems, It's Time for C/C++ to Step Down

“Those who copied me also stabbed me in the back,” Gary Marcus responds to Turing Award winner Yann LeCun

Rust is 'Devouring' Our Systems, It's Time for C/C++ to Step Down

Are you also ‘watching’? 👇

Leave a Comment