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?

share|improve this question
7  
Yeah... "Nobody goes there no more; it's too crowded!" -- Yogi Berra –  Robert Cartaino Jul 13 '09 at 13:58
12  
without actual examples it's hard to take the criticism seriously. It's just hand-wavy "because I said so" –  Jeff Atwood Jul 13 '09 at 13:59
1  
Here's some examples just for fun... in reality this has only happened 3 times and in one case by a very respected user. stackoverflow.com/questions/650396/… –  Ian Elliott Jul 13 '09 at 14:14
    
    
3  
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 Carter Jul 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 Elliott Jul 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 Skeet Jul 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 Elliott Jul 13 '09 at 14:28
add comment

15 Answers

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..."

share|improve this answer
2  
@rcar s/Pearl/Perl/ unless it was a joke. –  Sinan Ünür Jul 13 '09 at 14:13
8  
Uh, yeah... a joke. Let's go with that. Hehe –  Robert Cartaino Jul 13 '09 at 14:24
1  
i got that it was a joke, if that makes you feel better –  Kip Jul 13 '09 at 14:32
    
;-) all in good humor –  Sinan Ünür Jul 13 '09 at 23:22
add comment

If your question gets answered, then upvote and hurray, all is well with the world.

If the answers provided are wrong, then don't reward them for being idiots. Eventually the correct answer will bubble up to the top.

This entire site was based off the reputation system and without it, you would have a serious decline in the number of people who stick around every day answering dozens of questions.

share|improve this answer
add comment

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.

share|improve this answer
    
I would not say very Microsoft-centric, at least in my case. Somewhat, enough to be a bias, but I moderately object to "very" –  Jeff Atwood Jul 13 '09 at 13:57
    
Bad Joel, bad! 'Very' is a word I use a lot, and I'm working on removing it from my writing anyway. –  Joel Coehoorn Jul 13 '09 at 13:59
    
Very very bad Joel! –  XMLbog Jul 13 '09 at 14:04
    
I am very disappointed. –  Jeff Yates Jul 13 '09 at 14:29
    
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... –  jrockway Jul 13 '09 at 21:31
add comment

I've answered Perl and Python questions with a sort of "Treat this answer with caution, I'm not a Perl/Python expert, but..." Heck, I've even answered Ruby questions in that way.

By answering the question, you're giving the OP something to try or investigate. Not a lot of harm done if it's wrong, but great if it happens to be right and you were using educated guesswork.

I think the benefits outweigh the downsides, but I do think it's a good idea to express your own self-doubt in the answer, so that if it doesn't help quickly the OP won't waste a lot of time on it.

share|improve this answer
11  
Wait: you've answered Ruby questions by saying, "I'm not a Perl expert, but <insert answer here>"? –  Telemachus Jul 13 '09 at 15:10
    
Isn't it a well established fact that a language fully embeds its full grokking in Jon Skeet's brain merely by Jon reading a question related to that language? –  DVK Feb 19 '10 at 14:51
add comment

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.

share|improve this answer
2  
All fair enough - except that I'm not sure that Perl golf is the right place to worry about best practices. –  Telemachus Jul 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. –  Axeman Jul 13 '09 at 15:42
    
The [golf] tag has been renamed to [code-golf]. meta.stackoverflow.com/questions/2850/the-great-tagging-reorg/… –  Brad Gilbert Jul 13 '09 at 22:27
    
If you really want Perl golf questions you could use this url stackoverflow.com/questions/tagged/perl+code-golf but most Perl Golf questions usually become Code Golf stackoverflow.com/questions/tagged/code-golf –  Brad Gilbert Jul 13 '09 at 22:30
    
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. –  jrockway Jul 14 '09 at 18:53
add comment

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.

share|improve this answer
    
"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. –  LeakyCode Jul 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ür Jul 13 '09 at 22:01
add comment

The site has existed less than a year and has gained huge popularity since its launch. The notion that anything is "slowly killing" StackOverflow is laughable.

As to appropriateness of answers, this is an open site, with free flow of contributions, by design.

"It has been said that democracy is the worst form of government, except all the others that have been tried." -- Winston Churchill

share|improve this answer
    
By "slowly killing" I mean, "becoming yet another place where people can quickly get wrong answers to their questions". –  jrockway Jul 13 '09 at 21:34
add comment

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?

This annoyed me enough to blog about it, even if it's not every post.

share|improve this answer
1  
I think examples are in order. Now, I know nothing about Ruby, but I did answer a Ruby question once: stackoverflow.com/questions/1009280/… (notice I am shameless ;-) –  Sinan Ünür Jul 13 '09 at 23:09
    
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 Gilbert Jul 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 Saunders Jul 13 '09 at 23:45
add comment

Also, I took a quick look at three [perl] questions. None of them had "I don't know perl but". If the author wants to make his point, he should give examples.

share|improve this answer
2  
examples speak much louder than anything else, anyway –  Jeff Atwood Jul 13 '09 at 13:55
    
Anyone want to say the reason for a downvote on this? I actually did take the time to look, and I actually saw what I saw. Where's the room for dispute? –  John Saunders Jul 13 '09 at 14:02
    
-1 for telling someone to provide examples and not providing any yourself. –  GEOCHET Jul 13 '09 at 14:11
    
The first link has a -2 post that started like "I don't know Perl..." –  Lance Roberts Jul 13 '09 at 15:38
    
Rich, examples of what? You wanted links to three Perl questions without "i don't know perl?" Really? –  John Saunders Jul 13 '09 at 21:02
    
Which first link? The blog post? I don't see a link in the blog post. Can you post it and/or show me where I missed the link? –  John Saunders Jul 13 '09 at 21:04
    
    
What difference does it make? It's not my problem if everyone gets bad Perl answers on SO. –  jrockway Jul 13 '09 at 22:58
add comment

I don't know Perl, but....

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.

share|improve this answer
add comment

People don't get Jon Skeet-like levels of rep from "I don't know ****, but..."

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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 Yates Jul 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. –  pgs Jul 13 '09 at 14:57
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
2  
Why the downvote? –  Jonathan Sampson Jul 13 '09 at 13:53
5  
Just make a greasemonkey script to show that you are always on top with +10. –  GEOCHET Jul 13 '09 at 14:05
    
Ha!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! –  jjnguy Jul 13 '09 at 14:09
    
Thank you Rich B. You brighten my SO experience. –  jjnguy Jul 13 '09 at 14:11
    
@jjnguy: To be fair, I brighten everyone's SO experience. –  GEOCHET Jul 13 '09 at 14:28
    
@Rich B: Flames may be bright, but flaming people != brightening. –  Hilarious Comedy Pesto Jul 13 '09 at 14:34
add comment

The reputation system works just fine. The Perl is a lie.

share|improve this answer
add comment

You must log in to answer this question.