Simon writes "If you haven't seen this already, over at perl.com, we're running a really interesting and challenging article by Casey West about the attitude of the Perl community towards beginners. Flaming the newbie is something we're probably all guilty of, but does it reflect well on us as a community and Perl as a language? Much food for thought."
Who cares if it reflects well? It's fun! (See, this is probably just what they're talking about in the article. I suppose I should read it.
The situation that irks me in particular is when someone posts a bit of code, asks a question and the responder takes the time to stroke his ego by criticizing the poster's coding style, practice his golf a bit, and to force their idioms on the supplicant.
Yes, you get more of that on PerlMonks than is necessary. But that isn't all that you get, either.
The poster is told "NO, THAT'S WRONG", his code is savaged, his ego ripped to shreds , and the responder gets his superiority complex fed for a few more minutes.
I've seen that on c.l.perl* (though I don't visit there much anymore, mostly for logistical reasons). But I have to say that I've seen nearly none of that on PerlMonks.
I've seen some misunderstandings that usually get resolved. There are probably also misunderstandings where the questioner just stalks away. But I think even those are relatively rare and have more to do with the emotional state of the questioner, terseness of the answer, and the difficulty of text-only communication than any beligerant attitudes.
Not that I think that PerlMonks is a great forum for asking questions that are answered well in the standard documentation. Sometimes such questions get answered nicely. But most posters to PerlMonks consider themselves members of a community and expect most questioners to at least be considering becoming members themselves. So answering a flood of "first-level support" questions isn't an expected part of the game.
I think it is great that people want to create a "first-level support" for Perl. Like all such things, a lot of wrong answers will be given out as the people who do such work have to be chosen primarilly for their patience. If the forum is well designed, than most of the wrong answer will also get corrected.
I'd love to see c.l.perl* becomes a more helpful and less confrontational place. I don't think it will ever be a great first-level support resource. PerlMonks certainly has room for improvement but overall I give it pretty high marks, though, again, it won't ever be great first-level support either.
There are probably also misunderstandings where the questioner just stalks away. But I think even those are relatively rare and have more to do with the emotional state of the questioner, terseness of the answer, and the difficulty of text-only communication than any beligerant attitudes.
Wonderfully put. I can't imagine that most respondants keep in mind that the person asking the question is 1. under some level of stress 2. is already frustrated and 3. is in over his head (or he wouldn't be asking).
I spent 4 years answering phones with angry, frustrated customers and I can tell you this doesn't make for a cheerful mix for a phone call, much less text-only communication.
Perlmonks suffers less from the "NO THAT'S WRONG" problem than it does from the being "over-helpful" syndrome (and being of little help at all).
And then came the web. Then a lot of people who didn't come from some sort of computer background wanted to learn Perl, and it doesn't seem that the results weren't good.
This article seems to imply that the problem isn't the language itself, and it isn't the novices trying to use the language. The problem, the article claims rests mostly in the perl community. I'm not sure if I believe the problem is so entirely one sided. Some could reasonably claim that perl is less than ideal first language, and sometimes people make it hard to help them.
Some of perl's DWIMmer aspects, at least the original ones aren't so much "Do what I mean", but rather "Do what Larry expects". How intuitive perl seems is directly proportional to how well your programming background matches the perl developers. This worked well when the audience was Unix developers and sysadmins, but less so when the audience was graphic designers.
At least during the initial explosion of the web, some of the novices didn't help things either. A lot of comp.lang.perl, and later comp.lang.perl.misc had posts that basically read "I'm not a programmer, but I just want to do {something}". That was problematic for a couple of reasons. Once someone decides that they want to create a program that does the "{something}", they are a programmer. They may be a novice, but they have made a decision to be a programmer. Trying to learn to program without being a programmer (at least a beginning programmer) seems nearly impossible to do, (although it does sound somewhat Zen-ish.) Sometimes "{something}" was the wrong thing to do, and it can sometimes be hard to explain that to someone with a preconceived notions of what they need. Sometimes the "{something}" that is wanted is inefficient, insecure, or just wrongly thought out.
As far as the disrespect the perl community gives novices, I have always suspected that there are other issues at play as well. And once a group of people were being pummeled anyway, a portion of the perl community fell into a pack like behavior. I do think it is a small but vocal minority. I spent a large amount of time trying to help novices in comp.lang.perl.misc, but eventually ran out of free time for it. But for the work I did, I hope the people I answered considered me to be helpful, and I find it hard to believe that someone could find a flame in any one of the 1700 articles that google has archived.
Unfortunately, I think that the perl beginners list is doomed to fail. I think that the beginners and beginners-cgi split is the first evidence of it. (the next step is when people start arguing about what is appropriate for which list.) Newsgroups were created specifically to address the problems that mailing lists don't scale well, and this is a mailing list trying to fix problems with a newsgroup.
I will focus mainly on what we are seeing on Usenet; I am far more
familiar with Usenet that with Perlmonks or the various mailinglists.
First, to set the record clear, people are usually *not* flamed for
being a Perl newbie. Nor is the "flaming" that goes on specific for
the Perl communitie. Mostly, people are flamed for their attitude.
Communities are formed because of give and receive. Not by assuming any
request will be granted promptly, with a smile. I would say that most
common cause of "flamage" is because people haven't shown any indication
they spend any time trying to solve the problem themselves. Really, there
is no excuse for asking questions that are answered in the FAQ. Or which
are answered by looking up the function in the documentation. There's no
excuse in asking poorly formulated questions, where it is unclear what
the problem is. Or asking off-topic questions. All these things are ok
in low traffic groups, where people aren't reading other groups. But
that doesn't scale. Not to the volume of comp.lang.perl.misc.
Every FAQ, poorly formulated question, off-topic question, question whose
answer is found by a trivial scan of the documentation, or whine ("why
don't you just answer the question?") I see takes time away I can spend
answering real questions. And even with a ruthless killfile (30% - 40%
is killed automatically), I still see too much garbage.
Sometimes, people suggest one should ignore such questions like FAQs
and things you can find in the documentation. That's not at all a good
option. For noone. Because people will answer questions - and if the
people knowing the answers don't, people who don't know the right answers
will. Often leading to wrong questions, people learn the wrong things,
and worse, it gives people asking FAQs and stuff like that a "reward",
the feeling they got an answer. Skinner can tell you all about the results
of such a policy. But beside rewarding the attitude of not doing any
investment yourself, it also results in a negative feedback loop: wrong
or bad answers are taking as being "right". The existance of archives
like google or formally dejanews means that any wrong answer is stored
for ever. Two ways of stopping that are wasting the time of knowledgable
people to answer the same questions over and over again, or make it less
attractive to post such questions, of which a flame is one way. Perhaps
not the nicest way, but do you think the first is fair? Perhaps someone
should do some research, and determine the correlation between people
accused the most of flaming, and the people spending the most time
answering questions. Larry Wall isn't often seen flaming, but when was
the last time you saw him answering a FAQ in comp.lang.perl.misc?
And while Larry said it was ok for someone to talk baby Perl, it
doesn't imply it's a good idea to talk baby Perl to them. If all you
are saying to your baby is "dadadadadada" and "tatatatata", how do you
expect him/her to ever learn a language? I often, on purpose, *do* use
a different function or syntax than the poster used. Either just because
it's "better" (for some value of better), and I try to indicate why, or
just to show an alternative way. I do expect people who don't understand
what I use to take the initiative and look it up in the manual. That
stimulates learning. If you only use what they know, even if it's an
awful or inefficient way, how will they ever learn?
You can't drag someone, kicking and screaming, up the programming
learning curve.
If they don't want to climb the learning curve, then they should keep
away from the mountain, and don't use Perl (or whatever language,
tool, application, etc) in the first place.
Some people say that if we aren't nicey-nicey to "newbies", they'll use
some other language. So what? I don't think there's much to gain in having
large numbers of low-quality Perl coders. I'd swap the Perl community
(community here used as the set of all programmers) for the Python one
without as much as a second thought. Much smaller, but a higher clue
level. Quality doesn't come in numbers. Furthermore, I've never gotten the
impression the comp.lang.c and friends are so nicey-nicey. But it's still
easier to find someone who can code C than one who does Perl or Java.
-- Abigail
I agree with the idea that a large part of the problem *IS* the Perl community. When I find my old cranky BOFH groups and lists more warm and friendly, it may be a good indication that people have tipped the scales of bitchiness far beyond even my expectations.
For a time there was not a single list that didn't have a flamefest of some sort and no tolerance for those who weren't in the know. In spite of Abigail's thoughts on c.l.p.m. it's a horrible place to go anymore as the flames seem to far outnumber the helpful whenever I scan the group. I would never recommend Usenet to newbies now anymore than I ever did before. I hid behind the guise of a male moniker for 7 or so years because it saved me a lot of unwanted treehouse behaviour. Not much has changed over the years it's just that there are more people from every walk of life on the net and getting everyone to play nice is terribly unlikely if not altogether impossible.
For what it's worth, in the last year and a half, things have gotten considerably more cordial in places where there used to be far too much bile. There is better documentation and dissemenation of information that was once believed implicit or just not written down. This isn't rocket science afterall. though some people are quicker to pick it up than others.
So, yes, it is the Perl community as if you take away the computer what's left? The person
I disagree as I've seen a lot of stuff come and go around these parts and the beginner list has a lot of promise I've not seen before. The CGI split is probably a good thing since it is a natural focus and it allows people to reduce a bit of the volume in their inbox if they don't want to deal with CGI questions.
Specifically it's trying to deal with the pain in the ass bastards who for as long as I can remember have spent way too much time beating the living shit out of people who ask stupid questions and so far it has succeeded fabulously at this. I see no reason why it cannot continue in a friendly helpful manner. 99% of the challenge of learning is knowing what to ask and a stupid question is that of someone who hasn't gotten to the that point.
Perl people have made my most surly SA friends look humble and cheerful at times and fostered a sense of "No Good Deed Shall Go Unpunished". Only in the Perl community could I serve cold Guinness in the can only to have someone complain that the free beer fairy didn't bring something better. That sums it up pretty well...bitching about the free beer.
It's rather classic then that prognostications of doom ensue now that there is some promise in the beginners list where there is a shred of hope that maybe, just maybe, newbies will get a sheltered place to ask dumb questions and learn how to ask the right question before heading out into the shark infested waters.
The people involved with the list seem pretty committed to making the list work and continue to be friendly and helpful so I have some confidence that this shall succeed. If P5P can be courteous after 4 years of a PMS-ing self-wanking bitchfest, anything is possible.
e."Perl -- Free as in free beer but dammit, why didn't you bring Coors instead of Guinness in the can?"
...learn how to ask the right question...
The CGI split is probably a good thing since it is a natural focus and it allows people to reduce a bit of the volume in their inbox if they don't want to deal with CGI questions.
It'll be nice if it works out, but I'm not hopeful. One of the biggest causes of flames on c.l.p.misc seems to be people who can't distinguish between Perl questions and CGI questions, and then take offense when people tell them they should ask their questions in another group. How are the mailing lists going to avoid that problem?
It's always interesting to see that the people who say "we should be all nice to people not spending any effort" tend not to be the people who have posted thousands of messages over a time span of many years.
There have been other effords in the past. Perlfriends, for instance. It doesn't have much flamage. But then, it doesn't have much traffic either. It also appears than comp.lang.perl.moderated hasn't become the success it was supposed to be.
comp.lang.perl.misc has existed for about 6 years, and we had comp.lang.perl before that. The beginners mailing list has been around for a handful of days. It would be insane to compare them now - only someone who fails to understand the "problem" with comp.lang.perl.misc would do so. Let's judge the beginners list one year from now. And again two years from now.
99% of the challenge of learning is knowing what to ask
Exactly. And that's why a response of "this is off-topic here, there are other groups for that" or "that's the wrong question" is NOT a flame. But it's often labelled as such.
-- Abigail
Really? So, what's seen as "flaming" on comp.lang.perl.misc is seen as a "success" on the beginners list?
-- Abigail
Q: How do I find out the size of a file?
A: You can use stat() on the filename. Please see the perldoc perlfunc pages.
Q: How do I find out if I can write to a file?
A: Did you read the stat() entry in perlfun()?
Q: Why won't you experts ever answer my questions? How am I supposed to pass my mid-terms if you don't answer my questions? You are all a bunch of snobs! Perl experts are mean to newbies...
Where was the flame? Not in the response from the expert.
If people take offense when given answers or suggestions to ask the right people, why should the person answering the post be blamed? We can't try to avoid controversy to the point of being 'politically correct'!