6 ms·
I like many things about Rust, but Cargo alone is what initially got me started with it. I was in the process of setting up a fresh C++ project with vendored de
by dikaiosune 10y ago
I like many things about Rust, but Cargo alone is what initially got me started with it. I was in the process of setting up a fresh C++ project with vendored dependencies, and it was just an absolute nightmare. In contrast, it took me about 5 minutes to get a Rust project set up with comparable dependency complexity.
- akhilcacharya 10y agoSpeaking of which, is there any good package management system for modern C/C++?
- dikaiosune 10y agoI've had biicode recommended to me (https://github.com/biicode/biicode https://github.com/biicode/biicode), but I haven't tried it yet. EDIT: Also worth noting that a common response I've heard to "I need a better manager for my dependencies" is "you have a system package manager for a reason."
- McP 10y agoWhat do they say when you reply "Windows"?
- dikaiosune 10y agoI think it goes without saying that those with that sort of response tend not to use Windows, and also often seem to assume that a perfectly in-order Linux/Unix install is the only way to build software.
- FreeFull 10y agoAnd also that you're fine with creating a package for any dependency that doesn't have one.
- dikaiosune 10y agoCreating, maintaining, shepherding through distro processes, etc. All so you can then eventually build your own code.
- McP 10y agoConan seems to have appeared recently but I haven't yet tried it myself. https://www.conan.io/ https://www.conan.io/
- rsaarelm 10y agoThe Meson build system http://mesonbuild.com/ http://mesonbuild.com/ seems to have a package manager like dependency management system.
- imron 10y agoIt's also very quick and easy to get projects up and running. For *nix based platforms Meson is now my go to build manager for c++ projects.
- ingve 10y agoConan is the most promising one, they just released a new version: http://blog.conan.io/2016/05/03/New-conan-release-0-9.html http://blog.conan.io/2016/05/03/New-conan-release-0-9.html Arne Mertz has a Vagrant box for people who want to experiment with a "4C" development environment (Clang, Cmake, Conan, Clion). https://github.com/arnemertz/Xubuntu1604_DevBox https://github.com/arnemertz/Xubuntu1604_DevBox
- boris 10y agoCheck out https://build2.org https://build2.org
- fungos 10y agoEven if it doesn't has too much support, I highly recommend fips: https://github.com/floooh/fips https://github.com/floooh/fips I have been using it, adding some libs and even contributing some changes. You should really give it a try!
- deleted 10y ago[deleted]
- qznc 10y agoI understand that old languages like C++ or Java have problems providing a single package manager. It seems that newer languages have roughly equivalent services. Are there any big differences between Cargo and Python/Go/D/Ruby/Javascript/etc?
- steveklabnik 10y agoIt depends on how you define "big". Cargo is closest to Bundler + rubygems, but with some aspects of npm.
- tatterdemalion 10y agoI find cargo easier to use than bundler or npm. Specifically I never deal with "environment hell" where some config hasn't been picked up and I'm pulling in the wrong version of a dependency or the language or whatever. This is partly because of the way cargo is designed, but its also helped a lot by the fact that Rust generates statically linked binaries in one build instead of being a continuous interpreter process.
- haddr 10y agoI wouldn't say Java has this problem. Look at Maven for instance. Then look back at Crates, you will notice how many common solutions they share. On the other hand I see that Crates solves the problem of dependency when 2 different version of the same library are used across the project. Maven doesn't solve that and it's painful. However this seems a bigger problem that just a package manager I suppose.
- mavelikara 10y agoJava has Maven Repository. This can be use from within Ant (Ivy), Maven, Gradle, sbt etc. Both Ruby and Python are almost as old, if not older than Java. JavaScript is only slightly younger.
- riffraff 10y agonotice that some of the really old ones (perl, tex) have had package managers for a really, really long time. I think linux (*nix?) vs non-linux heritage might have something to do with it.