Perl without IRC


By the time I stopped working on Parrot and Perl 6 last year, I'd already cut back on my time on IRC. I find it a distraction and an impediment to the kind of clear focus I need to be productive.

After a year and a half of almost no IRC use (I may have used it half a dozen times when I had an immediate question I knew someone could answer immediately), I've come to realize a few things about my relationship with the greater Perl community.

Technical Disconnection

I'm not sure what the Perl QA or toolchain people are up to these days. I see occasional blog posts and emails, and I commiserate with Eric Wilhelm in person every couple of months, but only big announcements (or big disagreements) cross my desk.

Similarly, while I read most of the Perl 5 Porters mailing list, it's clear that the #p5p channel has longer discussions than make it to the list. I miss out on some of these discussions by not idling or backlogging.

The ecosystems of large and active projects such as Moose and Catalyst evolve and change much more frequently than you might expect if you only read mailing lists or blogs. I don't browse CPAN Recent Uploads frequently, so I don't hear about new extensions and plugins and components and techniques until someone writes about them in public.

Social Disconnection

My social contact with other Perl users tends to be with people who write and comment on blogs, participate on PerlMonks, and read and react on various social forae. The latter tend to divide themselves into either "Here's some interesting news" or "Why doesn't this code work?".

Face to face interaction is nice, but even some sort of real time chatter about a problem or interest is useful. (Because most of my work is solo these days, I miss waking up to see that someone else has checked in code that fixes a problem we talked about the day before.)

Github Isn't Enough

It doesn't have to be Github, but the combination of easy forking and pull requests with easy module updates (thank you Dist::Zilla makes collaboration and quick bug and typo fixes much easier. This is also more fulfilling than the fire-off-a-patch-and-forget-it approach of only a few years ago.

It's not a substitute for real communication, though. It's not even a substitute for emailing an author. (Bug reports and feature requests are qualitatively different for some reason a better sociologist might identify.)

Twitter Isn't It Either

I'd tell you why, but I hate typing things on phones and it takes too long to compress my pithy wit into 140 characters.

The Iceberg

Of course I do some things because I'm stubborn. One reason I stay away from IRC is the time sink. Another is because I don't need to argue with a few bozos who helped make a couple of projects not fun anymore. Yet I also wanted to know what it was like for the 95% of people who write Perl but who aren't on IRC or mailing lists or community forums.

It can be a vast wasteland.

Sure, there's finally a new Camel out to help them write code like it's the 21st century, and some of them are hearing about things like Modern Perl: the book, which attempts at least to suggest community resources full of experienced and helpful people, but people who go it alone are in for a bumpy road. They will write awful code because they don't know any better and most of them won't fix it because they don't learn any better. They will copy and paste really awful code because that's what shows up in search results.

They will accidentally use a Catalyst plugin or technique or component that seemed like a great idea two years ago for a period of about six weeks before the flaws showed, and while everyone in the know has moved on, there's no documentation about the new approach because it's institutional knowledge which infects everyone via the vector of IRC and it hasn't ever jumped the air gap to the rest of the world.

(Not to pick on Catalyst: I don't actually know if this is true. I do know that it took several hours to figure out the recommended form processing module and I'm still not sure I have it right.)

The Empath

The solution isn't simple, but I see a relatively simple path to helping us figure out solutions. Imagine that you're a novice with regard to your project. Try to figure out the right approach, or at least a right approach, to a problem. Imagine you do not have you sitting by your side to offer suggestions. Imagine you don't know exactly which code to read to figure it out. (Imagine that you're not confident enough reading code to figure things out.)

What do you find? How long does it take? How right or wrong is it?

Yes, it would be nice if we were all in the same room and could tap each other on the shoulder whenever we had a question. (Maybe those agile folks are onto something!) Unfortunately not every programmer has that opportunity.

O(1) Is Bad for Sharing

Maybe this is only a problem for me because I'm so very stubborn, but maybe we have a chance to reinvent Perl and reinvigorate a community and reinvite a lot of disenfranchised users by spreading this institutional knowledge much further and wider than we do now.

(I assure you, there's little more professionally satisfying than knowing that a new programmer or a frazzled administrator or a student in India or Belarus or South Africa or Chile can stumble across my book and find a good solution to a tough problem even while I'm asleep, or walking in the park, or baking, or playing with my family. Sure, it's less direct than typing glowing green words on a black screen on an IRC session in screen, but it multiplies knowledge.)


searching #perl on twitter isnt bad, then selectively following people who talk about perl more than they do about their disdain for republicans and theists.

frankly though, perlmonks needs a MASSIVE facelift. its got the hallmarks of being a 'social network' for perl. but it needs some simplification, beautification and some other ergonomic features. there are lots of cute perl-ish mashups (like,, etc) whos functionality could be merged in to perlmonks. duckduckgo's contribution system is a good model that would assist perlmonks in adding new features and getting people involved.

having a daily 'dashboard' on perl monks would be ideal. hot topics could float to the top, maybe people could 'like' recent perl module releases.

I am no longer actively on IRC because my employer has banned it. this has made it difficult for me to get the one offs. I now take even my easiest of questions to stackoverflow. In fact stack overflow due to its moderation (see next paragraph) is the best perl community I've found.

But even ban aside I'm less active than I used to be, in part because I don't need the help I used to. In part because of a few trolls ( whom I can't get mods to do anything about because they're in the clique, and people have complained about them outside of IRC, people who have also largely left IRC ) and unhelpful individuals.

Unfortunately the fire and forget patches thing hasn't changed just because of github. I sent a pull request with open RT issue for Class::Load but I can't get its maintainer to look at it (make load_class return package name). Also I've sent patches or bug reports that take 3-6 months for the author to get back to me, if ever.

Frankly I don't know how to avoid this, though I know project that don't have this problem *cough* postgres *cough* but I don't know why what they do works.

No IRC? Welcome to the world of most. As you note the time sink is incredible. Also, like Caleb, my employer bans IRC leaving me with non-work, non-sleep, non-meal, non-wife, non-life time to participate.

It's only through randomly accessible resources that most Perlers can keep up or learn up.

Keep up the publishing, keep up the calls for others to do the same. The language community will benefit greatly.

I started programming in this post-IRC world and only discovered it recently. I can see how it is useful, but it also lacks much of what I expected. Catching up on history is hard, separating conversations is messy, multiple login leads to problems; I'm sure one's client can help, but it still shows the age of an older protocol.

I have moved away from it too. SO helps with questions, and more and more I just email the author or read the tests to get help with a specific problem. As to community, I really like the bloggers: you, brian d foy, a host of those on, but the aggregators help immensely! Perlsphere, the perl weekly, perlbuzz and I'm sure others ('s front page) help to tie the loose community of bloggers together. A facelift for perlmonks might be nice, more social features of github would be too, but I think for now the blogosphere is where I go to feel part of the Perl community. Even those few really important things from p5p make it to the blogs when there is need of it.

