How a broken elevator led to one of the most loved programming languages today

SHARE

What started as a side project on one developer’s laptop has become one of today’s most successful programming languages currently used by Microsoft, Amazon, Google, Tesla, Discord and many others.

For those who do not know this story – welcome.

Programmers are best known for often creating different one-off solutions to quickly fix problems or meet specific needs. However, it also happens that a solution created for a specific task turns out to be much larger than the very task itself. It remains relevant, blossoms and flourishes even decades later.

Seventeen years ago, Mozilla programmer Graydon Hoare returned from work to find his building’s elevator out of order. He was forced to climb twenty-one flights of stairs cursing everything in the world. He found out later that the elevator was not working due to a software failure that caused his unplanned cardio session. Then he decided to try to make a programming language that would reduce such errors to zero so that even a novice developer could write code that doesn’t result in a freeze.

Hoare poured all his frustrations into code and within a few months created the foundation for a simple and flexible language designed to minimize memory errors and prevent problems like his elevator breakdown. He named it Rust – in honor of rust fungi famous for their endurance and ability to survive in any conditions.

The point is that older programming languages like C and C++ (which are over forty years old) have inherent flaws. On the one hand, they provide flexibility in terms of code development and put in the hands of the user a number of tools that allow you to create a wide variety of programs for anything from cars and defibrillators to Windows and Android. But on the other hand, they require developers to carefully manage memory transactions. Failure to account these transactions can easily lead to application crashes or instabilities.

To ease the burden of persistent memory management, languages such as Java introduced the concept of “garbage collectors”. These collectors are designed to clean up system memory periodically, minimizing the risk of memory errors. However, this comes at the cost of higher overall memory usage and greater system resource draw to keep the collectors running at all times.

Hoare attempted to create an effective and efficient programming language to bridge the gap between these two (as they say, obsolete) approaches to memory management. While it requires developers to adhere to somewhat rigid coding rules, the language manages memory on behalf of the developer, ensuring any developed code is memory-safe.

Language errors such as buffer overflow and array overflow became basically impossible. But it was just such (human) errors in languages with manual memory management like C and C++ that led to the most dangerous vulnerabilities like remote code execution.

Mozilla incorporated Rust and began sponsoring the project in 2009 as part of the development of an experimental fast browser engine called Servo. This project was officially announced by the company in 2010. Since then, Rust has become a widely supported open source project, used for everything from elevator software to massive applications that solve problems the size of Microsoft and Amazon.

By 2013, the language’s supporters had refined Rust’s memory management system to the point where it no longer required a garbage collector feature at all. The language continued to mature and gain support from developers worldwide, prompting Rust’s first official stable release in May 2015.

People’s love

In January 2014, the chief editor of the computer magazine Dr. Dobb’s Journal Andrew Binstock commented on Rust’s chances of becoming a full-fledged competitor to C++. According to Binstock, although Rust is “considered by many to be a remarkably elegant language,” its adoption has slowed down because it changed too much between versions.

But the popularity of Rust after its official release in 2015 has grown at a fantastic pace. Despite its youth, Rust quickly became one of the most popular programming languages. For example, in the TIOBE Programming Community Index in July 2019, it ranked 33rd, and by July 2020 it had risen to 18th. Similarly, according to a Stack Overflow developer survey, Rust has been the “most loved” language by those surveyed since 2016. Loved by 86% of developers, TypeScript is second with 67% approval, and Python is third with 66.7%.

The Stack Overflow survey shows the percentage of those who with a language or technology develop and express interest in continuing to develop with it

As a result, many programmers now see Rust as a serious alternative to C and C++, even in areas where these languages have previously dominated. Dave Herman, co-founder of Mozilla Research, described some of the advantages of the language in his post:

“What sets Rust apart from all other languages is its combination of low-level control with uncompromising security. When we started using Rust on a large scale, we found that this combination had incredible stimulating effects, allowing novice programmers to dive into the lowest levels of programming and encourage experienced system programmers to strive to higher levels.”

What now

In the business world, you cannot live and rely on only love. And since Mozilla is not having the best of times right now, including due to pressure from Chrome and Edge, the development of a new language is also in jeopardy.

In August 2020, Mozilla laid off 250 of its 1,000 employees as part of a pandemic-driven corporate restructuring. The development team behind Servo, a browser engine written in Rust, was then completely disbanded. This raised concerns about the future of Rust, as team members actively contributed to the development and maintenance of the language.

The following week, the Rust core team acknowledged the severe impact of the layoffs and announced plans to create a fund to support Rust. The foundation’s first goal was to become the owner of all trademarks and domain names related to the language and take financial responsibility for their value.

On February 8, 2021, the five founding companies (AWS, Huawei, Google, Microsoft, and Mozilla) announced the setting-up of the Rust Foundation. In a blog’s post published in April that year, Google announced the support for Rust amid the Android Open Source Project as an alternative to C and C++. At Google itself, the low-level code for Android is now written in Rust.

In 2022, the size of the Rust community had effectively tripled to more than three million users and was featured on the National Security Agency’s (NSA) recommended list of memory-safe languages. This ranking put Rust in the company of other well-established household names such as Java, C#, and Ruby.

Now the use of Rust continues to increase daily, especially in the automotive and aerospace industries where it is critical that nothing breaks. The language is also loved by many big IT companies including Microsoft, Amazon and Dropbox. Due to this, the use of Rust continues to grow, reducing the overall dependency of developers on C and C++, which are considered less secure, especially in the hands of inexperienced programmers.

From programming elevators to launching space rockets and electric cars. Not bad for a “rust”.