4 ms·
> ...it has a much better user story around build & package/module/library management Cargo sure does, but support for rust outside of cargo is much, much wors
by humanrebar 4y ago
> ...it has a much better user story around build & package/module/library management
Cargo sure does, but support for rust outside of cargo is much, much worse than equivalent support for C and C++. It doesn't matter for self-contained projects like simple Makefile ones, but at large scales, moving everything to cargo doesn't seem reasonable right now. Maybe eventually?
- eddsh1994 4y agoThis is the one issue I personally have with C++. How do I `pip install boost`?
- humanrebar 4y agoNote that a lot of the pip projects are implemented in C++. You install packages for the environment you are targeting. A lot of folks use Conan or vcpkg for pure C++ dev.
- eddsh1994 4y agoSorry, I was using `pip` as an example of an easy build system to use to get stuff working. Is it as simple as `conan install boost` within a projects dir?
- humanrebar 4y agoIt's more or less as easy and hard as pip dependency management, yes. Including deducing sets of valid version ranges and so on.
- Volt 4y agoUse your OS's package manager.
- flumpcakes 4y agoI strongly agree with this. Everyone complains about C and C++ build systems, but they were designed to be easy to begin with. Then projects grew in size and there wasn't a "standard" way to do things so people came up with their own systems. We now seem to be standardizing around CMake for better or worse. On the flip side, Rust makes the usual cause very easy, with the ability to to pull in code with a single line in a config file (I would argue this is probably a double edged sword - I've some some Rust projects that look like they're a javascript project with a thousand dependencies). I think the "simple" case of compiling Rust without cargo is more complicated and has a higher friction. Perhaps this isn't fair, complaining about Rust's build system when you're off the beaten path because it's difficult with loose footing. C++ doesn't really have a beaten path (Well since C++17 it's slowly become CMake), that's why all the routes are so well trodden...