In a blog post called "Learn Perl" on his blog, "Content Considered Harmful", Jonathan Rockway writes:

As an aside, Stack Overflow's
reputation system is slowly killing
the site. In an effort to gain
reputation points, people are
answering questions that they admit to
not knowing the answer to. It seems
like every answer in the Perl section
starts off with the phrase, "I don't
know Perl, but..."

Do you think the above observation is correct? If yes, is the reputation system at fault? What could be changed to fix this?

Don't know if your posting this here has changed their status, but all three of those answer have negative votes; that suggests to me the system is working.
–
Timothy CarterJul 13 '09 at 14:21

They've always had negatives :) I was never suggesting the system wasn't working, merely pointing out the only cases where "I don't know perl but" was used.
–
Ian ElliottJul 13 '09 at 14:24

1

I can provide examples where similar "I don't know X but..." answers have received upvotes and/or been accepted, which balances things out significantly.
–
Jon SkeetJul 13 '09 at 14:24

Yes there are several of those that I found Jon. I wasn't trying to suggest the system was broken, just pointing out the only cases where the original authors argument could be validated. I agree with the general consensus that everything is working as it should in this regard.
–
Ian ElliottJul 13 '09 at 14:28

15 Answers
15

It's not an issue. If the answer is incorrect or too vague, people should down-vote that answer. That's the reason the voting/rep system works so well, it almost guarantees the best answer will be the highest or one of the highest voted answers.

Nonsense. If you don't give a good answer, you don't get substantial reputation. Somebody could fool a couple people, but you're not going to get a reputation of considerable value by falsely claiming to know answers to technical questions.

Seriously, I spend my time in C# tag where I feel the answers to good, specific questions are quite good, and bad answers are quickly pointed out. For tags with less traffic I believe it would be more likely for this to become an issue. However, I believe, in that case, that the issue lies with the voting and not with the reputation system itself. If you don't know answer is correct/helpful, then you shouldn't be upvoting it.

BS, really. There have been plenty of times that I answered a question about a programming situation without knowing the specific language being discussed. I have enough experience with algorithms that I can offer information about how to solve the problem, even if I don't know the exact syntax.

In the spirit of full disclosure, it would simply be a nice courtesy to start my post with, "I do not know Pearl, but..."

I think it's more a side-effect of the expertise included in the community. Stack Overflow has a lot of qualified people answering questions for .NET and other Microsoft technologies, because it was seeded from readers of two Microsoft-centric blogs. It also has qualified people answering questions on other topics, but not quite as many. Therefore, questions on the other topics may not get answered quite as quickly.

Now, if someone who works primarily in C# notices an unanswered Perl question with an obvious mistake, they are likely to post their solution. But because they don't work in perl every day they may qualify their answer a bit, because maybe they're missing something subtle.

The genius of Stack Overflow is that this isn't a bad thing. If they're right, the original asker does a facepalm and gets their answer faster. If they're wrong, the answer gets voted down (or at least not voted up) and no real harm is done.

Who wants to wade through 6 answers by people posting because they want to hear themselves talk? If you don't know Perl, maybe don't say anything until a few minutes have passed...
–
jrockwayJul 13 '09 at 21:31

Reputation is what drives SO. There are trade-offs in such a system. One of the downsides is that sometimes people will just post BS to try to get a few points here and there. However, the fact that others are motivated to provide better answers (for more reps) and even more others are motivated to vote on answers (you even get a badge for voting ;-) means this downside is reduced drastically compared to the UseNet or other web sites.

There is no system in which everyone will behave perfectly (however it is defined). SO's rep system helps promote better answers (and consequently, better answerers as well, but that is a side effect) regardless of how people behave.

"Reputation is what drives SO": Disagreed. There are (should I say "have been?") plenty of active forums out there that don't have any kind of reputation whatsoever. Sure, reputation boosts SO participation but is hardly what drives SO. Take SO in some other industry (even with reputation) and you'll see it fail in most of them. Reputation, along with other factors, such as the style of questions, answers, tags, comments are what make SO unique but none of them are the driving force behind SO. I think the real driving force are the traits of people in the programming community.
–
LeakyCodeJul 13 '09 at 17:18

Programmers are also people. As such, they are also influenced by incentives. How many programming forums are there with 87,500 users and where you can get meaningful answers and those answers can benefit future seekers of wisdom. Now, the subject matter helps because most programming related issues, as opposed to those related to the law, economics, politics or even fashion modeling, have clear, concrete answers, but the incentives provided by the reputation system are what drive SO.
–
Sinan ÜnürJul 13 '09 at 22:01

