Hacker News new | ask | show | jobs
by nixpulvis 1010 days ago
I’m curious, given the current state of Rust, what can be done to help with these issues?

Most of them seem related to the way the community organizes itself, and what they value at any given moment.

What would a non-anemic STD look like? Could the STD be broken into smaller pieces while still being a standard library?

Async has been a point of major frustration for me from the onset. Some people love it some hate it. Is there a good way to appease both sides? What can be done to make the libraries more generic between the two? Having to reimplement everything for async is a nightmare.

As for feature bloat in general. I agree, Rust still feels sorta like beta software, but it’s also matured a lot. I’m not sire there’s an optimal rate of feature addition, though I do wish existing feature polish was a higher priority over new stuff. Funny, I was just thinking about this last night while I was stuck trying to fall asleep.

1 comments

>> What would a non-anemic STD look like?

More like the standard libraries found in C++, Ada, Go, or Python.

Why can't Rust do something like C++ does with Boost?

If everyone is using a given crate (for example, serde) why not "adopt" it into the standard library? Give the maintainer a plaque that looks cool and a small fee for initial adoption and a recurring stipend for continued maintenance.

The crate becomes official, gets guaranteed maintenance and there is less need to reinvent the wheel or worry that a good crate will go unmaintained or have issues.

Note that boost is also not the C++ standard library.

A few people have tried to make boost-like meta-packages in Rust over the years, but in practice, people don’t use them, and they die out.

Also, like, serde's main maintainer is also a member of the libs team, so it being moved into the standard library meaning more maintenance doesn't really make sense to me.

>> Note that boost is also not the C++ standard library.

I know, but many components that are now in the C++ standard library were previously in Boost or were heavily influenced by / inspired by Boost:

https://stackoverflow.com/questions/59912393/boost-libraries...

Similar events also happened in Java 8 with the Joda time library:

https://www.joda.org/joda-time/

>> serde's main maintainer is also a member of the libs team, so it being moved into the standard library meaning more maintenance doesn't really make sense to me.

I did not know that.

I was just using serde as an example of a widely-used crate that feels essential enough to be included in the Rust standard library.

At what point does a third-party crate become so useful that it might be considered for inclusion in the Rust standard library?

Is there a process for adding crates to the Rust standard library?

If so, how do such crates get nominated and approved?

The process is roughly the same as the boost one: the rust project maintains a number of packages outside the standard library, such as regex. Projects may graduate from the community to being owned by the project. And then, if the team decides that it's a good decision, a package owned by the project can move into the standard library.

It happens pretty rarely because there is not much advantage to doing so, but the path does exist.