-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2018 roadmap #231
2018 roadmap #231
Conversation
cc @rust-lang/core |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good, just a few comments
_posts/2018-03-08-roadmap.md
Outdated
--- | ||
layout: post | ||
title: "Rust's 2018 roadmap" | ||
author: "Aaron Turon" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
_posts/2018-03-08-roadmap.md
Outdated
|
||
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, I have been running the "era" wording past some people and they all vastly preferred it to "epoch"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
_posts/2018-03-08-roadmap.md
Outdated
_both_ fresh and re-builds. Compiler performance should not be an obstacle to | ||
productivity in Rust 2018. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✂️ the excessive whitespace
_posts/2018-03-08-roadmap.md
Outdated
the epoch release. | ||
|
||
[Cargo build system integration]: https://github.com/rust-lang/rfcs/pull/2136 | ||
[Xargo integration]: https://github.com/japaric/xargo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think this should link to rust-lang/cargo#4959, as it's way less confusing
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we link these names to their announcement posts, so if people want to get involved they have a foot in the door?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
_posts/2018-03-08-roadmap.md
Outdated
|
||
## Entering the Rust 2018 epoch | ||
|
||
**This year, we will deliver _Rust 2018_, marking the first new era in Rust programming since 1.0**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can say "1.0, or Rust 2015”? That way it'll be easier to discuss this.
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, I thought we might be switching to "era" over epochs...
_posts/2018-03-08-roadmap.md
Outdated
### Compatibility across epochs | ||
|
||
**TL;DR: Rust will continue its stability guarantee | ||
of [hassle-free updates to new versions][stability]**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure how this will render, but it looks somewhat odd.
_posts/2018-03-08-roadmap.md
Outdated
|
||
[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: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should be consistent with epoch/era...
_posts/2018-03-08-roadmap.md
Outdated
epoch = "2018" | ||
``` | ||
|
||
in your Cargo.toml to _opt in_ to the new epoch for your crate. Doing so may |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did we decide on a flag for rustc? Otherwise I think we'll get pushback from people who want to not use cargo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cargo will indeed pass -C epoch=2018
to rustc (currently -Zepoch=2018
)
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems like the wrong URL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably be http://shop.oreilly.com/product/0636920040385.do
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which -> how many, let's be positive
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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?
_posts/2018-03-08-roadmap.md
Outdated
- **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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the wrong URL, and I'd probably avoid linking this at all perhaps.
_posts/2018-03-08-roadmap.md
Outdated
- **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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The IRC links here point to Dropbox Paper >_>
_posts/2018-03-08-roadmap.md
Outdated
@@ -0,0 +1,221 @@ | |||
--- | |||
layout: post | |||
title: "Rust's 2018 roadmap" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is actually a yaml document, so the should be ascii quotation marks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The apostrophe is what I had in mind. It should not be a part of YAML syntax.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
_posts/2018-03-08-roadmap.md
Outdated
## Community | ||
|
||
**Connect and empower Rust's global community**. We will pursue | ||
internationalization (specifically: translation) as a first-class concern, and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"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?
_posts/2018-03-08-roadmap.md
Outdated
- **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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add Cargo to the list of tools to work on
_posts/2018-03-08-roadmap.md
Outdated
|
||
### Tooling improvements | ||
|
||
Rust 2018 will see high quality 1.0 releases of the RLS (underlying much of our |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest:
Rust Language Server (RLS)
instead of just "RLS".
_posts/2018-03-08-roadmap.md
Outdated
### 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should "rustfmt" be in a <code>
, like rustfmt
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both "RLS" and "rustfmt" could use links to satisfy people's curiosity as to the scope of the projects.
_posts/2018-03-08-roadmap.md
Outdated
- **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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other "WG"s are bold, but this one is not.
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably be http://shop.oreilly.com/product/0636920040385.do
_posts/2018-03-08-roadmap.md
Outdated
- **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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe put "impl Trait" in back ticks
_posts/2018-03-08-roadmap.md
Outdated
[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** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be a 2nd level headline, too?
_posts/2018-03-08-roadmap.md
Outdated
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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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! :)
_posts/2018-03-08-roadmap.md
Outdated
- **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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WG not bold (inconsistent)
_posts/2018-03-08-roadmap.md
Outdated
- **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The non-marketing version: Experimentation with module system is happening, nobody knows how it will affect learnability, clarity and complexity.
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 😄 |
_posts/2018-03-08-roadmap.md
Outdated
- **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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's expand CLI before we use the acronym, as not everyone will be familiar with it
_posts/2018-03-08-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "Xargo integration" is going to be a merger right? Maybe "merging with Xargo".
https://internals.rust-lang.org/t/epoch-vs-era/6941 re: epoch/era naming. |
_posts/2018-03-08-roadmap.md
Outdated
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**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These bolded terms might be asking for links to RFCs/tracking issues.
_posts/2018-03-08-roadmap.md
Outdated
[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** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be "### Language improvements"
I've pushed an update which addresses the vast majority of comments here, and renames from "epoch" to "edition". |
_posts/2018-03-12-roadmap.md
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/ly//
No description provided.