A Good Reputation
Well, I just hit 1000 points on StackOverflow. I do have to say that I really love that site. It has given me so many insights into how other programmers think, what other technologies are out there, and how to solve common (or not-so-common) programming problems.
But there is one thing that really bugs me. My best answers are not my highest-rated ones. In fact, for some of my best answers, I’ve gotten practically no recognition. That’s a little frustrating. Especially when some of my highest rated answers are vague statements about general design and development of software: things that are easily repeated, and are too vague to be of much direct use.
There’s two main reasons for this problem:
- Vague answers about general design are easier to verify as correct than detailed research into APIs and standards. More verifiable means more votes.
- Questions with popular tags seem to get more traffic. There are roughly 10x as many questions and users for C++ as for Qt. More traffic means more votes.
The traffic problem is the worse of the two, as well. It has a terrible side-effect of funnelling a large volume of ignorant C++ developers into questions tagged both ‘c++’ and ‘qt’. Horrific things will occasionally happen when a general C++ developer attempts to answer a Qt-specific question. Surprisingly, even veteran members will attempt to answer questions they clearly have no understanding of.
This becomes a serious problem, because there are a lot of C++ developers looking through the question. I suspect they outnumber Qt developers nearly 10:1, leading to bad voting. My worst example of this would be in a question asking whether it is safe to create a QLayout on the stack. The original accepted answer was so painfully wrong I had to write a detailed answer citing documentation to contradict its mistaken assertion. But, despite that, the correct answer still has just 1 upvote and the falsehood has 5. Five upvotes for this? Really?
Every QObject deletes its children. Only objects with no parent can have automatic storage.
Alas, that sounds reasonable. Thus, it was highly upvoted by numerous people who did not know any better. That’s the danger of a ‘c++’ tag on your Qt question. Of course, voting sometimes does pull through. Another question I saw about throwing exceptions across signal/slot connections had some confused comments and a confused answer (all posted by vanilla-C++ developers), but the rating system ultimately did its job.
So, StackOverflow has its warts, and it’s clearly not fair. But generally speaking, it works. Things usually turn out ok in the end, and it is a fantastic resource even for those who do not participate in its community.