Your point is valid in general though. If it's a more niche problem, finding the right library might not be obvious and users might give up.
Your point is valid in general though. If it's a more niche problem, finding the right library might not be obvious and users might give up.
If you have one or more dependencies that also need to parse JSON, and they choose differently, you could have cargo building multiple JSON libraries and including parts of them in your application, which would increase the bloat of the resulting binary.
This is of course a problem with any language and not Rust specific, but in an ideal world there would be one best way for doing most things included in the standard library and everyone would just use those.
But your point stands - in an ideal world it would be nice if there was one obvious way to do it, and that obvious way was in the standard library.
Then why not put it in the standard library?
If it is mature enough, then why not add it so anyone can use it without having to dowload it everytime? So that new users to Rust are not forced to search through all the possible candidates to find the best answer?
If it is not ready, sure wait until it is or use something better.
In the industry I work in, software needs to be mature, stable, and boring. I would love to start using Rust at work, but it is not ready in terms of maturity and stability because of reasons like these.
Rust needs a standard.
Rust needs multiple mature implementations.
Rust needs a standard library that covers enough "everyday" use cases that you don't have to download half of crates.io to accomplish everyday tasks
Perhaps it will be ready in 10 to 15 years.
Until then, we will keep building things in C and C++.