Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up2018 roadmap #231
Conversation
This comment has been minimized.
This comment has been minimized.
steveklabnik
reviewed
Mar 6, 2018
|
looks good, just a few comments |
| --- | ||
| layout: post | ||
| title: "Rust's 2018 roadmap" | ||
| author: "Aaron Turon" |
This comment has been minimized.
This comment has been minimized.
steveklabnik
Mar 6, 2018
Member
i don't want to say this is not by you, but should it be "from the core team?"
I don't care a ton, but something to think about.
|
|
||
| We will continue to publish releases every six weeks as usual. But we will | ||
| designate a release in the latter third of the year (Rust 1.29 - 1.31) as the | ||
| beginning of the Rust 2018 epoch. This “epoch release” will be the culmination |
This comment has been minimized.
This comment has been minimized.
steveklabnik
Mar 6, 2018
Member
FWIW, I have been running the "era" wording past some people and they all vastly preferred it to "epoch"
This comment has been minimized.
This comment has been minimized.
joshtriplett
Mar 6, 2018
Member
Interesting! I like "era" as well, because it more strongly conveys the idea of a period of time rather than a point in time. "epoch" can mean that in the archaeology sense, but because of the use of "epoch" in computing (January 1, 1970), there's also a feeling of "point in time" or "start of a new point in time" instead. "era" doesn't have that problem.
| _both_ fresh and re-builds. Compiler performance should not be an obstacle to | ||
| productivity in Rust 2018. | ||
|
|
||
|
|
This comment has been minimized.
This comment has been minimized.
| the epoch release. | ||
|
|
||
| [Cargo build system integration]: https://github.com/rust-lang/rfcs/pull/2136 | ||
| [Xargo integration]: https://github.com/japaric/xargo |
This comment has been minimized.
This comment has been minimized.
steveklabnik
Mar 6, 2018
Member
i think this should link to rust-lang/cargo#4959, as it's way less confusing
| specific domains of use. We’ve selected four such domains to invest in and | ||
| highlight this year: | ||
|
|
||
| - **Network services**. Rust’s reliability and low footprint make it an |
This comment has been minimized.
This comment has been minimized.
steveklabnik
Mar 6, 2018
Member
should we link these names to their announcement posts, so if people want to get involved they have a foot in the door?
Mark-Simulacrum
reviewed
Mar 6, 2018
|
Left some nits. I sort of feel like it's missing something, but can't quite say what. Maybe a reflection on what we've already done? Otherwise though it looks great. |
|
|
||
| ## Entering the Rust 2018 epoch | ||
|
|
||
| **This year, we will deliver _Rust 2018_, marking the first new era in Rust programming since 1.0**. |
This comment has been minimized.
This comment has been minimized.
Mark-Simulacrum
Mar 6, 2018
Member
Maybe we can say "1.0, or Rust 2015”? That way it'll be easier to discuss this.
| of feature stabilization throughout the year, and will ship with polished | ||
| documentation, tooling, and libraries that tie in to those features. | ||
|
|
||
| The idea of “epochs” is to signify major steps in Rust’s evolution, where a |
This comment has been minimized.
This comment has been minimized.
| ### Compatibility across epochs | ||
|
|
||
| **TL;DR: Rust will continue its stability guarantee | ||
| of [hassle-free updates to new versions][stability]**. |
This comment has been minimized.
This comment has been minimized.
|
|
||
| [stability]: https://blog.rust-lang.org/2014/10/30/Stability.html | ||
|
|
||
| Epochs will have a meaning for the compiler. You will be able to write: |
This comment has been minimized.
This comment has been minimized.
| epoch = "2018" | ||
| ``` | ||
|
|
||
| in your Cargo.toml to _opt in_ to the new epoch for your crate. Doing so may |
This comment has been minimized.
This comment has been minimized.
Mark-Simulacrum
Mar 6, 2018
Member
Did we decide on a flag for rustc? Otherwise I think we'll get pushback from people who want to not use cargo.
This comment has been minimized.
This comment has been minimized.
nikomatsakis
Mar 7, 2018
Contributor
cargo will indeed pass -C epoch=2018 to rustc (currently -Zepoch=2018)
| Rust], reaching print as well. | ||
|
|
||
| [trpl]: https://doc.rust-lang.org/nightly/book/second-edition/ | ||
| [Programming Rust]: https://www.google.com/search?q=programming+rust&ie=utf-8&oe=utf-8&client=firefox-b-1-ab |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| code). We will continue to improve Cargo by stabilizing custom registries, | ||
| public dependencies, and a revised profile system. We’re also expecting further | ||
| work on [Cargo build system integration], [Xargo integration], and [custom test | ||
| frameworks], though it’s unclear as yet which of these will be complete prior to |
This comment has been minimized.
This comment has been minimized.
| produce static binaries come together to great effect for writing CLI apps. | ||
| - **WebAssembly**. The “wasm” web standard allows shipping native-like binaries | ||
| to all major browsers, but GC support is still years away. Rust | ||
| is [extremely well positioned](https://mgattozzi.com/rust-wasm) to target this |
This comment has been minimized.
This comment has been minimized.
Mark-Simulacrum
Mar 6, 2018
Member
Hm, I feel like maybe a more "official" post might be better? Maybe we can promote this to blog.r-l.o at least for url stability reasons?
| - **Ecosystem** WG: We'll be providing guidance and support to important crates throughout the ecosystem. Drop into the [WG-ecosystem room](https://gitter.im/rust-lang/WG-ecosystem) and we'll guide you to places that need help! | ||
| - **Dev Tools Team**. There are always interesting things to tackle with developer tools (IDEs, rustdoc, Clippy, Rustfmt, custom test frameworks, and more). Drop in to [#rust-dev-tools](https://paper.dropbox.com/?q=%23rust-dev-tools) and have a chat with the team! | ||
| - **Rustdoc Team**. With your help, we can make documentation better for everyone. Come join us in #rustdoc on IRC, and we can help you get started! | ||
| - **Release team**. Drop by [#rust-release](https://paper.dropbox.com/?q=%23rust-release) on IRC to get involved with regression triage and release production! |
This comment has been minimized.
This comment has been minimized.
Mark-Simulacrum
Mar 6, 2018
Member
This is the wrong URL, and I'd probably avoid linking this at all perhaps.
QuietMisdreavus
reviewed
Mar 6, 2018
| - **Ecosystem** WG: We'll be providing guidance and support to important crates throughout the ecosystem. Drop into the [WG-ecosystem room](https://gitter.im/rust-lang/WG-ecosystem) and we'll guide you to places that need help! | ||
| - **Dev Tools Team**. There are always interesting things to tackle with developer tools (IDEs, rustdoc, Clippy, Rustfmt, custom test frameworks, and more). Drop in to [#rust-dev-tools](https://paper.dropbox.com/?q=%23rust-dev-tools) and have a chat with the team! | ||
| - **Rustdoc Team**. With your help, we can make documentation better for everyone. Come join us in #rustdoc on IRC, and we can help you get started! | ||
| - **Release team**. Drop by [#rust-release](https://paper.dropbox.com/?q=%23rust-release) on IRC to get involved with regression triage and release production! |
This comment has been minimized.
This comment has been minimized.
nagisa
reviewed
Mar 6, 2018
| @@ -0,0 +1,221 @@ | |||
| --- | |||
| layout: post | |||
| title: "Rust's 2018 roadmap" | |||
This comment has been minimized.
This comment has been minimized.
nagisa
Mar 6, 2018
ultimate nit of all nits: This could have a nice unicode quotation mark, the same one that’s in the first heading two-three lines below :)
This comment has been minimized.
This comment has been minimized.
tomprince
Mar 6, 2018
Member
This is actually a yaml document, so the should be ascii quotation marks.
This comment has been minimized.
This comment has been minimized.
nrc
reviewed
Mar 6, 2018
|
Looks good. One thing that kind of bothered me is that what is a goal for 2018 and what is a goal for the 2018 epoch is a bit blurred and it surprised me a bit when reading. I think it would be good to either say explicitly that they are the same thing, or to be a bit stricter about what is an epoch goal, and what is not. |
| ## Community | ||
|
|
||
| **Connect and empower Rust's global community**. We will pursue | ||
| internationalization (specifically: translation) as a first-class concern, and |
This comment has been minimized.
This comment has been minimized.
nrc
Mar 6, 2018
Member
"internationalization (specifically: translation)" is not very clear to me - do you mean adding internationalisation support to the language to facilitate translation or internationalising things like compiler messages and documentation by translating them?
| - **CLI WG**. Writing CLI apps in Rust should be a frictionless experience – from finding the right libraries and writing concise integration tests up to cross-platform distribution. Join us at [https://github.com/rust-lang-nursery/cli-wg](https://github.com/rust-lang-nursery/cli-wg) and help us reach that goal! | ||
| - **Embedded Devices WG**. Quality, productivity, accessibility: Rust can change the embedded industry for the better. Let's get this process started in 2018! Join us at [https://github.com/rust-lang-nursery/embedded-wg](https://github.com/rust-lang-nursery/embedded-wg) | ||
| - **Ecosystem** WG: We'll be providing guidance and support to important crates throughout the ecosystem. Drop into the [WG-ecosystem room](https://gitter.im/rust-lang/WG-ecosystem) and we'll guide you to places that need help! | ||
| - **Dev Tools Team**. There are always interesting things to tackle with developer tools (IDEs, rustdoc, Clippy, Rustfmt, custom test frameworks, and more). Drop in to [#rust-dev-tools](https://paper.dropbox.com/?q=%23rust-dev-tools) and have a chat with the team! |
This comment has been minimized.
This comment has been minimized.
fitzgen
reviewed
Mar 6, 2018
|
|
||
| ### Tooling improvements | ||
|
|
||
| Rust 2018 will see high quality 1.0 releases of the RLS (underlying much of our |
This comment has been minimized.
This comment has been minimized.
fitzgen
reviewed
Mar 6, 2018
| ### Tooling improvements | ||
|
|
||
| Rust 2018 will see high quality 1.0 releases of the RLS (underlying much of our | ||
| IDE integration story) and rustfmt (a standard formatting tool for Rust |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
bstrie
Mar 7, 2018
Contributor
Both "RLS" and "rustfmt" could use links to satisfy people's curiosity as to the scope of the projects.
fitzgen
reviewed
Mar 6, 2018
| - **WebAssembly WG**. Compiling Rust to WebAssembly should be _the_ best choice for fast code on the Web. Check out [rust-lang-nursery/rust-wasm](https://github.com/rust-lang-nursery/rust-wasm) to learn more and get involved! | ||
| - **CLI WG**. Writing CLI apps in Rust should be a frictionless experience – from finding the right libraries and writing concise integration tests up to cross-platform distribution. Join us at [https://github.com/rust-lang-nursery/cli-wg](https://github.com/rust-lang-nursery/cli-wg) and help us reach that goal! | ||
| - **Embedded Devices WG**. Quality, productivity, accessibility: Rust can change the embedded industry for the better. Let's get this process started in 2018! Join us at [https://github.com/rust-lang-nursery/embedded-wg](https://github.com/rust-lang-nursery/embedded-wg) | ||
| - **Ecosystem** WG: We'll be providing guidance and support to important crates throughout the ecosystem. Drop into the [WG-ecosystem room](https://gitter.im/rust-lang/WG-ecosystem) and we'll guide you to places that need help! |
This comment has been minimized.
This comment has been minimized.
killercup
reviewed
Mar 6, 2018
| Rust], reaching print as well. | ||
|
|
||
| [trpl]: https://doc.rust-lang.org/nightly/book/second-edition/ | ||
| [Programming Rust]: https://www.google.com/search?q=programming+rust&ie=utf-8&oe=utf-8&client=firefox-b-1-ab |
This comment has been minimized.
This comment has been minimized.
| - **Ownership system improvements**, including making borrowing more flexible | ||
| via “non-lexical lifetimes”, improved pattern matching integration, and | ||
| more. | ||
| - **Trait system improvements**, including the long-awaited impl Trait syntax |
This comment has been minimized.
This comment has been minimized.
| [blitz]: https://blog.rust-lang.org/2017/05/05/libz-blitz.html | ||
| [Rust API guidelines book]: https://github.com/rust-lang-nursery/api-guidelines | ||
|
|
||
| **Web site improvements** |
This comment has been minimized.
This comment has been minimized.
| irc.mozilla.org network. | ||
|
|
||
| - **WebAssembly WG**. Compiling Rust to WebAssembly should be _the_ best choice for fast code on the Web. Check out [rust-lang-nursery/rust-wasm](https://github.com/rust-lang-nursery/rust-wasm) to learn more and get involved! | ||
| - **CLI WG**. Writing CLI apps in Rust should be a frictionless experience – from finding the right libraries and writing concise integration tests up to cross-platform distribution. Join us at [https://github.com/rust-lang-nursery/cli-wg](https://github.com/rust-lang-nursery/cli-wg) and help us reach that goal! |
This comment has been minimized.
This comment has been minimized.
killercup
Mar 6, 2018
Member
Can you fix the double space and adjust the link to [rust-lang-nursery/cli-wg](https://github.com/rust-lang-nursery/cli-wg)? Thanks! :)
| - **WebAssembly WG**. Compiling Rust to WebAssembly should be _the_ best choice for fast code on the Web. Check out [rust-lang-nursery/rust-wasm](https://github.com/rust-lang-nursery/rust-wasm) to learn more and get involved! | ||
| - **CLI WG**. Writing CLI apps in Rust should be a frictionless experience – from finding the right libraries and writing concise integration tests up to cross-platform distribution. Join us at [https://github.com/rust-lang-nursery/cli-wg](https://github.com/rust-lang-nursery/cli-wg) and help us reach that goal! | ||
| - **Embedded Devices WG**. Quality, productivity, accessibility: Rust can change the embedded industry for the better. Let's get this process started in 2018! Join us at [https://github.com/rust-lang-nursery/embedded-wg](https://github.com/rust-lang-nursery/embedded-wg) | ||
| - **Ecosystem** WG: We'll be providing guidance and support to important crates throughout the ecosystem. Drop into the [WG-ecosystem room](https://gitter.im/rust-lang/WG-ecosystem) and we'll guide you to places that need help! |
This comment has been minimized.
This comment has been minimized.
petrochenkov
reviewed
Mar 6, 2018
| - **Trait system improvements**, including the long-awaited impl Trait syntax | ||
| for dealing with types abstractly. | ||
| - **Module system improvements**, focused on increasingly clarity and reducing | ||
| complexity. |
This comment has been minimized.
This comment has been minimized.
petrochenkov
Mar 6, 2018
The non-marketing version: Experimentation with module system is happening, nobody knows how it will affect learnability, clarity and complexity.
This comment has been minimized.
This comment has been minimized.
|
Just to copy over a comment from an earlier draft: would love to see sample code in here. This roadmap gives us a chance to jump start people looking forward to the epoch, and to catch the eye of people who haven't seen Rust in a while. Let's show 'em what it'll be able to do |
jonathandturner
reviewed
Mar 7, 2018
| - **Network services**. Rust’s reliability and low footprint make it an | ||
| excellent match for network services and infrastructure, especially at high | ||
| scale. | ||
| - **CLI apps**. Rust’s portability, reliability, ergonomics, and ability to |
This comment has been minimized.
This comment has been minimized.
jonathandturner
Mar 7, 2018
Contributor
Let's expand CLI before we use the acronym, as not everyone will be familiar with it
jonathandturner
reviewed
Mar 7, 2018
| IDE integration story) and rustfmt (a standard formatting tool for Rust | ||
| code). We will continue to improve Cargo by stabilizing custom registries, | ||
| public dependencies, and a revised profile system. We’re also expecting further | ||
| work on [Cargo build system integration], [Xargo integration], and [custom test |
This comment has been minimized.
This comment has been minimized.
jonathandturner
Mar 7, 2018
Contributor
The "Xargo integration" is going to be a merger right? Maybe "merging with Xargo".
This comment has been minimized.
This comment has been minimized.
|
https://internals.rust-lang.org/t/epoch-vs-era/6941 re: epoch/era naming. |
bstrie
reviewed
Mar 7, 2018
| programming support. | ||
|
|
||
| In addition, we anticipate a few more major features to stabilize prior to the | ||
| epoch release, including **SIMD**, **custom allocators**, and **macros 2.0**. |
This comment has been minimized.
This comment has been minimized.
bstrie
Mar 7, 2018
Contributor
These bolded terms might be asking for links to RFCs/tracking issues.
liigo
reviewed
Mar 9, 2018
| [Programming Rust]: https://www.google.com/search?q=programming+rust&ie=utf-8&oe=utf-8&client=firefox-b-1-ab | ||
| [Rust By Example]: https://rustbyexample.com/ | ||
|
|
||
| **Language improvements** |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
I've pushed an update which addresses the vast majority of comments here, and renames from "epoch" to "edition". |
glaebhoerl
reviewed
Mar 11, 2018
| via “non-lexical lifetimes”, improved pattern matching integration, and more. | ||
| - **Trait system improvements**, including the long-awaited `impl Trait` syntax | ||
| for dealing with types abstractly. | ||
| - **Module system improvements**, focused on increasingly clarity and reducing |
aturon commentedMar 6, 2018
No description provided.