Tom Butler's programming blog

Why no comments?

So here's a question I get asked from time to time: Why don't you allow article comments?

It's a very valid question so I'll answer it publically. Debate is good and constructive criticism is great.

The main reason is time. As much as I'd like to spend more time on this blog, work and other commitments mean I cannot devote as much time to this blog as I wish I could. As you can see from my update frequency (4-5 articles a year), this blog isn't exactly a full time commitment! Answering comments and filtering out spam is not something I can commit enough time to in order to make it worthwhile. In my opinion, leaving a comment unanswered for 3-4 weeks isn't useful to readers.

In addition, most blog comments do not fall into the category of constructive criticism or open questions. Here's a few types of comment which are detrimental to blog posts:

  • "Nice article!"
  • Spam
  • People missing the point and starting an argument about an insignificant detail which has very little to do with the content of the post
  • People without enough understanding of the topic trying to start a debate.

The top two are pointless for readers. Nobody wants to go through a comments section and see spam or fluff meaningless posts making those comments entirely worthless.

The second two are a little more poignant. As my blog posts generally try to convey specific concepts or best practices, people who miss the point or point out that I used global variables (which I do to keep the code simple) in some example code and try tell me I don't know what I'm talking about, even when I generally address it in the post.

The last point is people with just enough knowledge to be dangerous. As an example, on facebook I pointed out that someone should not be using Kali Linux as their daily driver and that's why Steam games won't work. Despite the Kali site literally saying the same thing, the person entered an argument with myself and several other users for about 10-15 posts. We couldn't change his mind, he's probably still trying to play League of Legends on Kali Linux.

This kind of comment appears on programming articles all the time and they generally boil down to "That's not the way I would have done it so it must be wrong" or worse, "That's not the way my favourite framework does it so it must be wrong". Comments like this add nothing to the discussion because they divert away from the topic by moving the discussing towards trying to explain why Symfony/Laravel/Zend/Whatever's approach is great. Usually once you unpack these comments it's because it's what people are used to and very rarely results in a proper discussion of the merits of each approach.

Consider Evolution vs. Intelligent Design. To anyone with an understanding of science, there's no debate there, however, because Intelligent Design proponents frame it as a debate, anyone trying learn who stumbles upon a comments section with a debate thinks there is a debate when there isn't. They will think there are two sides.

My readers are programmers at a variety of skill levels and by entertaining a "debate" in a comments section it makes it more difficult for those who are trying to understand the point of the post because they're then presented with often non-sequitur and straw-man arguments such as (This article sucks, it uses $_POST directly!) by other people who miss the point and have posted the comments section.

Of course as a relative novice, it's difficult to work out what's going on when presented with this seemingly contradictary information. Many of my readers can distinguish this for themselves, but a lot cannot. Consider knowing nothing of science and looking at the Evolution vs. Intelligent Design "debate", you have a lot of catching up to do before you can begin to form your own opinions, even though, once you do, you can see the arguments for Intelligent Design are ridiculous.

I get many emails, I'll paraphrase a few from the last week:

Re: Are Static Methods/Variables bad practice? - You contradicted yourself by saying statics are generally bad then presenting two cases where they're not problematic n.b. I provided two exceptions to where they won't cause you problems.

Re: The $this variable isn't as Object-Oriented as you think it is - Why do you expect inheritance to solve that problem? It doesn't work that way! n.b. I showed exactly why inheritance can't be used to solve the problem, I never said it did. I said it seems as if inheritance could be a solution but here's why it's not.

Re: PHP: PSR-0: Pretty Shortsighted, Really - But PSR-0 works and everyone uses it, stop complaining! This is a perfect example of someone missing the point. It does work, but it's far from ideal.

Re: PHP: PSR-0: Pretty Shortsighted, Really - PSR-0 isn't designed to do that! Which was exactly my complaint. It's poorly designed. However, the email was framed in such a way that it was acting like they had negated the point I was trying to make... by essentially agreeing with me.

Re: Are Static Methods/Variables bad practice? - But this makes sharing a database object hard work, I need to pass it in to every class which needs it! I'd need to re-write all my constructors. Seems stupid to me.

These kind of emails, if they were in comments, would detract from the point of the posts by adding confusion and contradiction by people who show that they don't understand what I'm trying to say. Now, that is likely in a large part my own fault and I apologise for that. Perhaps I didn't express my point in the best way possible, perhaps I could have provided better examples. However comments such as stop complaining! detract from the point of the article without actually adding anything meaningful to the discussion or add confusion to anyone coming to learn the specific concept but creating a debate on a pedatic point like use of globals..

Not understanding is fine. Asking for clarification is fine. Pointing out mistakes is fine. Genuine debate about concepts is fine. However, making a point of missing the point and then presenting it as a refutation is detrimental to the understanding of other readers.

These kind of comments are not beneficial to other people because people who may be struggling to grasp the concept or understand it but need to think about or test it themselves will see the argumentative comments and wonder if it's their own understanding that's wrong rather than the commenter who has missed the point and framed their question as a debate.

That said, a lot of my readers email me with well thought out, insightful and genuine questions and critiques. These would be perfect for a comments section because they encourage further discussion and exploration of the topic.

So why don't I just moderate the comments?

In my opinion that's worse than having no comments at all. Being seen as only allowing comments you "approve of" is considerably worse than having having the same rule for everyone. To those whose comments I don't post, it seems like I'm not posting their comment because they disagreed with me. Even if it was because they missed the point and it would not have been helpful to other readers.

I'm not the only one who dislikes comments. The Popular Science website shut off comments a few months ago and their reasons are strong and similar to mine but back up their reasoning with a proper study:

"But even a fractious minority wields enough power to skew a reader's perception of a story, recent research suggests. In one study led by University of Wisconsin-Madison professor Dominique Brossard, 1,183 Americans read a fake blog post on nanotechnology and revealed in survey questions how they felt about the subject (are they wary of the benefits or supportive?). Then, through a randomly assigned condition, they read either epithet- and insult-laden comments ("If you don't see the benefits of using nanotechnology in these kinds of products, you're an idiot" ) or civil comments."

Please keep emailing me questions but hopefully this helps you understand why I decided not to allow comments on my posts.

- Tom