Skip to content
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

Merged
merged 3 commits into from Mar 12, 2018

Conversation

@aturon
Copy link
Member

aturon commented Mar 6, 2018

No description provided.

@aturon

This comment has been minimized.

Copy link
Member Author

aturon commented Mar 6, 2018

@steveklabnik
Copy link
Member

steveklabnik left a comment

looks good, just a few comments

---
layout: post
title: "Rust's 2018 roadmap"
author: "Aaron Turon"

This comment has been minimized.

@steveklabnik

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.

@steveklabnik

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.

@joshtriplett

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.

@steveklabnik

steveklabnik Mar 6, 2018

Member

✂️ the excessive whitespace

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.

@steveklabnik

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.

@steveklabnik

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
Copy link
Member

Mark-Simulacrum left a comment

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.

@Mark-Simulacrum

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.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

Hm, I thought we might be switching to "era" over epochs...

### Compatibility across epochs

**TL;DR: Rust will continue its stability guarantee
of [hassle-free updates to new versions][stability]**.

This comment has been minimized.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

I am not sure how this will render, but it looks somewhat odd.


[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.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

We should be consistent with epoch/era...

epoch = "2018"
```

in your Cargo.toml to _opt in_ to the new epoch for your crate. Doing so may

This comment has been minimized.

@Mark-Simulacrum

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.

@nikomatsakis

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.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

This seems like the wrong URL?

This comment has been minimized.

@killercup
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.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

Which -> how many, let's be positive

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.

@Mark-Simulacrum

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.

@Mark-Simulacrum

Mark-Simulacrum Mar 6, 2018

Member

This is the wrong URL, and I'd probably avoid linking this at all perhaps.

- **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.

@QuietMisdreavus

QuietMisdreavus Mar 6, 2018

Member

The IRC links here point to Dropbox Paper >_>

@@ -0,0 +1,221 @@
---
layout: post
title: "Rust's 2018 roadmap"

This comment has been minimized.

@nagisa

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.

@tomprince

tomprince Mar 6, 2018

Member

This is actually a yaml document, so the should be ascii quotation marks.

This comment has been minimized.

@nagisa

nagisa Mar 7, 2018

The apostrophe is what I had in mind. It should not be a part of YAML syntax.

@nrc
Copy link
Member

nrc left a comment

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.

@nrc

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.

@nrc

nrc Mar 6, 2018

Member

We should add Cargo to the list of tools to work on


### Tooling improvements

Rust 2018 will see high quality 1.0 releases of the RLS (underlying much of our

This comment has been minimized.

@fitzgen

fitzgen Mar 6, 2018

Member

Suggest:

Rust Language Server (RLS)

instead of just "RLS".

### 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.

@fitzgen

fitzgen Mar 6, 2018

Member

Should "rustfmt" be in a <code>, like rustfmt?

This comment has been minimized.

@bstrie

bstrie Mar 7, 2018

Contributor

Both "RLS" and "rustfmt" could use links to satisfy people's curiosity as to the scope of the projects.

- **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.

@fitzgen

fitzgen Mar 6, 2018

Member

Other "WG"s are bold, but this one is not.

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.

@killercup
- **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.

@killercup

killercup Mar 6, 2018

Member

maybe put "impl Trait" in back ticks

[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.

@killercup

killercup Mar 6, 2018

Member

Shouldn't this be a 2nd level headline, too?

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.

@killercup

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.

@killercup

killercup Mar 6, 2018

Member

WG not bold (inconsistent)

- **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.

@petrochenkov

petrochenkov Mar 6, 2018

The non-marketing version: Experimentation with module system is happening, nobody knows how it will affect learnability, clarity and complexity.

@jonathandturner

This comment has been minimized.

Copy link
Contributor

jonathandturner commented Mar 7, 2018

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 😄

- **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.

@jonathandturner

jonathandturner Mar 7, 2018

Contributor

Let's expand CLI before we use the acronym, as not everyone will be familiar with it

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.

@jonathandturner

jonathandturner Mar 7, 2018

Contributor

The "Xargo integration" is going to be a merger right? Maybe "merging with Xargo".

@aturon

This comment has been minimized.

Copy link
Member Author

aturon commented 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.

@bstrie

bstrie Mar 7, 2018

Contributor

These bolded terms might be asking for links to RFCs/tracking issues.

[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.

@liigo

liigo Mar 9, 2018

should be "### Language improvements"

@aturon

This comment has been minimized.

Copy link
Member Author

aturon commented Mar 11, 2018

I've pushed an update which addresses the vast majority of comments here, and renames from "epoch" to "edition".

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

This comment has been minimized.

@glaebhoerl

@steveklabnik steveklabnik merged commit 18c2d69 into rust-lang:gh-pages Mar 12, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.