Stream: project leads (public)

Topic: Five Years of Rust


XAMPPRocky (Apr 25 2020 at 11:29, on Zulip):

With all that's happening in the world you would be forgiven for not knowing that in less than three weeks (May 15th), Rust will be five years old! (since 1.0) I was wondering if we wanted to do some kind of "Five Years of Rust" post on the blog? Something that highlights the major changes and new features/projects that we've worked on.

BatmanAoD (Kyle Strand) (Apr 25 2020 at 16:19, on Zulip):

I do think that would be a good idea!

BatmanAoD (Kyle Strand) (Apr 25 2020 at 16:22, on Zulip):

Given the recent "Rust changes too fast" discourse, I think a good way to frame a blog post about major changes over the years might be to emphasize that 1.0 represented a promise of backwards compatibility and "enough features to get stuff done", not a "finished product" as such.

Josh Triplett (Apr 25 2020 at 16:46, on Zulip):

And that we have indeed met that promise of backward compatibility.

XAMPPRocky (Apr 26 2020 at 07:10, on Zulip):

This is the outline I have so far.

Josh Triplett (Apr 26 2020 at 09:57, on Zulip):

@XAMPPRocky I would be happy to supply something about the Rust 2018 module system, and perhaps some other things.

XAMPPRocky (Apr 26 2020 at 17:07, on Zulip):

@Josh Triplett Thanks! I'll start on a expanded outline this week and post it as a dropbox paper here.

BatmanAoD (Kyle Strand) (Apr 26 2020 at 17:21, on Zulip):

Let's be sure to highlight editions as a means of maintaining backwards compatibility...the editions story is still kind of an amazing achievement in my eyes

Josh Triplett (Apr 26 2020 at 17:21, on Zulip):

Likewise.

BatmanAoD (Kyle Strand) (Apr 26 2020 at 17:22, on Zulip):

(especially considering how few papercuts there are around importing between editions)

Josh Triplett (Apr 26 2020 at 17:22, on Zulip):

I don't specifically want to reference python as a counterexample, but the fact that we can seamlessly mix crates from multiple editions is incredible.

BatmanAoD (Kyle Strand) (Apr 26 2020 at 17:44, on Zulip):

Agreed, the Python community does not need us to add insult to injury... and in their defense I think they did about as well as they could with the situation they had

BatmanAoD (Kyle Strand) (Apr 26 2020 at 19:57, on Zulip):

Should we have anything future-looking in the post?

BatmanAoD (Kyle Strand) (Apr 26 2020 at 19:57, on Zulip):

I mean more specific than "we're excited to see how the next five years go"

XAMPPRocky (Apr 26 2020 at 20:19, on Zulip):

Well maybe we talk about the immediate year, I don't know about anything beyond that. What with the current situation.

BatmanAoD (Kyle Strand) (Apr 26 2020 at 20:19, on Zulip):

It might be good to try to balance "we have exciting changes we still want to make" against "we want Rust to reach a point of stability/maturity where major changes are rare."

I don't know if listing the specific major changes we still want to make would be a good way to do that. But I do think that there really are a fairly limited number of these types of major changes, and once they're finished, further changes to the language could be more minor, for several years.

I suppose I would define a "major change" here as "something that makes Rust _look_ different, in such a way that makes reading and understanding Rust more difficult for someone who is familiar with 'classic' Rust but not with the new feature." I think this is probably what people are primarily concerned about [citation needed] when they say that Rust is changing too fast.

The features that I think we definitely want that fit this description are:

I'm not sure about others. Would the core language be essentially "finished" for the time being (module ergonomics improvements and other "minor" features) if we had those?

BatmanAoD (Kyle Strand) (Apr 26 2020 at 20:19, on Zulip):

What current situation?

XAMPPRocky (Apr 26 2020 at 20:19, on Zulip):

The pandemic.

BatmanAoD (Kyle Strand) (Apr 26 2020 at 20:19, on Zulip):

Ah.

Josh Triplett (Apr 26 2020 at 22:24, on Zulip):

BatmanAoD (Kyle Strand) said:

Agreed, the Python community does not need us to add insult to injury... and in their defense I think they did about as well as they could with the situation they had

I think, with the benefit of 20/20 hindsight, Python could have done much better than they did with Python 3, and in particular, tried for a "within the same interpreter" approach to 2 and 3. But they didn't necessarily know that that would be such a problem.

