Today I helped a lurker in #parrot find a productive task.
He's kept an eye on Parrot for several years, but today he asked if there was anything he could do to help. I walked him through getting the source code and suggested an introductory task of an hour or so. At least two other developers gave him other potential tasks.
Any community-driven project of reasonable size has several small tasks suitable for a novice. We're fortunate in Parrot that we have plenty of opportunities for people who know Perl 5 or C or Perl 6 or virtual machines or want to learn any of them -- as well as technologies like parsers, opcode dispatch, garbage collection, JIT, installers, and more. We add a new committer every couple of months. We take mentoring very seriously.
As nice as this is for the Parrot project, it's a small part of the entire Perl ecosystem. (Some committers have little interest in the Perl ecosystem itself -- they care more for Parrot as a free software VM unbeholden to corporate interests or a practical demonstration of new ideas in compiler technology or the promise of radical language interoperability or powerful tools for developing little and large languages or an excuse to use what they learned in computer science classes or....). If there are a million people who've written one or more lines of Perl code in the past ten years, maybe a thousand of them have sufficient interest in Parrot and related projects that they may one day contribute a patch or a bug report or a FAQ.
That leaves a million or so other people as potential contributors.
I can think of plenty of opportunities for them to help the Perl ecosystem with an afternoon of time:
- Add a test to a favorite CPAN module
- Triage bugs in a CPAN module or other Perl project
- Test DarkPAN code against bleadperl
- Add to the Perl 5 Wiki
- Review the Perl 6 synopsis
- Join/start/lead/speak at a Perl Mongers group
- Mentor a novice developer
- Teach a Perl class or lead a study group at a local community college
There are many more possibilities. The question "What is there to do?" doesn't interest me, at least in comparison to a deeper question.
How do we connect those million developers with these possibilities?