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