5 ms·
>People adopted Cargo because it is nice to use. I don't think it's that simple and I want people to really dissect what the "nice to use" means. I contend th
by jasode 7y ago
>People adopted Cargo because it is nice to use.
I don't think it's that simple and I want people to really dissect what the "nice to use" means. I contend that a fully funded backend ("crates.io" on Heroku+S3) is essential to make cargo a viable tool. A programming language ecosystem needs a Schelling Point (or a disproportionately influential C++ vendor dictating industry-wide tool usage) and the C++ ecosystem doesn't have that.
We can't replay history with an alternate events since cargo and crates.io came together but let's try a thought experiment and think of cargo in isolation:
Let's say we believe cargo's nice usage syntax (and not crates.io) is the what really drives adoption. Ok, let's hypothetically clone the github/cargo project and modify it to C++ (e.g. process ".cxx", "cpp" files instead of ".rs" files. I don't think the existence of a "nice tool" on the client side will matter for C++ programmers. There are still no sponsors paying for a C++ repository with disk+bandwidth that everyone will upload their code to. Swift.org has Apple as its sponsor. Who's the logical entity to fund an industry-wide C++ repo?
[0] https://github.com/rust-lang/cargo https://github.com/rust-lang/cargo
- steveklabnik 7y ago> There are still no sponsors paying for a C++ repository with disk+bandwidth that everyone will upload their code to. This already does exist: Conan, for example. And cppget for build2.
- jasode 7y ago>This already does exist: Conan, for example. And cppget for build2. But is there consensus that conan.io or cppget have become industry-wide Schelling Points? For example, I searched both repos and neither have popular dependencies like Qt nor ffmpeg. Therefore, "conan install ffmpeg/4.2.2" isn't going to work. Thus, large non-trivial projects would only be able to use a package manger like Conan/cppget for some dependencies but not all. In Javascript land, npm is so pervasive that it can be "one-stop shopping" for fetching all js dependencies. Likewise, not only is someone paying the light bills for "crates.io", it also has instant canonical status within the Rust community. Conan doesn't have comparable mindshare in the C++ ecosystem. This is a common interpretation of the question "Why doesn't C++ have a package manager?"