5 ms·
First, I did not say anywhere in my reply, "as easy as Cargo". I said "similar to Cargo." Huge difference. C has been around for over 50 years. It predates man
by nanolith 3y ago
First, I did not say anywhere in my reply, "as easy as Cargo". I said "similar to Cargo." Huge difference.
C has been around for over 50 years. It predates many of the modern "everything including the kitchen sink" style of language platforms. It has spread across so many platforms and uses that a Cargo like integration is not going to happen.
But, this does not mean that build, package, and install tools don't exist. If you want me to provide you with a single tool to rule them all, well, that's impossible for the reasons I listed above. But, depending on which platforms you care about and which features you want, there are plenty of existing tools.
If your goalpost is "change C to be like Rust and have a single build tool", then that's impossible. If your goalpost is "find me a tool that does X, Y, and Z", then there that is certainly possible. There are Cargo clones for C/C++ that work just fine.
- jerf 3y agoWhile less aggressively "motte & bailey" then the sibling reply from PH95VuimJjqBqy, you basically proved my point rather than disproving it. You can't name a single tool that is as easy as cargo. I know that's because if you do there will be a dozen replies from users of that tool going "Oh, my, no it was quite difficult to set up, ultimately didn't work for us, and we had to abandon it for this other tool." I do not understand the mindset that believes that if you explain why a problem is hard, it is somehow no longer hard, or somehow it no longer "counts". Yes. C is a sprawling multi-decade monster that never started out with a good build tool because it was just too early in history for that to be the sort of concern it is now. I certainly wouldn't dream of claiming there aren't reasons C is complicated to build, even ones that are generally good when you consider the entire history of the project. The world would not be better off if we had somehow waited for C to be perfect before using it, because it is precisely the act of using C that has taught us the ways to improve other languages. I credit the platform for that, I do not deduct points. However, none of that changes the fact that it is a bear to build anything non-trivial in C, and the simple act of reading a list of your tool options is literally already harder than "cargo build". I basically don't believe by assertion that there are tools that can solve this with just a relatively dainty (by C standards) little declarative file and a single command execution. I'm sure they have a "happy path" that looks like that but as soon as I leave it it'll explode in complexity, and I'm basically guaranteed to leave it at some point for any non-trivial project.
- PH95VuimJjqBqy 3y agoI'm going to recommend everyone ignore this poster, just don't reply to them. They're not going to accept anything other than "yes, you're right jerf" and any attempt to do so is going to be met with squawking about motte and bailey fallacy because they believe internally they've found the perfect defense. it's not worth engaging.
- kerkeslager 3y agoSo basically you recommend everyone ignore them because they disagree with you? It's strange that you think this post is you "not engaging".
- PH95VuimJjqBqy 3y agooh snap, you totally got me... https://en.wikipedia.org/wiki/Paradox_of_tolerance https://en.wikipedia.org/wiki/Paradox_of_tolerance
- kerkeslager 3y agoIf you don't think it's helpful to engage, put your money where your mouth is, and don't engage, i.e. stop posting. Note I'm saying if you don't think it's helpful to engage. I don't have any objections to you posting. It just makes you look a bit silly to keep engaging while claiming that engaging isn't worthwhile. I'm really not sure what relevance you think that link has--I'm not seeing any particular intolerance happening here. Disagreement != intolerance.
- PH95VuimJjqBqy 3y agoI'm not surprised you don't understand the point.
- nanolith 3y agoIf you're going to put words in my mouth, then there's no need for me to respond any further. If you are genuinely curious about build systems in any language, I can certainly help you. But, if this is the "Cargo is the best vs all others" debate, kindly count me out. I don't care. Cargo is fine if you're doing Rust work. If you're using other languages or platforms, there are plenty of excellent alternatives. This sort of Rust proselytizing -- on an article about C of all things -- is why so many perceive the Rust community as being toxic. You might think you're helping to spread the glory of Rust, but that's not how you are coming across. Note that I'm not even comparing the merits between the two languages. If you like Rust, write software in Rust. If you like building your Rust projects in Cargo, have at it.
- kerkeslager 3y ago> If your goalpost is "change C to be like Rust and have a single build tool", then that's impossible. If your goalpost is "find me a tool that does X, Y, and Z", then there that is certainly possible. There are Cargo clones for C/C++ that work just fine. My goal is to be able to build my project with as little effort as possible. "Effort" includes evaluating different tools and reading their documentation. When selecting a language to write a new project in, the history of the language isn't something I care about.
- nanolith 3y agoIf your goal is "I want to use Cargo and nothing else because that would require effort to learn to type a different command", then use Cargo. But, there are similar build and package systems for C. Cargo is nothing special.
- kerkeslager 3y ago> If your goal is "I want to use Cargo and nothing else because that would require effort to learn to type a different command", then use Cargo. That's not my goal, and you know that. > But, there are similar build and package systems for C. The reason you aren't naming one is that they obviously aren't similar in ways that matter.
- nanolith 3y ago> That's not my goal, and you know that. Didn't you just say that you didn't want to read about any other build system, as that would involve effort? Uh... okay. > The reason you aren't naming one is that they obviously _aren't_ similar in ways that matter. Or, as I said previously, I'm not interested in endorsing build tools I haven't used, because I'm not in the market for a cargo clone. They exist. Plenty of folks I know are happy with one or another. Build tools are not difficult to write. As with the article, if you don't like existing build tools, spend an afternoon writing your own. It's a little graph theory and job management.
- 3y ago