# 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}]"}