|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Rust's 2019 roadmap" |
| 4 | +author: The Rust Core Team |
| 5 | +--- |
| 6 | + |
| 7 | +Each year the Rust community [comes together][roadmap-process] to set out a |
| 8 | +roadmap. This year, in addition to the [survey], we put out a [call for blog |
| 9 | +posts][blog-2019] in December, which resulted in [73 blog posts][read-rust] |
| 10 | +written over the span of a few weeks. The end result is the recently-merged |
| 11 | +[2019 roadmap RFC][rfc]. To get all of the details, please give it a read, |
| 12 | +but this post lays out some of the highlights. |
| 13 | + |
| 14 | +[roadmap-process]: https://github.com/rust-lang/rfcs/pull/1728 |
| 15 | +[survey]: https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html |
| 16 | +[blog-2019]: https://blog.rust-lang.org/2018/12/06/call-for-rust-2019-roadmap-blogposts.html |
| 17 | +[read-rust]: https://readrust.net/rust-2019/ |
| 18 | +[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/2657-roadmap-2019.md |
| 19 | + |
| 20 | +# The theme: Maturity |
| 21 | + |
| 22 | +In short, 2019 will be a year of *rejuvenation* and *maturation* for the Rust |
| 23 | +project. We shipped a lot of stuff last year, and grew a lot. Now it's time to |
| 24 | +take a step back, take stock, and prepare for the future. |
| 25 | + |
| 26 | +The work we have planned for this year falls into three major categories: |
| 27 | + |
| 28 | +* Governance: improving how the project is run |
| 29 | +* Finish long-standing requests: closing out work we've started but never finished |
| 30 | +* Polish: improving the overall quality of the language and tooling |
| 31 | + |
| 32 | +## Governance |
| 33 | + |
| 34 | +Over the last three years, the Rust project has grown a lot. Rust used to have a core team of 8 members. When we added sub-teams in 2015, we grew to 23 members. We've now grown to over 100 -- that's bigger than many companies! And of course, looking beyond the teams, the size of the Rust community as a whole has grown tremendously as well. As a result of this growth, we've found that the processes which served us well when we were a smaller project are starting to feel some strain. |
| 35 | + |
| 36 | +Many of the teams have announced plans to look over revamp their processes to scale better. Often this can be as simple as taking the time to write down things that previously were understood only informally -- sometimes it means establishing new structures. |
| 37 | + |
| 38 | +Because of this widespread interest in governance, we've also created a new [**Governance Working Group**][gov]. This group is going to be devoted to working with each team to hone its governance structure and to help pass lessons and strategies between teams. |
| 39 | + |
| 40 | +[gov]: https://internals.rust-lang.org/t/governance-working-group-announcement/9637 |
| 41 | + |
| 42 | +Additionally, the RFC process has been a great boon for Rust, but as we've grown, there have been times where it didn't work so well too. |
| 43 | +We may look at revisions to the process this year. |
| 44 | + |
| 45 | +## Long-standing requests |
| 46 | + |
| 47 | +There are a number of exciting initiatives that have been sitting in a limbo |
| 48 | +state -- the majority of the design is done, but there are some lingering |
| 49 | +complications that we haven't had time to work out. This year we hope to take |
| 50 | +a fresh look at some of these problems and try hard to resolve those |
| 51 | +lingering problems. |
| 52 | + |
| 53 | +Examples include: |
| 54 | + |
| 55 | +- The Cargo team and custom registries |
| 56 | +- The Language team is taking a look at async/await, specialization, const generics, and generic associated types |
| 57 | +- The Libs team wants to finish custom allocators |
| 58 | + |
| 59 | +## Polish |
| 60 | + |
| 61 | +Finally, the last few years have also seen a lot of foundational work. The |
| 62 | +compiler, for example, was massively refactored to support incremental |
| 63 | +compilation and to be better prepared for IDEs. Now that we've got these |
| 64 | +pieces in place, we want to do the "polish" work that really makes for a |
| 65 | +great experience. |
| 66 | + |
| 67 | +Examples: |
| 68 | + |
| 69 | +- Compile times and IDE support |
| 70 | +- Polishing the specification of the language by improving [the reference] and laying out [the unsafe code guidelines] |
| 71 | +- The WebAssembly WG's work this year includes polishing our wasm support, for example, debugging |
| 72 | + |
| 73 | +[the reference]: https://doc.rust-lang.org/stable/reference/ |
| 74 | +[the unsafe code guidelines]: https://github.com/rust-lang/unsafe-code-guidelines |
| 75 | + |
| 76 | +## Conclusion |
| 77 | + |
| 78 | +This post only covered a few examples of the plans we've been making. [If you'd like to see the full details, take a look at the RFC itself.][rfc] |
| 79 | + |
| 80 | +Here's to a great 2019 for Rust! |
0 commit comments