The Perl community has held tight to a "zero tolerance" policy for beginners. The transition to a more accepting, responsible community has begun. The past is behind us and the future looks brighter.
As far back as I can remember, asking a question that has been answered before is one of the many deadly sins of the Perl community. The general attitude revolved around, "If the docs are good enough for me, they're good enough for you. RTFM." One first-time programmer could easily accumulate 10 flames in his inbox after asking a question about why this code didn't print anything out:
my $input = <STDIN>; my $username = chop( $input ); print "$username";
After said programmer has been flambe'ed to perfection they have to endure
five more messages concerning the use of
chop() and its evils, not to mention a handful of warnings about why putting
double quotes around
$username will cause famine in the land. Granted, these last few messages contain
good information, but it's unlikely the
beginner will even read these messages. Why would anyone want to subject
themselves to more abuse when it's easier to delete the messages and move on to another programming language?
It seems that the very thing we want to have happen, adding number to our ranks, is the first thing we fight against when beginners show their faces. Wielding our swords of "RTFM" and shields of "killfile" we smite the very programmers that will carry this language into the future. I have a co-worker who is known for saying, "It's a good thing Perl is so powerful and cool, it barely makes up for the collective, childish 'elitism' displayed by its community." Collectively, this is a sad truth.
Many programmers end up turning to alternate languages and communities, ones that don't require them to carry fire trucks in their back pocket. For instance, Python has a mailing list designed to be a "Help Desk." It doesn't get much better than that for a beginner.
Another path to travel is the pay software route. If I pay Microsoft for their software, developer resources and customer support, they'll be nice to me. They won't call me a newbie. They won't prepare the clue stick, they'll give me all the answers I need. Believe it or not, folks, this is our competition, too. Forget about a single programmer turned away, this affects whole companies. A corporation has the wallet to turn away from Perl if it feels the support is "lacking."
One would figure that, with Perl's age, the community would have fostered a powerful, useful medium to ease the newcomer into our world. When a child is born, it requires extreme amounts of care, attention and guidance for several years. Most children aren't told to sit in the corner and RTFM until they get it; that's cruel and unusual punishment. Why then, must we be any different? We all have the ability to help programmers grow and mature, to shape their views and opinions. It's time for us to open up and give back to our trade. All of us have received gentle guidance; we are all capable of giving some back.
In short, no good has come of this.
Last month, a few folks on the Perl Porters list decided enough was enough.
Casey West set out in search of a new mailing list for Perl beginners. Some
concerns were raised regarding the validity of the list but, overall, there
was acceptance. Out of the blue, Ask Bjoern Hansen came barreling through
the crowd announcing that the list had been created -- three days before.
It was time to find out if the Perl community needed a friendly, fire-free environment to foster growth and knowledge in the masses. It was time to find out if there were any masses. It was also time to find out if the Perl community would be willing to jump in and help. Don't you just love the suspense? On with the show!
It has been one month and statistics speak for themselves. Thirteen hundred messages were sent last month, sending my mbox to more than 3.5 MB. As far as Perl lists are concerned, this is near the highest-trafficked list. Of course, the Python "Help Desk" list generates a solid 4000+ messages a month, with excellence.
Under normal circumstances, generating that much beginner traffic would cause the list to combust, sending fireballs as far as the eye can see. Not this time. Established folks in the Perl community have made an effort to put the gloves on and play nice. As list baby-sitter, I have only had to slap a handful of wrists, and the people attached to them have responded honorably. Nearly all questions have been answered at least once and every customer seems to be satisfied.
beginners list recently split in two. The
list was created as a means to cut back on the amount of traffic.
Many people were finding it hard to keep up with the flow of just one
list. This is understandable considering we have over 1000
subscribers to the
Ask and I started the
daily-tips mailing list. This list will be
sending our daily mailings with simple tips for beginners. The tips
will cover a wide range of topics, in the form of ``Questions and
Answer''. We won't be mailing from the standard Perl FAQ, there's
already a list for that. Instead, we'll be taking submissions from
the community and mailing them (That means you!). More information on
this list can be found at http://learn.perl.org/.
beginners-workers mailing list is the place to send your
daily-tips submissions, as well as your thoughts on how the Perl
community should be helping beginners. Ask, Adam Turoff, Kevin
Meltzer and I (and others) will be reading this list and responding if
necessary. The Beginners Team is working hard on this list to get a
number of initiatives rolling. Thanks to the people mentioned above,
and many other folks for your continued help and support.
Another fine member of the Perl community, Kevin Lenzo, followed up the
mailing list announcement with one of his own. He created an IRC channel
irc.rhizomatic.net and even attached the lovable purl bot to it. Kevin reports moderate and
friendly traffic on this channel.
This is an exciting move, because it provides real-time results. The ability to interact with someone in real time makes this a complete win. Believe me, you won't go away disappointed from this channel: the people there are fast and fun to work with.
Peter Scott and I have teamed up to make the second TPC Code Review bigger and better than ever. A number of the top Perl people have volunteered to review code, free of charge. The format will be similar to last years BOF. This is your opportunity to get advice from Perl's best without having to pay their rates.
If you are attending this year's TPC and you have some questions about your code, please stop by. It doesn't matter what your question is, all subjects are open. We are putting an emphasis on answering beginners' questions but, please, don't hesitate to bring your latest regex engine patch for review, we have people who can do that, too.
The Perl community has had a taste of success with the beginners list and IRC channels. We will hopefully solidify our new found stance at the Perl Conference with the Code Review BOF. So what happens next? Are we finished? Not by a long shot.
Ask and I have begun work on http:, a modest site dedicated to helping people learn Perl. At the moment it is slightly bare, hosting only the beginners list FAQ, which is maintained by Kevin Meltzer. This is all about to change.
learn.perl.org will become a beginners documentation project. We are asking for
contributions from the Perl community for tutorials. The topics of these
tutorials may be broad, covering everything from text editors with Perl
syntax highlighting to in-depth research on why one should use
while to loop over files. We hope, with time, that learn.perl.org can mature into a central, community-lead documentation project: the Perl
It has been the general opinion of the open-source community that, if you can't find the answers yourself, you're lost. Read the documentation, if there is no documentation, read the source. If there is no source, you've stepped out of the world as we know it. If you're a greenhorn and you can't figure it out from the docs or the source, goodbye. And not just goodbye, but a plague on your house as well.
This attitude is just not good enough any more. Frankly, it's a terrible way to behave. Any child can play the "I'm not telling you, figure it out yourself" game, complete with fingers wiggling from the ears and a stuck out tongue. It's time for us to collectively grow up. As a community, we need to mature. We need to get up and help each other.
I admit, I have been on the giving end of the flamethrower serveral times in the past. It seemed like a fun idea at first, but it really isn't. After I sent flames, I felt terrible, often going back to the recipient and asking forgiveness. That's just what it did to me, I hate to think about how it made the other guy feel. What kind of impression did I give him about me, about the Perl community, about open source? What we do in public really does reach that far: We are responsible for the people we represent, like it or not. So let's all grow up and represent them well.
This reaches far beyond the walls of Perl ( no pun... ). I am beginning to see the awareness all around the open-source community. We are in need of a change and the challenge is here. The Perl community has begun its journey, let's be the ones to carry it through the rest of open source, and beyond.
My dream is for a Perl community that stands together with kindess and open arms. Many may feel this is a goal too lofty for us. I couldn't disagree more. We have shown the world that we can do just about anything; this should be easy. I know I'm not the only one who shares this opinion.
"But, paradoxically, the way in which Perl helps you the most has almost nothing to do with Perl, and everything to do with the people who use Perl. Perl folks are, frankly, some of the most helpful folks on earth. If there's a religious quality to the Perl movement, then this is at the heart of it. Larry wanted the Perl community to function like a little bit of heaven, and he seems to have gotten his wish, so far. Please do your part to keep it that way." -- Preface, Programming Perl 2nd Edition