The premier annual conference for Rust developers, RustConf, was held virtually online in August 2020. The full-day conference featured Rust developers and community members around the world. The talks ranged from the highly technical to beginner's introduction to games and child-friendly activities. The key message is clear — Rust is ready for mainstream adoption.
Rust is one of the fastest-growing programming languages. In 2020 Rust broke into TIOBE's top 20 most popular programming languages. A key reason for Rust's growth is the passionate community around it. According to StackOverflow, Rust is the most beloved programming language in each of the past five years.
However, Rust also has a reputation as a difficult language to learn and get started. While other languages such as Python and JavaScript hide complexities such as memory management, Rust emphasizes creating correct and efficient code from the get-go. As a result, Rust is beloved by systems programmers who are from the C/C++ land, but has a sharp learning curve for application developers. As Rust grows into a mainstream programming language, it needs to be inclusive with regard to developers of all backgrounds and skill levels. Inclusivity is the theme of this year's RustConf.
One of the most powerful tools in Rust is the compiler. For beginners and experts alike, the Rust compiler acts like a pair programmer or even a personal tutor. When it encounters an error in the source code, it not only tells where it is but also shows why it is wrong and suggests ways to fix it. Watch Esteban Kuber's talk, "Bending the Curve: A Personal Tutor at Your Fingertips", to learn more about how the Rust compiler can help. This talk is highly recommended to new Rust developers.
To expand on the idea of useful and educational compiler error messages, Jane Lusby's talk titled "Error Handling Isn't All About Errors" discussed novel efforts in Rust to improve runtime error reporting. New tools and libraries can now separate the orthogonal concerns of the root cause/stack trace of the error and presentation of the error message. They also provide more elegant ways to handle and recover from errors in Rust applications.
Macros make Rust more inclusive and beginner-friendly. For example, the official hello world example in Rust prints the "hello world" message to STDOUT
using the println!
macro. For experienced developers, macros also make Rust programs much easier to understand and write. jam1garner's talk, "Macros for a More Productive Rust," is a good introduction to this Rust language feature.
Once developers understand the design philosophy of the Rust language and compiler, it is time to build the first Rust project. While most of RustConf's attendees are not Rust newbies, the conference does include several beginner-level talks, which are useful for new developers who wish to watch the conference videos at home. Micah Tigley's talk on "My First Rust Project: Creating a Roguelike with Amethyst" discussed her experience in creating a game in Rust. Harry Bachrach's talk on "How to Start a Solo Project that You'll Stick With" described his journal to start a CLI tool in Rust as a hobby project.
While Rust is an excellent programming language for systems programmings, such as writing operating systems, virtual machines, web browsers, and other high-performance systems, the conference also conveyed Rust's usefulness in application programming. Rebecca Turner's talk, "Rust for Non-Systems Programmers", discussed Rust language features that make it useful and productive for application developers. Ashley Hauck gave a fun talk on "Controlling Telescope Hardware with Rust". It is a Rust application for IoT devices. Moving from the very big to the very small, Samuel Lim's talk, Under a Microscope: Exploring Fast and Safe Rust for Biology, discussed Rust applications in biological scientific programming.
Finally, the conference concluded on Siân Griffin's keynote on Pokemon games. The idea is that, if Rust existed when the Pokemon games were created, many of the game bugs would have been prevented. However, many game players actually consider bugs and cheat codes part of the fun in Pokemon games. They made the games more unpredictable. Humans are difficult to please!
Despite the pandemic and the virtual format, RustConf 2020 still managed to be a fun and informative conference. The future growth is the Rust programming language will indeed depend on how much the community can expand beyond the passionate system developers crowd. If you are interested in learning Rust, you can start here.