I'm seeing way, way, waaaaaay too many commenters here who apparently came away from this thinking that "defensive writing", as described by the author, has anything to do with not offending people. That's totally orthogonal to what the author is talking about. He's talking about the tendency some people have to take everything as literally as possible, finding some logical hole in an argument based on a very literal (and often wrong) interpretation, and then start stupid inflammatory debates in comment threads about it. As far as I can tell it has nothing to do with political correctness, although people saying so really deliciously proves his point.

The root of it is sometimes that an author didn't express something very well. In general though, it's because some readers are predisposed to find the most literal and uncharitable interpretation of something they read, which they then use as an excuse to try to show up the author in the comments. These types of commenters are the types of people who don't assume good faith on the part of other people, and when they see something that doesn't make sense to them their first thought is that the person who wrote it is an idiot, rather than to step back and take a moment to think about what the author might've meant. These types of commenters are looking for excuses to publicly disagree with someone, they're not trying to participate in an exploratory discussion in which the participants don't automatically assume the worst about each other.

For example, what if someone made an offhand comment about C being the de facto standard for systems programming for the last few decades? On certain forums, it is pretty much guaranteed that someone will chime in about all of the various kernels, research OSes, etc. that have been and are currently being written in languages other than C, and proceed to argue with the poster about this fact. Of course, they're right in a sense- it's true that C accounts for < 100.000% of systems programming. But it's pointless to argue about as it's based on a strawman from an overly literal interpretation of the original statement.

And it pretty much goes downhill from there. Overly Literal Internet Guy #2 then has to chime in and attack Overly Literal Internet Guy #1 over some other strawman based on an uncharitable interpretation of what #1 wrote.

Point being, the entire discussion gets derailed by a handful of people who refuse to give each other the benefit of the doubt and just really want to argue. We could have been talking about why C is such a juggernaut in the systems programming world, or what other languages might make sense for systems programming, or any number of other interesting digressions. But noooooo, we can't have nice things because a few people just want to scream at the author and each other about willful, overly literal misinterpretations of what was written. As a result, many writers will warp their style to put hedges and defensive qualifiers around every single statement to avoid all discussion getting derailed by Overly-Literal-Internet-Guys-Who-Think-Everyone-Is-Else-Is-An-Idiot. By the time all of those qualifiers and hedges go in, it's possible that the point of the original statement is diluted or lost entirely.

And of course, in what I've just written, I myself am no doubt guilty of assuming bad faith on the part of other people and am just as guilty of the behavior I'm complaining about. I get it, I really do. This is a type of cognitive bias that everyone has, including myself. There are no easy answers when it comes to understanding human interactions or our own mental processes, we can only try our best. I only take issue with people who think they are infallible and don't even try to play devil's advocate with themselves when thinking about things they care about.