Thanks for continually writing quality material in your blog!

It would be very educational to know what YOU (chromatic) think about StackOverflow's Perl tag as a facet of Perl community?

Personally, I must second Caleb's vote: In fact StackOverflow is great as far as allowing someone to feel like part of a community who is not a direct contributor to publically available Perl code source (I do a lot of Perl evangelism and Perl development, but 100% of my code is behind company firewall; my contributions are in the form of helping people on SO to be more effective Perl developers).

My thoughts about the efficacy of different IRC channels, all of them on unless otherwise specified, listed in decreasing order of usefulness:

Along with the weekly online meeting held on #parrotsketch, #parrot is quite useful to me. Some major contributors seem to be constantly on, so if you really need an answer to a question, you don't have long to wait. Tone of discussion is quite satisfactory. GSOC and Google Code-In students who make use of #parrot tend to deliver the best results. Both #parrot and #parrotsketch are fully logged in a service provided by Moritz Lenz (as he does for #perl6 and #phasers on freenode). This logging adds tremendously to the usefulness of these channels.

Surprisingly, this channel is not quite as useful as #parrot. It doesn't seem to attract any higher a rate of posts than does #parrot, even though its focus has a vastly greater pool of contributors and users. The fact that it is intentionally not logged means that, when I log on, I often find myself in the middle of a conversation whose origin I cannot figure out. When I lose network contact, there's no way for me to see what was said when I was off-line. Moreover, some of the major p5p committers never go on channel.

Springs to life just before and during YAPCs, then goes into hibernation. Tone of discussion is, of course, light-hearted and snarky, but doesn't seem to get too impolite. Main drawback: At a conference, I'm constantly going from room to room, going off-channel and having to log back on, which means I lose continuity.

Does not seem to attract a lot of traffic. If I go on channel to pose a question, I might not get a response for a couple of hours. And since it is, I think, unlogged by decision, I can't backscroll.

#corehackers; #toolchain; various local IRC channels:
Like #qa, only with less traffic.

Once I began programming in Perl, I went for four years -- and six YAPCs -- without ever going on IRC. When I went on #perl for the first time in 2004, I was thoroughly repulsed. Completely vulgar; bordering on racist, sexist and homophobic; a reason sufficient unto itself for women and other people not thinking of themselves as white males to completely avoid the Perl community. I have almost never been back and will not shed a tear if I never log on there again.

Oh, I dunno ... I've been programming in Perl for about 15 years now, and I've been on IRC (for Perl-related purposes at least) about 3 times. All 3 of which I could have lived without, if push came to shove.

PerlMonks is important. StackOverflow is important. Mailing lists are important, and many of the Perl ones are very good. Smart consuming is very important: you have to know that search results are going to serve you up crappy code, and that just because a module is on CPAN doesn't mean it's a good model to aspire to. And it's easy for crusty old guys like us to imagine that the young kids don't know those things, but, hey, they've figured out that Nikes don't make you jump higher and Miller Lite doesn't make hot women jump in your swimming pool, so they're not completely stupid. ;->

I don't do IRC just because I don't care for that sort of interaction. A bunch of people all talking at once, on multiple topics at once, posting as fast as they can type ... I dunno, I'm just not into it. Mailing lists and message boards have better organizational tools and allow people to at least ponder for a minute or two before hitting "send" (not that all of them do, granted, but at least you're not desperately typing out your response to get something out there before you lose someone's attention). I like communicating in email, where I can stop and think about it (for a day or more, if necessary) before I respond. It's just a different vibe, a slower pace, and that's what works for me. YMMV, naturally, but diversity is good.

And, in 15 years, absolutely the only disadvantage I've ever seen to not being on IRC is when other people assume that you are (or that you should be). If no one would ever post another comment like "just come by IRC and we'll talk about it" on a mailing list ever again ('cause, you know, if I wanted to talk about it on IRC, why the hell did I post my question on a mailing list???), then I think lamenting lack of IRC interaction could completely disappear, for all of me.

Just my perspective as a non-IRCer.

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

sponsored by the How to Make a Smoothie guide



About this Entry

This page contains a single entry by chromatic published on June 11, 2012 10:58 AM.

The Reluctant Perl Programmer was the previous entry in this blog.

Bringing Together Perl Writers is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?