Reputation is a pain until you get about 50, and can up/down-vote and comment, and I think that early speed bump is the biggest problem with rep.

Regarding "I don't know Perl...", sometimes you can spot errors in the approach taken, or the implementation of an algorithm, without needing to know the language's syntax, or libraries. I answer questions on Server Fault with an approach that will work on any Unix, when a platform specific answer would be better, but not portable.

I think the time before you hit rep 50 or 100 is good as it helps to hone ones SO skills; proper questions, proper answers. I don't think it's a problem, I think it encourages better content
–
Jeff YatesJul 13 '09 at 14:31

I agree that it teaches you how the site works. It also separates the dedicated from the curious passers by. That means you have to have seen the value in the site before you put in the effort.
–
pgsJul 13 '09 at 14:57

I read the blog post by Jonathon, I frequent the Perl tag, and I really don't know where he's coming from.

First of all, the particular example he's talking about follows Damian Conway's Perl Best Practices: using $_ whether it's "understood" or not. Conway reasons that it is not clear which functions take $_ as a default argument, so one suggestion is to always be explicit. Despite that I disagree with a fair amount of PBP (and Conway never wrote it to be the One True Standard), I would never consider its recommendations "an example of doing it wrong". 1) Conway put so much thought into it, and 2) he really got the ball rolling as far as examining if there are common flaws that make Perl as unreadable as some of its reputation suggests.

Second, I haven't really seen that many accepted answers that begin "I don't know Perl, but". The case mostly happens with "cross-posted" questions with a number of language tags, as when somebody asks "does LanguageX have Perl feature Y?" And in many of those cases, there are NO answers yet from the more established Perl experts, so I don't see wanting to be helpful as reputation panhandling.

All fair enough - except that I'm not sure that Perl golf is the right place to worry about best practices.
–
TelemachusJul 13 '09 at 14:41

@Telemachus: I believe that's all part of Jonathon's hasty take. Searching "[perl] golf ucfirst", returns no hits. The search google.com/… only turns up links to "What's the point of Perl Golf?" question. In addition, the examples that I've been able to scare up never overtly mention golf. There are reasons to write compressed expressions that have nothing to do with "golf". That's his take, so PBP and golf don't fit, then it's possible that it never was intended as golf.
–
AxemanJul 13 '09 at 15:42

As I mentioned in my post, I think code-golf on a site where people can't even build the simplest programs on their own is inappropriate. But, there are many posts that begin, "Golfing this down..." that don't golf the code down very well. That annoys me.
–
jrockwayJul 14 '09 at 18:53

Plus if anything: the problem would be in people upvoting mediocre or bad answers, not in having a rep-system per se.

As mentioned in some of the other answers, not knowing for sure if the answer is correct for that specific programming language doesn't neccesarily make it a wrong answer since not all questions are language specific.

Though, they can't guarantee knowing the right answer the first few times, after getting rep from these subjects they won't keep saying they don't know it if their previous answers were correct. Problem solved if you ask me.

I wrote the article in question. I stand by my general observations, but the points about reputation brought up here are excellent. There is not much reputation to gain from answering questions incorrectly but quickly, and yet people do it anyway. I wonder what is causing this effect; there seems to be no gain, but I guarantee you that if someone asks a Perl question, there will be 5 answers in 5 minutes that are all wrong. It is interesting and confusing. (As to how this kills the site, I know a number of people who are active contributers in the Perl area who are just turned off by this. The see a question, formulate an answer, and then see six slightly-wrong variants. This just makes them mad, and they move on to something less frustrating. It happens to me, for sure.)

Also, some people noted that the golf example from my article was not referencing any one specific post on SO. That's true, but there is a lot of stuff in the Perl section that starts, "Golfing this down a bit, ..." and then they proceed to do a poor job golfing it down. Again, shutting up would be a lot better than posting, don't you think?

If they are wrong, down-vote them. I would go ahead and just post the answer, regardless of how many answers there are. Actually if you are a well known Perl programmer, you will be more likely to get voted up, even if your answer is not the best one.
–
Brad GilbertJul 13 '09 at 23:42

Thank you very much for participating. I hope you'll take some time to point out a few examples, preferably of different kinds. For instance, I expect there are many "I don't know Perl, but I know regular expressions, so I'll answer", but fewer, "I don't know Perl, but I know how C++ does libraries so I'll answer a CPAN question".
–
John SaundersJul 13 '09 at 23:45