3 ms·
What do you dislike about it?
by benrutter 2y ago
What do you dislike about it?
- enriquto 2y agoquadratic dependency encouragement
- xigoi 2y agoIt encourages adding hundreds of dependencies to every project, taking up gigabytes of storage, making compilation slow and resulting in bloated binaries with potential vulnerabilities.
- johnnyjeans 2y agothe only vcs it supports is git
- steveklabnik 2y agoThe —-vcs flag to cargo new supports git, hg, pijul, and fossil. It’s true that dependencies from a repository only supports git right now. Part of the issue there is just like, the VCS integration wasn’t don’t in a principled way (it happens!) and so it’s not simple. See here for more: https://github.com/rust-lang/cargo/issues/12102 https://github.com/rust-lang/cargo/issues/12102
- johnnyjeans 2y agono darcs? and this is why i really loathe language package managers, because they're prone to this kind of thing. assuming one has no problems with the opinions made in a language itself, when it has a tightly bound package manager embedded into it's ecosystem (using rust without cargo is like pulling teeth) you have an entire extra hurdle of far more rigid and controversial opinions to deal with. package managers are maybe next to shells with "it's several orders of magnitude harder to make a good one than it is to write a compiler." with the dozens, possibly hundreds of package managers i've touched over the years, there's only been one that i'd call "good". the absolute worst ones have always been language package managers. at this point i've basically written off the concept, even system package managers.
- steveklabnik 2y agoI’m not sure I’ve ever heard of a Rust programmer using Darcs. Anyone likely to would use Pijul.
- johnnyjeans 2y agowell that's the thing, you never know. certainly if i ever used rust to a serious degree, i'd not stop using darcs. however right now that'd necessitate bypassing the whole package management part of cargo, at least for my own libraries (and i suffer from a terminal case of NIH syndrome) i don't think it's reasonable to assert that my own quirks and tastes are explicitly tended to. and that's why ideally you just give the programmer space to do whatever, hence why it's so hard. vcs is just one single point of contention. this isn't unique to rust by the way. cargo is arguably a bit better than the dune experience, it's a bit more flexible and feels simpler. arguably system package managers are better here, since they're effectively opt-in by choosing what distribution of what operating system you use. language package managers don't have that luxury.
- steveklabnik 2y agoWhat I mean is that in open source, things only get done by people motivated to do them. Nobody has ever even asked for darcs support: https://github.com/rust-lang/cargo/issues?q=is%3Aissue%20state%3Aopen%20darcs https://github.com/rust-lang/cargo/issues?q=is%3Aissue%20sta... So the lack of darcs isn’t because the Cargo folks think it’s bad or something. Just that things don’t get added just because. Re quirks, sure, that’s why rustc and cargo are different. You don’t have to use Cargo. Meta does not, the Linux kernel does not.
- johnnyjeans 2y agosure sure, and what i mean is that ideally the package manager can be made to use any arbitrary vcs system by the programmer. that's all. early on choices were made with cargo's development to where it's non-trivial to make something like that work, you touched on that briefly. it's a good example of why making a package manager is hard, there are so many aspects to them and it's really easy to engineer yourself into a corner to where any individual aspect of them might be flawed. typical software problem, expounded by the fact that package managers are deceptively complicated. doubly expounded by what i mention with language package managers not having the "opt-in" inherent quality of system package managers, not in the same way. ideally it'd just have an interface you can write a module against. maybe they've added that? i sure hope they didn't have to hardcode the options of that new vcs switch ;) > that’s why rustc and cargo are different indeed. but rust analyzer really likes you to use cargo. i know it provides facilities for specifying a json in place of cargo.toml, which is great, but my limited experience with that saw me running into some weird issues (maybe they've been fixed, maybe it was just a skill issue.) also i will say cargo does at least let you specify local paths as dependencies relatively painlessly, so it gets points for that escape hatch.