Once upon a time, a man named Jon
Orwant threw a mug against a wall and declared Perl to be stagnant,
perhaps dying. Let me
quote
Larry Wall here:
"[Orwant] keeps throwing coffee mugs against the other
wall, and he says 'we are fucked unless we can come up with
something that will excite the community, because everyone's
getting bored and going off and doing other things'"
.
Many projects were born out of that sentiment and that realization,
including the great and wonderful perl6. In the beginning, we
envisioned that perl6 would replace perl5 just as perl5 replaced
perl4. Years have past and perl5 is still with us. However, for the
most part, excitement in perl5 has faded.
The world has lost perl5 in all the buzz of perl6.
I assert the following:
- perl6 will not replace perl5.
- perl5 will live on long after we've all retired thanks to the
millions and millions of lines of code already in production.
(Making squinty eyes at that? COBOL has a lesson to teach
you.)
- Once again, perl5 is risking The Orwant Condition of boredom
and irrelevancy.
- In fact, we're already at that point.
To quote the best movie of all time, Short Circuit: "[perl5] is
alive! No disassemble!" Every day, thousands of programmers write
millions of lines of perl5. Every day, hundreds of modules are
uploaded to CPAN. Yet every day, many perl5 programmers wonder how
they're going to find another perl5 job.
(warewolf on irc.perl.org's #perl wishes to
take credit for the Short Circuit reference. Since he provided
logs, I'm inclined to let him :)
Something needs to be done. We need excitement not just about perl5
as a language but about perl5 as an interpreter. Projects like
Moose
are helping to drive excitement about perl5 as a language. If you
look under the hood, though, Moose has to do some scary shit to
work its magic. To do Moose *right*, we need to extend the
core.
At YAPC10, Chip Salzenberg announced a project called 'corehackers'
designed to excite people who are capable of hacking the perl5
core. There are a lot of experiments to try and a lot of great
ideas brewing out there. We need to improve the core, make it more
accessible, and take some weight off the pumpkings. I volunteered
to help Chip and I started pondering and planning my
involvement.
As I talked to non-core people at YAPC, something became very clear
to me. There are
lots of people in the community who want to
help but have little C ability and no experience with the core. p5p
has probably never heard of them and they've certainly never seen a
patch. These people want to help though. They want perl5 to become
better than it is, not just through contributions to CPAN, but by
improving the language itself.
How do we get these people involved? How do we rally this pool of
excited talent? How do we keep from driving p5p insane with the
influx of newbies asking questions and submitting patches that may
not be right, may suck mightly and obviously require mentoring? I
pondered and pondered and talked and talked. Then it hit me.
We need a project dedicated to the newbies. We need documentation
and introductions to the core. We need a mentor program. We need
someone else (or several someone elses) to read through and
integrate the patches from the newbies. I stood up in front of YAPC
and volunteered to be that person. Now I'm standing up in front of
my 5 readers, Iron Man, Planet Linode, and whoever else,
volunteering to be that person.
Here's how we're going to do it. My project is part of corehackers.
Like corehackers, this is
not a fork of perl5. corehackers
runs parallel to p5p and perl5 core development, providing a
service, hopefully a useful one, to p5p. Chip and I will be working
with the volunteers to guide their work, integrate their work and
submit it to p5p for inclusion. We'll be working on the core too.
We'll be putting our money where our mouths are and building a
better perl5 from the grass-roots up.
What do we need? We need you. We need you to take a few minutes out
of your day to document a piece of the core. We need you to
document what isn't documented. We need you to learn the core and
fix bugs. We need your ideas and we need your help working on new
core features. I'm not looking for a long term, or even medium
term, committment. You decide your own level of involvement.
Now, how do you get involved? Go to
github and
use git to either clone or "fork" our repo. When your change is
complete, either issue a pull request or send me a patch directly
(sungo@sungo.us). If you want to chat, grab either chip or myself
on irc.perl.org.
(Warning: #perl is not a help channel.
Think of a tavern from an old western film and replace the
residents with wifi-enabled hackers. Just query us
directly.)
As far as I'm concerned, I plan to commit more than talk. Chances
are that you won't see me blogging much more about the philosophy
of all of this. I'll dump out status updates and ask for thoughts
on ideas. I'm sure there'll be
twitter traffic too. Actions >
words.