Charles Lew (Apr 27 2020 at 15:26, on Zulip):

One thing i personally would really really want to add to that feature list is some kind of structural typing, 1. To properly support generics over the tuples, and providing manipulation functions. 2. To stablize the Fn* traits. 3. Realizing the possibilities described in RFC2584.

Charles Lew (Apr 27 2020 at 15:28, on Zulip):

And while not directly language level, dtolnay/cxx is none-the-less important.

XAMPPRocky (Apr 27 2020 at 16:21, on Zulip):

Here’s what I have so far. I decided to collapse the changes sections into a single timeline that highlights major changes in Rust.

https://paper.dropbox.com/doc/Five-Years-of-Rust-Outline-lEPlBFdGyG8bP2ckgkof1

nikomatsakis (Apr 27 2020 at 17:41, on Zulip):

@XAMPPRocky this is an awesome idea

nikomatsakis (Apr 27 2020 at 17:43, on Zulip):

I think it's a good idea to focus on a historical overview more than discussing "upcoming plans" in that much detail

Nell Shamrell-Harrington (Apr 27 2020 at 18:16, on Zulip):

This looks great so far!

BatmanAoD (Kyle Strand) (Apr 27 2020 at 18:18, on Zulip):

:tada:

Santiago Pastorino (Apr 27 2020 at 18:48, on Zulip):

all this is great :clap: :clap: :clap:

RalfJ (May 02 2020 at 09:10, on Zulip):

@oli I emailed @XAMPPRocky a quote about Miri; let me know what you think

RalfJ (May 02 2020 at 09:11, on Zulip):

also @XAMPPRocky not sure if there will be links? might be worth making the first "Miri" also a link to https://github.com/rust-lang/miri/

XAMPPRocky (May 02 2020 at 09:11, on Zulip):

Yes, there will be links. It's just that dropbox paper doesn't use regular markdown for links so I decided to to leave them out of the draft for now.

oli (May 02 2020 at 09:12, on Zulip):

should I have gotten that quote, too?

oli (May 02 2020 at 09:12, on Zulip):

I can't find any emails

RalfJ (May 02 2020 at 09:22, on Zulip):

XAMPPRocky said:

Yes, there will be links. It's just that dropbox paper doesn't use regular markdown for links so I decided to to leave them out of the draft for now.

okay. just making sure as that link was not in the email I sent you, I only realized later ;)

RalfJ (May 02 2020 at 09:23, on Zulip):

@oli I got an email titled "Five Years Of Rust" on April 28th. It starts "Hello Rust Team Leads", and you are a miri lead, so I guess you probably should have gotten it but maybe something went wrong?

oli (May 02 2020 at 09:50, on Zulip):

Ah, I misunderstdood, I didn't know the quote was already in the doc

oli (May 02 2020 at 10:12, on Zulip):

It's great. Just a technical not: the [find and fix bugs] link isn't actually hyperlinked

RalfJ (May 02 2020 at 10:21, on Zulip):

it was in my email to them, this is a dropbox paper thing I think

nikomatsakis (May 05 2020 at 11:45, on Zulip):

@XAMPPRocky exporting markdown for links works I think..?

XAMPPRocky (May 05 2020 at 11:50, on Zulip):

@nikomatsakis It does, it's importing/pasting in markdown with reference links e.g [text][link-key] that I've run into trouble with.

I've started work on the PR to the blog anyway, as I realised there's missing styling on the blog for blockquotes that needs to be added for the article.

nikomatsakis (May 05 2020 at 12:17, on Zulip):

ah yeah

nikomatsakis (May 05 2020 at 12:17, on Zulip):

I tend to prefer hackmd for stuff like this, in part for these reasons

nikomatsakis (May 05 2020 at 12:17, on Zulip):

too bad the commenting system isn't as good though

Joshua Nelson (May 05 2020 at 19:58, on Zulip):

BatmanAoD (Kyle Strand) said:

(especially considering how few papercuts there are around importing between editions)

I second this, upgrading bindgen to 2018 was a simple as running cargo fix. https://github.com/rust-lang/rust-bindgen/pull/1769

XAMPPRocky (May 05 2020 at 22:47, on Zulip):

PR is now up at https://github.com/rust-lang/blog.rust-lang.org/pull/580

Last update: Jun 05 2020 at 23:15UTC