# Rust 2024 ---- ## Lang team Prepare a [draft roadmap](https://hackmd.io/@nikomatsakis/rkeDGHI0Wq). Goals: * Focus ourselves * Steer contributors * Think long term ---- ## Rust's mission **Empower** everyone to build reliable, efficient software ---- ## Target Environments where * resource usage, * security and correctness, and * long-term maintenance are top considerations. ---- Our slogan: "A stitch in time saves nine" ---- * Big success: * Network and cloud infrastructure * Embedded development * Kernel development * CLI applications (scale!) ---- But what about when... * Resources are **important** * But so is **time-to-market** ---- Want to ensure that we * serve existing users well * grow Rust's market ``` │ Polished │ │ │ ┌──────────────┐ │ │ │ │ │ │ │ └──────────────┘ Rough │ │ └───────────────────────────── Reliability ... Productivity ``` ---- ## Questions for you We believe this is a good basis for a **Rust-wide product roadmap**. Can you see your teams' work fitting these themes? What's missing? --- ## Scaling... Three big themes: * Flatten the (learning) curve * Help Rust's users help each other * Help the Rust project scale ---- ## Revisiting * This doesn't seem like a complete list * Think "what is highest priority for 2022" * Revisit progress in 2023, consider additions --- ## Learning curve * More precise analyses, less rigamarole * Express yourself more easily * Improve async support * Make `dyn Trait` more usable ---- Examples of things underway: * Implied bounds (more precise analysis) * let-else, let-chains (express yourself) * async fns in traits (async support, dyn trait) * dyn upcasting (dyn trait) ---- ## Help users help each other * Rust's library ecosystem is a great strength * We want to empower library authors further * Share tools previously only available to `rust-lang/rust` ---- ## Help users help each other * Feature lifecycle * Richer abstractions * Custom developer experience * Interoperability ---- ## Examples of things underway * Feature lifecycle * [Edition-based method disambiguation](https://github.com/rust-lang/rfcs/pull/3240) * Interoperability: * Global/scoped capabilities * Async portability (building on async fn in traits) * [Negative impls in coherence](https://rust-lang.github.io/negative-impls-initiative/) ---- ## Future work * Feature lifecycle * Stability markers * Custom developer experience * Custom diagnostics and lints * Interoperability * Help crates glue together other crates * Dynamic linking * Portability **and non-portability** ---- ## Help the Rust project scale * Teams stay around the same size (7±2) * Community grows rapidly * Need to scale our development processes to manage more needs * Support delegation, empower initiative owners, subteams, WGs ---- ## Help the Rust project scale * See the status at a glance * Clear owners and clear communication * Efficient, open processes with tooling support ---- ## Examples of things underway * Initiatives - [project board](https://github.com/orgs/rust-lang/projects/16/) * [Backlog Bonanza](https://lang-team.rust-lang.org/meetings/backlog-bonanza.html) * Stabilizations * [New consensus decision process/tooling](https://lang-team.rust-lang.org/decision_process.html) * Reversible decisions and experimentation * Treasure dissent * Worth a talk of its own! * Types team * Style team ---- ## Conclusion * Flatten the (learning) curve * Help Rust's users help each other * Help the Rust project scale Zulip stream: [`#t-lang/roadmap-2024`](https://rust-lang.zulipchat.com/#narrow/stream/318377-t-lang.2Froadmap-2024)
{"metaMigratedAt":"2023-06-16T21:45:47.073Z","metaMigratedFrom":"YAML","title":"Lang Team: Rust 2024","breaks":true,"contributors":"[{\"id\":\"e9460a2b-f342-4d37-bb46-aef96f92ebfc\",\"add\":1127,\"del\":70},{\"id\":\"27d8f2ac-a5dc-4ebe-8c31-cc45bcd8447e\",\"add\":3781,\"del\":945}]"}
    1209 views
   owned this note