← Back to context

Comment by kerkeslager

10 months ago

> Clearly not, because the features you enumerate with respect to Cargo aren't unique to Rust or non-existent in C.

You literally said that one of the features I want from a build system isn't possible in C. You said, "None of them _could_ be the standard, because C is used on thousands of different platforms."

Having a standard build system is extremely useful.

> > Have you even used a proof assistant?

> Only daily. But, let's keep those unfounded assumptions coming...

I won't say I haven't made some incorrect assumptions in this conversation, but in this case, I assumed nothing; I asked a question.

This is the sort of thing I'm referring to when I say that you respond with vitriol, by the way--this sarcasm wasn't necessary to make your point.

> > To be clear what point I'm making: these tools are amazing, feats of engineering, but they're not really viable for most C projects.

> Ah, but CBMC is completely viable for any C project, and proof assistants are very much on the way toward viability for general adoption right now. I should know, because that's kind of an area of specialty for me.

Well, I genuinely hope you succeed, and maybe you will in the near future, but from the perspective of someone trying to use proof assistants, I'm telling you, you haven't succeeded yet. Maybe it's because the best proof assistant isn't publicized enough for me to have found out about them, maybe it's because the problem is intractably hard, I'm not sure.

I also suspect you're a bit overstating the viability of CBMC, but it's been a few years since I looked at the CBMC tools available so I'll grant the possibility there have been strides taken since then, and if this Rust thing doesn't work out maybe I'll take another look.

> See above: it's called a zero-configuration build tool. Your ignorance of their existence should not be construed as evidence of cargo's uniqueness.

Cargo is a zero configuration build tool, but it's not just a zero configuration build tool.

Notably, zero-configuration build tools don't do what I described--you condescendingly (vitriolically?) assumed I haven't tried zero-configuration build tools for C. I have, and they do not do what I described--you have not at all responded to what I said.

There does not exist a tool that you can go into an average C codebase and run it and expect reasonable results, because C codebases aren't all built with the same assumptions--for a zero-configuration tool to work reliably you have to build from the beginning with the same configuration assumptions as that tool. And even if you do that, the "zero configuration" falls apart as soon as you introduce a dependency, because they likely didn't make the same assumptions as the ZC build tool.

The benefit to having a build system like Cargo that is built in tandem with the language and everyone writing the language uses it, which means that everyone using the language writes it with the same assumptions as the zero-configuration build system. This means when you stumble upon a random project in that language, you already know how to build it without reading a lot of documentation.

And as an aside: "go build" works for Go just as well as "cargo build" does for Rust, for the same reasons. You're the only one making this a Rust vs. C debate. I wasn't going to respond to that because I'm trying (perhaps unsuccessfully) to focus on the technology discussion, but I'm a bit tired of having to skip past you (vitriolically) ranting about how toxic Rustaceans are attacking C every other paragraph.

> The reminder is rather silly, as we've just exposed that you haven't put in the "effort" to understand the tools that exist for C.

I won't claim to know every build tool that exists for C, but I will say that I've looked into plenty in my time.

As for your snidely (vitriolically?) disparaging my not putting effort into learning tools: I actually put a lot of effort into learning tools, but I insist that effort not be wasted. There are a lot of reasons learning a new tool is not a good idea. Will it be maintained 5 years from now, or am I learning a skill that will soon be useless? Is it widely used, or will I only be able to use it in niche situations? Is it stable?

> > > Have you even used a proof assistant?

> > Only daily. But, let's keep those unfounded assumptions coming...

and

> This is the sort of thing I'm referring to when I say that you respond with vitriol, by the way--this sarcasm wasn't necessary to make your point.

I see. Sarcasm and ill tone is fine when you use it, but not when I respond to it in kind. I'm not interested in Sealioning. Goodbye.

Post whatever replies you want and "win" this pointless "debate". I don't care to play this stupid game. Good day.

  • > Sarcasm and ill tone is fine when you use it, but not when I respond to it in kind.

    Not at all. Use all the sarcasm you want; I'm a big boy and I can handle it.

    And I'm not denying I used some unnecessary sarcasm myself.

    But you said, "So far, the only people in this thread replying with vitriol are you and jerf." And I just wanted to make you aware that that's not quite correct.

    You're not the innocent victim in this conversation that you think you are.

    • Sorry... had to come back for one last reply.

      > But if a person responds to any criticism of C with vitriol, one begins to think that person is invested in a belief that C is perfect.

      That was before I started responding in kind.

      > You're not the innocent victim in this conversation that you think you are.

      Oh, I was. You and jerf certainly started the rude behavior. Expecting me to sit back and take it, and then pouncing on me for "vitriol" for responding in kind is... wait for it... SEALIONING.

      https://en.wikipedia.org/wiki/Sealioning

      Push the envelope, then call the other out for pushing back, as if you're the injured party.

      Either way, this is far outside of acceptable behavior on HN. I'm disengaging for good this time. I offered you useful advice. You tried to turn this into a silly Rust debate that no one wanted. Then, you act like the aggrieved party because no one wants it.