Recently in Community Category
Perl's big problem is one of perception. The other day, a job candidate asked me "You're moving your web apps from PHP to Perl? Shouldn't it be the other way around?" Why did he think that? The candidate knew no Perl, and only a bit of PHP, so had no technical reason to believe that PHP was better than Perl. So why did he think Perl was subservient to PHP in the web arena?
What I suspect is that Perl is just less visible, and not just in the sense of crap like the TIOBE index where it equates hits for "Foo programming" popularity of the Foo language. I'm talking about in the real way people see the world of programming.
I'm certain that PHP has become a de facto choice for basic web apps because it's just How You Do It these days. You see enough PHP in the context of the web, it starts to sink in.
Why is Ruby on Rails so popular? Is it better than Perl on Catalyst? Or is it just that people hear about Rails more? I suspect the latter, because perception is reality. When people perceive Perl as being dead, or not as powerful as other tools, it might as well be.
There are three goals I'd like to address:
- Perl needs diversity, needs new blood, both in users and community as well as tools.
- Perl needs more active mindshare in the programming world.
- Perl 5 must continue to be seen as a viable language.
The three actions to take: Decentralize, diversify and colonize.
Perl must decentralize
Perl has a great infrastructure. We have the CPAN. We have the various sites of perl.org. We have Perl Mongers and perlmonks, and so on. Unfortunately, we've grown complacent. It's time to start looking elsewhere for infrastructure and community.
Standardization on tools makes sense if the tools are the best possible tools available. In many cases, the infrastructure already in place in the Perl community may not be the best there is.
Is the Mailman installation running on lists.perl.org the best mailing list solution for you when you need to start a mailing list? If not, then consider other options. Starting a list at groups.google.com is trivial, for example.
Is rt.cpan.org the best bug tracking solution for your modules or projects? If not, then look at other options. Many of my modules, such as ack and WWW::Mechanize are hosted at Google Code, where I use the bug tracking system there.
Is use.perl.org the best place to host your blog? Maybe you should post somewhere else. Certainly that was the case with me. I found that use.perl.org wasn't the news site I wanted it to be, so I started Perlbuzz as an alternative, literally doubling the number of news sites devoted to Perl.
Note that "alternative" does not me "replacement". It's possible to have two similar but diferent projects, websites or whatever that both fill a need. If, say, Perlbuzz replaced use.perl.org, we'd still only have one news site, which is no better a situation than we started with.
Some of the alternatives might not be community-based. Google Code, is not run by altruistic volunteers. Commercial interests will usually have more time and money to spend on providing useful infrastructure. That's no knock on the volunteers, but merely taking advantage of what the commercial interest has to offer.
(I know at some point someone will say "At some point decentralization is harmful." I agree, but we're nowhere near that point. Such a problem to have!)
Perl must diversify
The mantra "There's more than one way to do it" is at the core of Perl the language, but this is not always the case in the Perl community. We must always remember the guiding principle of TMTOWTDI.
The first place to diversify is with people. I suspect, but cannot prove, that the Perl community's size is a net loss as time goes by. We must constantly be trying to bring new people into the fold, to take advantage of their innovations, and to make what we do more fun.
Second, we must be willing to launch new projects, even if they're similar to existing projects. It could be a module, or a website, or an entire application. The knee-jerk resistance to diversity often sounds like this:
- "Why do we need Getopt::Whatever, we already have Getopt::Long"
- "Why do we need another templating system?"
- "Why do we need Jifty/Catalyst/whatever? We already have Maypole."
- "Why do we need Perlbuzz, we already have use.perl.org?"
I've never understood this fear. It sounds like the resistance is based on the premise of "I wouldn't want to do that project, so you shouldn't either." It's the refrain of someone with a closed mind, unable or unwilling to imagine what could be. In the case of similar modules, the refrain usually goes "It's too hard to find the module you want anyway," but that's not a problem of the module, but of the way things are found in CPAN itself. (And if you'd like to address that little bit of decentralization, please take a look at my Rethinking CPAN mailing list.)
Ultimately, fear of the new is counter to the principle of TMTOWTDI. Indeed, plurality is at the very heart of open source, and it's additive, not subtractive. Template Toolkit need not take away from Mason. Perlbuzz need not take away from use.perl.org. Perl didn't take away from awk and shell. In any of these cases, if the new solution does take away from another, then the other solution was an inferior one to begin with.
Decentralizing and diversifying do two things. First, it opens our minds to alternatives that we may not have considered. It makes us more likely to find solutions that are better than what we started with. Second, it helps with colonization, the ultimate goal.
Perl must colonize
The other day, Tim O'Reilly posted on his Twitter feed a link to a cool article about life in the universe which mentioned Von Neumann probes, theoretical space craft that can replicate themselves using materials found in their travels. A single probe could travel some distance, replicate a thousand cloned probes, which would then launch in a thousand different directions, repeating the cycle.
That's what we need to do: Colonize the mindshare of the world to let them know that Perl is still viable, and a hell of a lot of fun. These new Perl lovers will spread the love as well, and the cycle will continue. In terms of action, it means simply "helping make more people aware of Perl as a cool & useful language." Fortunately, it's a case where we can think globally and act locally, even passively.
The biggest effect I see you, the reader, as being able to have is by spreading out Perl's web footprint. I want more places for people to find out about Perl, rather than a few big ones.
This colonization approach goes hand-in-hand with decentralization. Take my ack project, for example. ack has a number of footprints out there:
- A project home page, entirely separate from any perl.org or cpan.org infrastructure.
- A Google Code home page with source repository and bug tracker
- The ready-made search.cpan.org page for ack which points to both.
That's three times places for people to stumble across Perl, to see it mentioned. A separate home page also makes it more likely to get linked from somewhere else, as when Daring Fireball linked to ack and thousands of people came to see about ack. That's thousands of people who went and saw "Huh, here's a tool in Perl."
Of course, a few thousand visitors isn't going to change any mindshare. That's why it's not just me that needs to work on this. Fortunately, decentralizing and diversifying makes colonization easy.
Our Google footprint is pretty bad, anyway. When I search for "perl" in Google, the top five hits are:
- perl.org, which is a good base.
- perl.com, O'Reilly's Perl page, also a good base.
- The wikipedia entry for Perl, which certainly isn't much help for a beginner
- www.cpan.org, with its front page that expects that you know what you want.
- An old perl 4 man page from Carnegie-Mellon University
Is this the best impression that we have to give the world?
Adam Kennedy gets it
Adam Kennedy's Strawberry Perl is a marvel of the principles I've talked about. Strawberry decentralizes, as it uses none of the core perl.org infrastructure, and it diversifies and colonizes by giving Windows users an alternative to ActivePerl, which for many users is not robust enough. When people talk about Strawberry Perl, it helps with mindshare as well.
Adam is a great example of someone who has set out to make improvements to a part of Perl, and implemented it without worrying about permission or duplication, helping Perl as a whole along the way. I thank him for it. I suspect his Perl On a Stick project will have similar results.
How you can help?
The strategy of decentralize/diversify/colonize takes actions at all different levels. You don't have to go create your own Perl distribution, or even write any code. Here are some other ideas to get you started.
- Post a Perl-related web page to Digg, reddit or any of the other social bookmarking websites.
- Bring someone new to a Perl Mongers meeting, even if Perl isn't his/her primary language. Especially if it isn't his/her primary language.
- Go to a user group meeting for another language. See what they're talking about. Share the Perl perspective.
- Start a blog outside of the use.perl.org hierarchy. If you already have a u.p.o journal, keep it, and post to both places.
- Start a mailing list related to a project of yours. Host it somewhere like Google Groups. Don't worry that "people won't be able to find it," because the list of groups at lists.perl.org is no model of organization, either. Besides, the only people who know to look at lists.perl.org are the people that already know there are lists at lists.perl.org. They're not who we're after.
- Start an alternative to perlmonks.org. Perlmonks is a fine site, but it's long in the tooth, daunting to newbies, and frustrating to search. Surely there's a different way to have an online Perl forum that is better in many cases.
- Work on a project that helps cross-pollinate Perl to the rest of the world. The Test Anything Protocol is a good example of this.
- Review a book about Perl. Get it posted to Slashdot or another big tech site.
- Write about Perl in your blog. Even if you think it's not interesting to Perl people, that's fine. Someone will want to read it, and you'll spread that mindshare.
- When you talk about Perl, don't be afraid to use the F-word and the L-word: "fun" and "love".
What do you think?
I'd like to hear your ideas. How can we expand Perl's reach? What have you done to help decentralize, diversify and colonize? How can we keep Perl fun and exciting?
Two comments I don't need to hear: "This will never work" and "This is a waste of time." If that's what you have to contribute, trust that I've taken your insight into account already, and save yourself some typing. Alternative courses of action, however, are more than welcome. Also unnecessary: "None of this would be a problem if not for Perl 6."
Acknowledgements
Thanks to a number of people who have helped discuss these ideas with me as I put them together. These include Pete Krawczyk, Jeffrey Thalhammer, Ricard Signes, Liz Cortell, David Hand, Jesse Vincent and Elliot Shank. I'm sure I've forgotten some, so I apologize if I left you off the list.
From Thomas Klausner:
At the Oslo QA Hackathon 2008, during one evening meal, it became evident that Jonathan Worthington would be able to spend even more time hacking on Rakudo Perl if he would get paid a little money for it. As Vienna.pm still has some money earmarked for Perl development, we encouraged Jonathan to send us a proposal for funding him. Which he did. And which we accepted.
So starting next week, Jonathan will work on Rakudo one full day a week (minimum of 8 hours of work), post about the work on the rakudo.org blog / use.perl.org. He will recieve € 150 per day spend working on Rakudo. We estimate that on average he will work 4 days per month. We agreed on funding three months (~ €1,800) and evalute the grant after that time. If everybody is happy, we will continue the grant until the end of 2008, where we will evaluate again (and check if we still have money left).
More info available in the WoC Wiki.
I'd been meaning to write up a summary of blog posts that people had written about the QA hackathon that happened in Oslo a few days ago. Fortunately, Adam Kennedy did it for me, summarizing what the QA thinkers decided, and didn't decide, in those few days in Norway.
[M]y main desire for the Oslo QA Hackathon was to sit a large percentage of the CPAN movers and shakers down in one place and try to iron out some of the inconsistencies around certain metadata issues. I'm happy to report that we managed to obtain either consensus or an agreement to not make a decision and take a "wait and see" approach on a number of issues.
Bonus points for him actually having been there, unlike me. Thanks to all of you for putting your heads together to forge some direction.
David Golden points out there's a much larger writeup of other activities from the hackathon on the Perl QA wiki.
The Perl Foundation is calling for grant proposals for Perl-related projects. This can be a great way to get funding a project you're working on, or would like to see worked on. TPF has funded Strawberry Perl, Perl::Critic, pVoice and dozens of other projects in the past. Maybe yours can be the next.
The schedule for OSCON 2008 has just been announced, and the Perl track is back with a vengeance. Last year, our favorite language seemed to be falling out of favor with five tutorials and nine sessions. This year, it's five tutorials and fifteen sessions. Tim Bunce's DashProfiler and Eric Wilhelm's Stick a fork() in It: Parallel and Distributed Perl are the two that jump out at me.
I won't be speaking about Perl. Instead, I'll be talking about Just enough C for open source projects and part of Michael Schwern's tutorial-length People For Geeks extravaganza.
(Following is Eric Wilhelm's call for participation in Google Summer of Code.) -- Andy
The Perl Foundation is participating in Google's 2008 Summer of Code™ and we have a lot of capable, willing mentors looking forward to working with some talented, driven students. So, we would like you to help find those students (and quickly -- the students must apply before March 24th.)
This is a rare opportunity for students to get a chance to get a paid summer of hacking on exciting projects like Parrot, Perl 6, Moose, Jifty, SVK, Catalyst, or their very own Perl modules or applications. It also brings new talent into the community and gives the student a hefty "real world" experience with a knowledgable mentor. Further, employers love to see this sort of demonstration of teamwork, handling deadlines, communication skills, resourcefulness and etc.
We're looking for promising students who are interested in open source (or maybe you know someone who *should* be interested in open source.) Knowledge of Perl is optional if the project is Parrot-related. The student doesn't need to be an expert in the problem domain (after all, learning is part of the process), but should bring a big pile of creativity, problem-solving skills, and determination.
Students should review the page of suggested projects, encouraged to bring their own proposals (those are often the best.) The most important first step is getting in touch with the community and discussing their project idea with potential mentors.
Google has posted some flyers if you happen to have a university
bulletin board or hallway handy:
http://code.google.com/p/google-summer-of-code/wiki/GsocFlyers
Additional info:
http://www.perlfoundation.org/perl5/index.cgi?gsoc2008
http://code.google.com/soc/2008/
http://code.google.com/soc/2008/faqs.html
(Note that Google has particular requirements to do with the fact that they are paying the students. The student must be able to show their eligibility regarding enrollment and employability.)
Remember, the Perl community draws talent from many fields, so if you came to Perl from a non-computer-science major and still have contacts in that department from your university, it is probably worth mentioning to them.
Please feel free to forward this to whoever may be interested.
Jesse Vincent announced that Best Practical has released the source for rt.cpan.org. All the general magic that Jesse &. co. use to make the de facto bug tracking system for the CPAN is now available from BestPractical's Subversion site.
Jesse says "If you've been hankering for a new feature in rt.cpan.org, now's the time to start sending patches. After 3 good patches, we'll grant you a commit bit to the rt.cpan.org extensions." Kudos to Jesse for opening things up and helping spread the workload of maintaining this crucial tool.
Pat Eyler's recent blog post introduced me to a term I hadn't seen from the Ruby community. MINSWAN stands for "Matz Is Nice, So We Are Nice."
What a marvelous idea! I'd like to steal it as LINSWAN, for "Larry Is Nice, So We Are Nice," although I suspect that people might get confused and think of Pittsburgh Steelers Hall of Famer Lynn Swann.
More companies are showing their support for open source projects, and I couldn't be happier about it.
Those of you following Ovid's blog on use.perl.org, or reading his code improvements in the perl-qa mailing list, should give thanks to the BBC for supporting his Perl work. It's not all philanthropic, of course, since the BBC wants good tools for themselves, but I love that they're letting Ovid hitch his stories to the BBC wagon. That helps give Perl some credence in the eyes of open source skeptics.
Now, as you readers of Mechanix know, Devel::NYTProf is the hot new profiler in town. Not only is the New York Times allowing code to be released, it turns out there's a blog, open.blogs.nytimes.com, where Adam Kaplan announced the module. I love that a company that's not (exactly) in the software business is blogging about their open source software work. Let's hope it's a light in the darkness that others will lend their illumination to as well.
Dave Rolsky has written up a recap of Frozen Perl from the organizers' point of view. Some interesting tidbits:
- 2/3rds of FP2008 expenses were paid by sponsors, keeping attendee cost low
- Some sponsors are interested in the tax deduction; some see it as a marketing expense
- With very low ticket prices, each additional attendee ends up being a net loss
- A potential solution to the lightning talk machine dance could be a KVM.
- Income $7,190 - Expenses $6,213.43 = $976.57 overage
The workshop came together beautifully. I was very impressed with what Dave & Co. pulled together.