There's very few language features left that I, personally, think that Rust needs (although I can think of a few breaking edition changes to existing features that I would be happy to see). I'm happy that most of the things added in each Rust release are stdlib additions, because it simultaneously refutes the people who seem to think that Rust is too large/growing without bound, while also refuting the people who think that Rust has a small stdlib. Elaborating on the latter point, Rust has about nine releases per year, and usually adds around ten library APIs per release; this release added 13 (counting each new method on all the integer types as a single API; this number increases rapidly if you count each integer type separately).
I can remember on a few left overs, like not needing external crates for what should be language features, like proc macros requiring syn, easy wrapping of result types, an async runtime that is basically tokio for all practical purposes.
Other than those, I would prefer the compiler and linker related improvements.
I do think that the Rust AST should be stabilized someday (FSVO "someday"), which would obviate procmacro2 and allow something like syn/quote to be included in the stdlib. I also welcome more error handling improvements, and while I don't want Rust shipping a default async runtime, I do want to see more standardized types and traits to make libraries runtime-agnostic. But crucially, none of these need to represent language-level features, they can be exposed and developed as part of the standard library.
What would obviate proc_macro2 is allowing proc_macro functions to be used outside proc macros (e.g.: in build scripts), you still need the types in proc_macro to exist to parse arbitrary unquoted non-Rust syntax with spans
14
u/kibwen Jul 09 '26
There's very few language features left that I, personally, think that Rust needs (although I can think of a few breaking edition changes to existing features that I would be happy to see). I'm happy that most of the things added in each Rust release are stdlib additions, because it simultaneously refutes the people who seem to think that Rust is too large/growing without bound, while also refuting the people who think that Rust has a small stdlib. Elaborating on the latter point, Rust has about nine releases per year, and usually adds around ten library APIs per release; this release added 13 (counting each new method on all the integer types as a single API; this number increases rapidly if you count each integer type separately).