13

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?

9
  • 7
    Yeah... "Nobody goes there no more; it's too crowded!" -- Yogi Berra Jul 13, 2009 at 13:58
  • 13
    without actual examples it's hard to take the criticism seriously. It's just hand-wavy "because I said so" Jul 13, 2009 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/… Jul 13, 2009 at 14:14
  • 4
    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. Jul 13, 2009 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. Jul 13, 2009 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, 2009 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. Jul 13, 2009 at 14:28

14 Answers 14

20

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

4
  • 3
    @rcar s/Pearl/Perl/ unless it was a joke. Jul 13, 2009 at 14:13
  • 10
    Uh, yeah... a joke. Let's go with that. Hehe Jul 13, 2009 at 14:24
  • 1
    i got that it was a joke, if that makes you feel better
    – Kip
    Jul 13, 2009 at 14:32
  • ;-) all in good humor Jul 13, 2009 at 23:22
10

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.

7

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.

5
  • I would not say very Microsoft-centric, at least in my case. Somewhat, enough to be a bias, but I moderately object to "very" Jul 13, 2009 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. Jul 13, 2009 at 13:59
  • 1
    Very very bad Joel!
    – Welbog
    Jul 13, 2009 at 14:04
  • I am very disappointed.
    – Jeff Yates
    Jul 13, 2009 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, 2009 at 21:31
6

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.

2
  • 12
    Wait: you've answered Ruby questions by saying, "I'm not a Perl expert, but <insert answer here>"?
    – Telemachus
    Jul 13, 2009 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, 2010 at 14:51
3

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.

5
  • 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, 2009 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, 2009 at 15:42
  • The [golf] tag has been renamed to [code-golf]. meta.stackexchange.com/questions/2850/the-great-tagging-reorg/… Jul 13, 2009 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 Jul 13, 2009 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, 2009 at 18:53
2

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.

2
  • "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.
    – mmx
    Jul 13, 2009 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. Jul 13, 2009 at 22:01
2

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.

3
  • 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 ;-) Jul 13, 2009 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. Jul 13, 2009 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". Jul 13, 2009 at 23:45
1

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.

8
  • 3
    examples speak much louder than anything else, anyway Jul 13, 2009 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? Jul 13, 2009 at 14:02
  • -1 for telling someone to provide examples and not providing any yourself.
    – GEOCHET
    Jul 13, 2009 at 14:11
  • The first link has a -2 post that started like "I don't know Perl..." Jul 13, 2009 at 15:38
  • Rich, examples of what? You wanted links to three Perl questions without "i don't know perl?" Really? Jul 13, 2009 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? Jul 13, 2009 at 21:04
  • What difference does it make? It's not my problem if everyone gets bad Perl answers on SO.
    – jrockway
    Jul 13, 2009 at 22:58
1

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.

1

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.

1

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.

2
  • 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, 2009 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, 2009 at 14:57
0

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.

0

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.

5
  • 5
    Just make a greasemonkey script to show that you are always on top with +10.
    – GEOCHET
    Jul 13, 2009 at 14:05
  • Ha!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    – jjnguy
    Jul 13, 2009 at 14:09
  • Thank you Rich B. You brighten my SO experience.
    – jjnguy
    Jul 13, 2009 at 14:11
  • @jjnguy: To be fair, I brighten everyone's SO experience.
    – GEOCHET
    Jul 13, 2009 at 14:28
  • @Rich B: Flames may be bright, but flaming people != brightening. Jul 13, 2009 at 14:34
0

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

1

You must log in to answer this question.