A truth stated passionately doesn’t become false. A falsehood stated calmly doesn’t become true. This is at the heart of why emotion is always a logical fallacy.
Everyone would be better served by using and hearing it less. Focus on the actual argument.
I am neurodivergent, so I may be missing something here. The argument seems pretty passionless. Excluding the assumption that C is unsafe, it contains purely facts.
Your reply doesn't point out the passionate component of it either, and doesn't answer my question.
> I am neurodivergent, so I may be missing something here.
Yes, you're missing the logic.
> Excluding the assumption that C is unsafe, it contains purely facts.
You think C is carcinogenic and mere exposure to it kills?
From a "purely facts" PoV, leaving all emotion aside, C runs, and has done so for a number of decades, life-critical systems, including munitions, weapons, life-support, industrial machinery and aviation.
It's only because you are married to your argument that you think comparing C to a fatal poison is "pure facts".
I interpreted the original comment as saying that C is detrimental to the long term health of a piece of software in a similar way to how asbestos is detrimental to the long term health of humans.
I don’t think there was any suggestion made that C is detrimental to human health.
Sure it is, depending on the analogy and the purpose of the analogy. An analogy also isn't always fallacious. It needs to have a faulty extrapolated assumption from the comparison.
In this particular case, the argument is that C should be replaced with something safer for similar reasons that asbestos is replaced with something safer. However, one can certainly challenge the validity of this comparison and whether there's something faulty in it.
I don't feel one way or the other because I don't work with C or other low-level languages, but it's a bit absurd to say that an analogy isn't an argument. It absolutely can be if the argument within is clear, even if fallacious.
Thanks for clarifying. I meant valid, non-fallacious argument.
More often than not I see analogies (ab)used as a tool to construct a straw man. This particular case demonstrates how analogy takes discussion away from merits and downsides of C to an emotionally charged subject of cancerogenic substances, as other commenters highlighted in this thread.
Personally, I don't think it's the commenter's fault that some others have such strong emotions to the analogy that they're distracted from the point. There's no indication that the commenter was appealing to emotion and, as others have also pointed out, making a comparison to an "emotionally charged" subject does not nullify the validity of the comparison. In fact, it's fallacious to falsely invalidate the argument based on some cherry-picked, subjective, peripheral perspective like that. In my opinion, the appeal to emotion and the derailment of the discussion is from those doing so, not the original commenter.
It seemed like just a simple, general, easily-mappable analogy that most people would get, even non-programmer laymen, that emphasizes that unsafe should be replaced with safe. Any analogy of something unsafe can be seen as "emotionally charged" if someone was personally impacted by it.
Just for sake of clarity, formal analogy is a valid, non-fallacious argument because it's based on parity of reasoning.
The original comment made a pretty good, arguably formal analogy between asbestos and C. The only way to dismiss the conclusion is if there were no alternative to asbestos, then you're kinda forced to use asbestos. This is the case for C in some contexts, like some microcontrollers that only come with C compilers. It's not generally true that we need C for much else though.
There is seldom a microcontroller that also doesn't have a Basic or Pascal compiler from https://www.mikroe.com, but naturally that is an additional cost that many would rather not care about.
"An analogical argument is an explicit representation of a form of analogical reasoning that cites accepted similarities between two systems to support the conclusion that some further similarity exists." [1]
That still doesn't point out the emotion in the comment. Your reply here would work as a reply to the root comment, but doesn't address what I am asking at all. Where is the passion?
Asbestos is an emotionally charged topic for many people, especially the many who have (primarily) older relatives who have died or are dying from cancers caused by it. The analogy is resting primarily on the appeal to that kind of emotion without actually establishing a strong logical similarity between C and asbestos.
> Asbestos is an emotionally charged topic for many people, especially the many who have (primarily) older relatives who have died or are dying from cancers caused by it.
I’ve not personally been impacted by this, but this seems reasonable.
> The analogy is resting primarily on the appeal to that kind of emotion
This seems like projection. It struck me as a perfectly legitimate analogy without any emotional correlation.
I don't know, C isn't out there causing cancer and killing people left and right. It's hyperbolic to draw that comparison. Critical systems (especially post Therac-25) that are using C are already using a subset of C, static analysis tools, and comprehensive testing that raise the quality level of actual life-and-health-impacting C programs.
EDIT: Because someone will probably make a note of it: Therac-25 wasn't written in C, but the flaws in that system and others helped lead to a massive change in the way critical systems are developed and treated. I referenced it because it's one of the most notable failures in safety-critical software systems.
It’s fine to argue that the analogy is flawed (all of them are) or that it’s irrelevant, or simply wrong.
What this entire thread is about, however, is this highly charged response to what seemed like a straightforward analogy.
> Frankly getting your knickers in a knot is emotional - the people using C are doing so for pragmatic reasons, not emotion.
> I do see comments like yours a lot - there's an emotional attachment and/or ego attached to the comment, so the argument against is very vociferous and, honestly, ugly[1].
At the end of the day it seems as though an emotional argument occurred in the eye of the beholder. This only adds even more credibility to the root comment.
A failed experiment with the Socratic method on my part.
Where does this argument end? Are we banned from using analogies containing animals because someone out there has a relative who died from a bear/shark/bee sting? Are we banned from talking about cows in a debate with vegans because someone lost a loved one when they were out hiking and got caught up in a cattle stampede? Are we banned from mentioning cars because everyone knows someone who had a traumatic car injury? By this logic you either end up molly coddling the entire world into silence because everything is a possible traumatic trigger to somebody or you declare yourself the king of acceptable debate and only the topics you approve of are acceptable because you are the chosen one anointed by the heavens.
It’s a classic reductio ad absurdum which is bizarre by nature. It shows that silencing people for discussing things you personally find upsetting is a slippery slope that leads to absurd or undesirable endpoints.
Also point out that there is nothing that can be done to fix asbestos. But C can be made safer. The three things that block that are
1 A culture that thinks API's need to always have a gotcha. See the inability to to field a safe string copy.
2 ISO commitee that thinks it's in charge of maintaining a historical artifact. Suggestions to change the language like Brights suggestions about passing arrays fail because the ISO committee thinks that's Heresy.
3 People that think C is hopeless. Usually these are people that had a bad time with it in school.
4 Idiots that think the only reason to use C is speed. Therefor any improved way of doing things that might be 10-20% slower than raw unsafe code is pointless.
Everyone would be better served by using and hearing it less. Focus on the actual argument.