What Rust features are still missing? – Interview with Steve Klabnik
In the wake of the latest release from Rust, version 1.43, we took some time to chat with Steve Klabnik, a member of the Rust core team, about the language, its future, the community, and what features are still needed.
Rust version 1.43 recently released and we took the opportunity to sit down and speak with Steve Klabnik from the core team about the current status and future of Rust.
JAXenter: You are a member of the Rust core team. What are your main tasks and how do you organize the work in the team? What are you currently working on?
Steve Klabnik: The core team’s job works a bit differently than core teams in other languages. Our job is mostly to oversee the project as a whole. So we do a lot of reactive work; some team needs a certain kind of help, and we figure out how to give it to them.
We also do some proactive work; for example, a big question in Rust right now is “will we have a 2021 edition or not.” That’s kind of a joint decision between core and the language team. We actually publish parts of our meetings here.
JAXenter: You have been involved in Rust for some time now, how do you think about the development of the language and the community?
Steve Klabnik: As things mature, the needs change. Back in the day, we could do whatever we want, and we had no responsibility to anyone. Now, we have to be very deliberate with change; we can only add things, never remove. We have companies like Amazon, Facebook, Apple, Google, and Microsoft using Rust in products, and so we need to be very reliable.
We also used to have a small number of contributors, but we now have about 200. We used to have about 100 pull requests get merged in a given week, we now have about 400.
JAXenter: Rust still has the reputation of a language that is not easy to learn. Do you agree with this and how do you assess the general situation of Rust at the moment?
Steve Klabnik: I agree that it’s not easy to learn, but that doesn’t mean that it’s impossible. Rust basically makes you debug your program upfront.
When I wrote Ruby, I would “get something working” really fast, but there would be bugs, and they’d take time to track down. With Rust, it takes me a bit longer to get going, but when it’s done, I have a much lower rate of bugs than I do in my Ruby. They still exist of course! But I spend a lot less time on them. This change in mindset can be difficult for some folks, or maybe it just isn’t their thing.
We want Rust code to be very reliable, and that comes with some strictness, which means that it takes time to learn. We are always happy to help folks out with a question, no matter how big or small, on our forum, users.rust-lang.org.
JAXenter: The latest community survey has shown, among other things, that many programmers want more content to learn such as videos, blogs, or tutorials. Are these things, which go beyond the already existing content, planned in the future?
Steve Klabnik: Not by the teams themselves, but we’ve seen several folks step up and start producing more video content in the community.
JAXenter: Speaking of the future, how would you like Rust to evolve? Which features are you still missing?
Steve Klabnik: I think that there are only a few more major features Rust needs, and then it can be “mostly done”:
1. const generics
These two features will let us build ceratin kinds of APIs that we can’t currently. There are other features that are cool too, but they’re less important in my mind.
I would also like to see the Unsafe Code Guidelines Working Group finish their work. They’re building comprehensive rules that unsafe code must obey. It’s a tricky part of Rust right now, though luckily most programmers don’t need to use unsafe.
Thank you for the interview!