Skip to content

Commit a270f30

Browse files
authored
Improve h2 positions
Some of these were rendering in-line with the bulleted lists. I think this should fix that.
1 parent 48ade7e commit a270f30

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

_posts/2017-12-21-rust-in-2017.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ There’s not room in a single post to cover everything that happened, but we’
1212

1313
# The goals for 2017
1414
## Rust should have a lower learning curve
15+
1516
- **Books**
1617
- [The Rust Programming Language](https://doc.rust-lang.org/stable/book/second-edition/) is largely in the final stages of editing. Steve and Carol are grateful for everyone who has read the drafts and provided feedback! [Preorder the print edition from No Starch Press](https://www.nostarch.com/rust), scheduled for release in May 2018.
1718
- [Programming Rust](http://shop.oreilly.com/product/0636920040385.do) by Jim Blandy and Jason Orendorff is available in print as of December 21, 2017!
@@ -20,7 +21,9 @@ There’s not room in a single post to cover everything that happened, but we’
2021
- [RustBridge workshops](https://rustbridge.github.io/) are focused on getting underrepresented people into Rust. Ashley Williams has vastly improved [the workshop curriculum](https://rustbridge.github.io/a-very-brief-intro-to-rust/#1) this year, and we’re planning on having a teacher training in early 2018. The curriculum is available for anyone to use, as long as events are only called RustBridge if they focus on underrepresented folks. See more about RustBridge in 2017 under the Mentorship goal!
2122
- **Language improvements**
2223
- The [Ergonomics Initiative](https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html) saw a large number of RFCs tackling rough edges across the language; the [Impl Period](https://blog.rust-lang.org/2017/09/18/impl-future-for-rust.html) then saw almost all of these RFCs implemented. These improvements cover ownership ([more flexible lifetimes](https://github.com/rust-lang/rfcs/pull/2094), [smoother pattern matching](https://github.com/rust-lang/rfcs/pull/2005), [more concise elision](https://github.com/rust-lang/rfcs/pull/2115)), the module system ([revamping paths for greater clarity](https://github.com/rust-lang/rfcs/pull/2126), [allowing nested imports](https://github.com/rust-lang/rfcs/pull/2128)), the trait system ([`impl Trait`](https://github.com/rust-lang/rfcs/pull/1951), [trait aliases](https://github.com/rust-lang/rfcs/pull/1733)) and more. **You can get an overview of all of these changes, and their current status, on [the tracking issue](https://github.com/rust-lang/rust/issues/46889)**. Altogether, these changes should eliminate or mitigate many of the most common learnability and ergonomics hazards that have been surfaced since Rust 1.0.
24+
2325
## Rust should have a pleasant edit-compile-debug cycle
26+
2427
- **The `cargo check` workflow**
2528
- Cargo [now offers](https://blog.rust-lang.org/2017/03/16/Rust-1.16.html) a `check` subcommand which can be used to speed up the edit-compile cycle when you’re working on getting your code to pass the compiler’s checks. This mode, in particular, skips producing executable artifacts for crates in the dependency tree, instead doing just enough work to be able to type check the current crate.
2629
- **Incremental recompilation**
@@ -31,6 +34,7 @@ There’s not room in a single post to cover everything that happened, but we’
3134
![Incremental recompilation benchmarks](/images/2017-12-Retro/incr-bench.png){:class="center"}
3235

3336
## Rust should provide a solid, but basic IDE experience
37+
3438
- Rust now has solid IDE support in IntelliJ and via the Rust Language Server (RLS). Whether you prefer a fully-featured IDE or a more lightweight editor with IDE features, you can boost your productivity by taking advantage of great Rust integration.
3539
- **IntelliJ**. Rust has official support in [JetBrains' IDEs](https://blog.jetbrains.com/blog/2017/08/04/official-support-for-open-source-rust-plugin-for-intellij-idea-clion-and-other-jetbrains-ides/) (IntelliJ IDEA, CLion, WebStorm, etc.), which includes:
3640
- Finding types, functions and traits across the whole project, its dependencies and the standard library.
@@ -60,7 +64,9 @@ There’s not room in a single post to cover everything that happened, but we’
6064
- That discussion culminated in a decision to [order crates by the number of downloads in the last 90 days](https://github.com/rust-lang/crates.io/issues/704), and surfacing of more information for people to use when doing their evaluation.
6165
- Some of the additional information now available for crate authors to display on crates.io includes badges for CI status, [maintenance status](https://github.com/rust-lang/crates.io/issues/704), [code coverage](https://github.com/rust-lang/crates.io/issues/706), [GitHub statistics](https://github.com/rust-lang/crates.io/issues/705).
6266
- Most importantly, [crates.io now displays a crate’s README on the crate page](https://github.com/rust-lang/crates.io/issues/81)! Crate authors are encouraged to use this capability to provide getting started documentation with a small example of what it looks like to use this crate, because good documentation and examples were among the most-mentioned positive signals that people take into account when evaluating crates.
67+
6368
## Rust should be well-equipped for writing robust servers
69+
6470
- **Futures and Tokio**
6571
- Much of the story for Rust on the server has revolved around its async I/O story. The futures crate [was introduced](http://aturon.github.io/blog/2016/08/11/futures/) in late 2016, and the Tokio project (which provides a networking-focused event loop for use with futures) [published its 0.1](https://tokio.rs/blog/tokio-0-1/) early in 2017. Since then, there’s been significant work building out the “Tokio ecosystem”, and a lot of feedback about the core primitives. Late in the year, the Tokio team proposed a [significant API revamp](https://github.com/tokio-rs/tokio-rfcs/pull/3) to streamline and clarify the crate’s API, and work is underway on a book dedicated to asynchronous programming in Rust. This latest round of work is expected to land very early in 2018.
6672
- **Async ecosystem**
@@ -69,16 +75,21 @@ There’s not room in a single post to cover everything that happened, but we’
6975
- Thanks to a heroic community effort, Rust also saw [experimental generator support](https://github.com/rust-lang/rfcs/pull/2033) land in 2017! That support provides the ingredients necessary for `async`/`await` notation, which is [usable today](https://internals.rust-lang.org/t/help-test-async-await-generators-coroutines/5835) on nightly. Further work in this area is expected to be a high priority in early 2018.
7076
- **Web frameworks**
7177
- Finally, sophisticated web frameworks like [Rocket](https://rocket.rs/) (sync) and [Gotham](http://gotham.rs/) (async) have continued to evolve this year, and take advantage of Rust’s expressivity to provide a robust but productive style of programming.
78+
7279
## Rust should have 1.0-level crates for essential tasks
80+
7381
- **Libz Blitz**. The library team launched the [Libz Blitz](https://blog.rust-lang.org/2017/05/05/libz-blitz.html) this year, a major effort to vet and improve a large number of foundational crates and push them toward 1.0 releases. It was a massive community effort: we performed a crowd-sourced “crate evaluation” every two weeks, fully vetting a crate against a clear set of guidelines, assessing the issue tracker, and sussing out any remaining design questions. While not all of the assessed crates have published a 1.0 yet, they are all very close to doing so. The full list includes: [log](https://github.com/rust-lang-nursery/log/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), [env_logger](https://github.com/sebasmagri/env_logger/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), [rayon](https://github.com/nikomatsakis/rayon/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), [mio](https://github.com/carllerche/mio/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22help%20wanted%22%20), [url](https://github.com/servo/rust-url/issues/319), [num_cpus](https://github.com/seanmonstar/num_cpus/issues/55), [semver](https://github.com/steveklabnik/semver/issues/139), [mime](https://github.com/hyperium/mime/labels/help%20wanted), [reqwest](https://github.com/seanmonstar/reqwest/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy), [tempdir](https://github.com/rust-lang-nursery/tempdir/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), [threadpool](https://github.com/rust-threadpool/rust-threadpool/issues/86), [byteorder](https://github.com/BurntSushi/byteorder/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22help%20wanted%22%20), [bitflags](https://github.com/rust-lang-nursery/bitflags/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22help%20wanted%22%20), [cc-rs](https://github.com/alexcrichton/cc-rs), [walkdir](https://github.com/BurntSushi/walkdir/issues/47), [same-file](https://crates.io/crates/same-file), [memmap](https://crates.io/crates/memmap), [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22help%20wanted%22%20), [flate2](https://github.com/alexcrichton/flate2-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
7482
- **API Guidelines**. A great by-product of the Libz Blitz is the [API Guidelines](https://rust-lang-nursery.github.io/api-guidelines/) book, which consolidates the official library team API guidance as informed by the standard library and the Libz Blitz process.
83+
7584
## Rust’s community should provide mentoring at all levels
85+
7686
- We ran 5 [RustBridge Workshops](https://rustbridge.github.io/) in 2017, in Kyiv, Ukraine; Mexico City, Mexico; Portland, OR, USA; Zurich, Switzerland; and Columbus, OH, USA! RustBridge workshops aim to get underrepresented folks started in Rust. Attendees get an introduction to syntax and concepts, work on some [exercism](http://exercism.io/) exercises, and build a web application that delivers emergency compliments and crab pictures. We hope to scale this program and help more folks run more workshops in 2018!
7787
- The [Increasing Rust’s Reach program](https://blog.rust-lang.org/2017/06/27/Increasing-Rusts-Reach.html) brought people with skills from other areas (such as teaching) and with different experiences into Rust so that we can improve in areas where the community is missing these skills and experiences. The participants have helped immensely, and many are planning to continue helping in the Rust community going forward. We’re glad they’re here! Here are some blog posts about the experience:
7888
- Anna Liao: [Increasing Rust’s Reach: Porting a Python application to Rust](https://medium.com/@aliao22/increasing-rusts-reach-porting-a-python-application-to-rust-60eaf92d891b)
7989
- Ryan Blecher: [Increasing Rust's Reach: Afterthoughts](http://notryanb.github.io/increasing-rusts-reach.html)
8090
We learned a lot in the first incarnation of this program, and we have plans for another round in 2018!
8191
- Last but not least, we also launched the first Rust [`impl Period`](https://blog.rust-lang.org/2017/09/18/impl-future-for-rust.html). This was an ambitious effort to simultaneously help get a lot of new people contributing to the Rust ecosystem while also getting a lot of things done. To that end, we created 40+ working groups, each with their own focus area, leaders, and chat channel. These groups identified good “entry points” for people who wanted to contribute, and helped mentor them through the changes needed. This event was a wild success and resulted in changes and contributions to all areas of Rust, ranging from the compiler internals to documentation to the ecosystem at large. To those of you who participated, a great big thank you — and please keep contributing! To those of you who didn’t get a chance, don’t worry: we hope to make this a regular tradition.
92+
8293
# 2018
8394

8495
We’ll be spinning up the 2018 roadmap process in the very near future; watch this space!

0 commit comments

Comments
 (0)