Member-only story
Is Rust 2.0 Needed? The Features Changing Rust From the Inside
View types, pattern types, linear types, Polonius, and the new trait solver, explained in plain language.
Every few months, someone on the Rust subreddit asks whether it’s time for a “Rust 2.0,” given everything language designers have learned since Rust was first built more than a decade ago.
I think that question has a better answer than “start over.” Rust is changing from the inside, and the changes are bigger than most people realize.
This article is based on a 2026 talk by Josh Triplett, one of the designers and maintainers of Rust, covering features currently in development. I’ll explain each feature in simple terms, show why it exists, and give my own view on what matters most. Three of these features are still in progress, and two are close to landing in stable Rust.
1. View Types: Borrowing Only the Part You Need
If you’ve written Rust for a while, you’ve probably hit this frustrating error. Here is a small example:
struct Foo {
a: i32,
b: i32,
}
fn increment_b(foo: &mut Foo) {
foo.b += 1;
}
fn main() {
let mut foo = Foo { a: 0, b: 0 };
let a = &mut foo.a; // mutable borrow of…









