2 ms·
My observation is that there is a network effect happening with Rust due to the strict ownership model at API boundaries between libraries. You can call code in
by drewm1980 5y ago
My observation is that there is a network effect happening with Rust due to the strict ownership model at API boundaries between libraries. You can call code in libraries without having to rely on your understanding of human-written documentation to get the data ownership right.
I don't think the other nice properties of Rust can explain why it's going viral when so many other fast native languages in the C family haven't. Libraries being sound internally doesn't cause a network effect, but soundness at the interfaces between libraries does. The rust ecosystem goes extremely deep in transitive dependencies, and it's not just a tree; you have many libraries that get used by many other libraries, like serde, rayon, anyhow,... and it all still manages to compile and work together almost every single time you pull some random rust project off github. You can serialize almost anything in Rust because your library authors probably include serde support for their types... because ~their dependencies did. In C++ authors are more likely to be afraid to take on an additional dependency, and roll their own little serialization thing that only works within their library. I've seen the rust ecosystem getting locked into one widespread serialization library discussed as a problem, but it's a lot better than having zero widespread serialization libraries.