The Perl Community - a mixed bag of sometimes intollerance and sometimes fantastic help
I've had occassions to post a post like this a number of times in the past over a lot of years but I've resisted until now. I have little experience of other programming languages in forums/IRC/blogs etc recently because these days I've largely written Perl and PL/SQL but in the past before the WWW was prevelant I programmed in Fortran, Pascal, C, Macro 32, VMS, Z80, 8086, 6502 etc before I volunteered to port a large code base from VMS to UNIX.
I've had over 30+ years (not all perl) a massive amount of help and support from PerlMonks, irc.perl.org and forums like dbi-users/dbi-dev/dbi-class etc. I've attended the odd London Perl Workshop and been astonished at the knowledge and enthusiasm at those events. I don't work on many Perl modules on the CPAN but those I have contributed to I have done for decades. There have been issues over the years with some DBD::* modules I've contributed to but by in large the Perl community has been one which I've been happy to be a member of and contribute.
I've seen the arguments for and against Perl 6 and not got too worried about them as I use perl 5 and it mostly just works for us and although we (the company I work for) struggle to find Perl 5 programmers and Python and Javascripa/Node.js programmers are ten a penny who is going to write a code base in hundreds of thousands of lines in another language just to attract programmers.
After hanging around Perlmonks/IRC/mailing_list_XXX/perl_weekly/IRC etc for decades I just got fed up with it and have had a year or so out where I've been off grid as it were. In addition certain bickering on various channels put me off keeping up to date.
Then, as sometimes happens, a new and enthusiastic person comes along on github and wants to push changes to a module I'd pretty much given up on (on github even though I was maintaining changes locally) for various reasons (too long to go into here). Suddenly I I realise there is some interest and as one with maintainer privileges if I don't do it no one will.
So changes are made, merges are made, issues are closed and a new release is made. Suddenly I'm back in the Perl community and somewhat invigorated. And then...
GIven my new enthusiasm for the Perl community I dare to post an issue I was having to IRC on #perl-help and it all fell down. Normally I would not have even mentioned it as a long (decades) of experience would have stopped me from doing it in the past but my NEW enthusiasm for the perl community blinded me to the perils of merely asking for help in a forum designated for Perl help. By the vary nature, anyone posting in #perl-help, needs help and I'd forgotten that certain people view this channel as a shooting ground where you pour ridicule on posters "who don't understand their problem" - of course they don't or why would they post on #perl-help. I got some helpful comments but I also got the ridicule. 10 years ago I would have known not to put myself through this but years have gone past and I'd forgotten.
So, in an instant, (it was only 2 comments at the end of the day and I'm sure some would say I'm being too sensitive but I am who I am and this is how I saw it), all that renewed enthusiasm for Perl and the Perl community was put down by one person who treats some IRC groups as a practise shooting ground for their superiority. Well done. You just shot a bullet into a balloon and robbed Perl of an enthusiast and a contributer.
Sadly, I was fooled (unintentionally) by a new contributor to a module I had release/merge permissions on and this led me to believe the Perl community was a place I could happily and safely post a question on a help forum without facing redicule. Ok, I'm probably making more of this than it was BUT it still holds true on my part that I was reminded that posting on a Perl IRC channel is literrally putting yourself up on a firing range (in certain channels where certain people hang out).
Lesson learned again. Looking forward to my retirement and not having to get suckered again.
Post fix: Over at least a few decades I've had loads of support from some really clever and helpful people in the Perl community and been encouraged to contribute. In my work I've used code/modules written by others which have short circuited my development process and helped me enormously. There are a lot of great people in the Perl community who have contributed thousands of man hours to the CPAN. I thank you all. Learn a lesson from someone who only dabbles in the Perl community these days - a help channel is a help channel - you should expect anyone posting on it to not grok what the problem is and not take it as an opportinity to shoot them down.
My reawakened enthusisam had been doused.
There /may/ be some replies to this post. Some of them may be defensive. I understand this /but/ I ask you to think about this - when someone who has contributed to Perl has got to the point where they are fearlful to post a question on a perl-help forum where is that forum going?
Well said. So sorry for the bad experience but as you noted there truly are a ton of good folks out there in the community who get it and are helpful. Too bad a few bad apples ruined it for you.
I love reading your blog, there is so much to learn from your experience. I have had such experience in the past and I avoid going there next time. Reddit is one such place, sorry to say, you have to have thick skin to survive. It doesn't have to be like that. If some one post something that doesn't go along the certain man made rules then it is OK, just politely convey the message. You don't have to be rude. Give that person a chance to apologise and correct himself.
The Perl channels on IRC have been dominated by one super-active and energetic and brilliant and obnoxious individual for some time. The experience you describe has been the standard for a decade, and before that, it was already the standard experience, just featuring other characters. Before *that*, comp.lang.perl.misc was a similar crucible. The leading arrogant pr*ck from *those* times has thankfully moved on to pontificating about English grammar on S/O.
But the real question here is not "why are people mean?" but, why did you waste your time? You seem to be blaming the "Perl community" or perhaps the n00b you said inspired you, but you also said "I was reminded that posting on a Perl IRC channel is literrally putting yourself up on a firing range." Why did you go back for more?
You will get nothing but friendly help at Perlmonks, often from some very expert people. Other than that, you have to teach yourself, via the doc, experimentation, and *targeted* comms with authors/users of the modules you have questions about, usually (these days) in a Github issues queue or similar.
As a Perl veteran, albeit returning from hiatus, you knew already that you have to be discriminating about where and how to ask for help, as, yes, there are some arrogant asses about who live for the opportunity to denigrate. I suggest posting your question on Perlmonks, and hanging around to *answer* some questions, which I am sure you are well qualified to do, since there is a steady supply of n00bs there with basic Perl questions.
Also, you could look into starting a Perlmongers group in your area if there isn't one. Give, and ye shall receive! Be the change you want to see in the world!
And my advice is: stay AWAY from Perl IRC unless you have a very narrow, clear technical question!
I have a horrible feeling it was me that you felt was telling you that you didn't know what you were doing, and that really wasn't the goal.
Given all of the code you showed, the behaviour you were describing ... simply isn't something perl does. Which means, basically, you'd ended up in a position of looking for your car keys under the streetlamp rather than where you'd dropped them, which is a common failure mode of everybody when debugging.
I believe the last thing I said before you left was "honestly I still think you're just confused about the data" and ... if I was seeing the behaviour you were seeing, I'd be assuming I was confused about the data. Because 99% of the time it turns out that's the problem (e.g. I've long since lost count of the number of times a seemingly incomprehensible problem has turned out to be that I connected my test script to the wrong database).
If you can get the warn Dumper logs we suggested and come back we can have a shot at being able to help you figure out where the problem is, as opposed to where it isn't - but when debugging, knowing where the problem isn't is often more than half the battle and since that was the only thing I could be reasonably sure of under the circumstances, that was the advice I gave.
The log of the conversation was posted at https://perlmonks.org/?node_id=11103270 - "you're confused about *something*" isn't meant to say being confused is wrong, being confused is the natural state of debugging (and, at least in my case, having a moment when I think "shit, I'm an idiot" is the natural end point). And when I immediately followed that up by "I'd probably apply warn + Data::Dumper" I really did mean the "I'd" - in that in a situation where behaviour seems to be impossible, my default expectation is I'm confused so I add more warn statements until I realise which of my assumptions were wrong.
I'm sorry it came across as an attack rather than the intended "debugging weird problems be like that" and I'll try and phrase it more like "given what you describe is (almost) impossible, the odds are good that we're all missing a data point" in future.
-- mst
First I'd like to preface my comment with a point that I'm not trying to negate your experience. I'm so happy that you are contributing. Perl needs (more, even) people like you so the ecosystem thrives. Thank you, sincerely, for your experience and contribution. And if you feel like you need to share content like this, all the better.
I would like to say that I also appreciate the way mst contributes to perl. I can't speak for him, but whenever I'm on social media looking for help or ideas, he almost always one of the people that provides feedback, and I have to say that the WAY he contributes helps me find what I'm looking for quickly and concisely.
I would like to thank both you and mst.