Month: August 2009

Perl 6 development does not detract from Perl 5

August 31, 2009 Perl 5, Perl 6 5 comments

A recent thread on brought up one of the worst myths of Perl 6: That Perl 6 is harming Perl 5.
Andrés N. Kievsky commented in “a thread on”:
bq. drop this insane perl 6 thing immediately. Give us good, stablethreading in perl 5 instead of self-hosting grammars in perl 6.
Later he said:
bq. proper OO syntax, multithreading, better speed … are major issues in perl 5 that should have priority over perl 6 work. You can’t expect me to believe that the perl 6 team can’t work on that.
There’s so much misunderstanding here about how open source works, I’m going to ignore the ways that Perl 5 has benefited from the process of creating Perl 6.
The problem with Kievsky’s assessment is that it assumes that:
* contributors are finite
* contributors are interchangeable
* contributors can be directed.
All three are wrong.
First, there is a *vast, unbounded talent pool*. The set of people available to work on Perl 6 is not limited to those who would otherwise be working on Perl 5. It’s not as if there’s a box of people that cannot grow or be added to. There are many contributors who have joined the Perl 6 project without having ever worked on Perl 5. In this instance, Perl 6 has actually brought people into Perl under the Perl 6 banner.
Second, *not everyone can work on the same parts of different projects*. The tasks on Perl 6 may well be very different than the Perl 5 improvements that Kievsky would like to see. I have been contributing to Perl 5 for years, but I’m not at all available to help on the Perl 5 tasks he wants, because they’re not in my area of expertise. However, I can help a lot with Perl 6 tasks, and not just programming. Parrot and Perl 6 are a better fit for me.
Finally, and most disturbing, Kievsky seems to think that by wanting something badly enough, people will work on those tasks. Unfortunately for this idea, *there is no one directing Perl 5 development tasks*, and nor can there be. Open source contributors are volunteers. They work on what they want to work on. Even if I was clamoring for those Perl 5 improvements, I’d rather keep a great programmer working in the Perl community working on Perl 6 rather than leaving Perl entirely because there was no work she felt like doing.
The only way to get a feature added to Perl 5, or any open source project, is to write it yourself, or to encourage others to work with you on it. It’s the way of open source.
Perl 6 and Perl 5 development work are not mutually exclusive. Work will continue on Perl 5 long after Perl 6 has hit prime time.

How to poop on your project’s contributors

August 27, 2009 Community, CPAN 2 comments

GCC 4.3.4 was released recently. Here’s the announcement:
> GCC 4.3.4 is a bug-fix release containing fixes for regressions and
> serious bugs in GCC 4.3.3. This release is available from the
> FTP servers listed at:
> …
> As always, a vast number of people contributed to this GCC release — **far
> too many to thank individually**!
“Too many to thank individually?” How many is “too many”? Would the list of GCC contributors have caused multi-megabyte email messages to swamp the mail servers across the Internet?
What this message *really* says is “I do not want to take the time to thank people individually. Your contributions are not worth a few minutes of my time.” What a fantastic way to poop on your contributors. They would have been better off just not mentioning the contributors at all, rather than saying “You’re not worth enumerating.”
When someone contributes to your project, the least you can do, *quite literally*, is to include his or her name in a list of credits. Here are the acknowledgements from WWW::Mechanize.
> Thanks to the numerous people who have helped out on WWW::Mechanize in one way or another, including Kirrily Robert for the original WWW::Automate, Gisle Aas, Jeremy Ary, Hilary Holz, Rafael Kitover, Norbert Buchmuller, Dave Page, David Sainty, H.Merijn Brand, Matt Lawrence, Michael Schwern, Adriano Ferreira, Miyagawa, Peteris Krumins, Rafael Kitover, David Steinbrunner, Kevin Falcone, Mike O’Regan, Mark Stosberg, Uri Guttman, Peter Scott, Phillipe Bruhat, Ian Langworth, John Beppu, Gavin Estey, Jim Brandt, Ask Bjoern Hansen, Greg Davies, Ed Silva, Mark-Jason Dominus, Autrijus Tang, Mark Fowler, Stuart Children, Max Maischein, Meng Wong, Prakash Kailasa, Abigail, Jan Pazdziora, Dominique Quatravaux, Scott Lanning, Rob Casey, Leland Johnson, Joshua Gatcomb, Julien Beasley, Abe Timmerman, Peter Stevens, Pete Krawczyk, Tad McClellan, and the late great Iain Truskett.
That’s everyone who has contributed such that I was able to get their name (e.g. not an anonymous bug in RT).
And whenever I update a change log, which I release as part of release announcements, I put the person’s name in there, too, as in this from ack:
> Added new switch –column to display the column of the first hit on the row. Thanks to Eric Van Dewoestine.
One of my favorite Miss Manners letters went like this:
> Dear Miss Manners, when is a thank you note not required?
> Gentle Reader, when no gift is received.
All project coordinators would do well to remember the lesson.
**Addendum**: Pete Krawczyk took me task this morning, rightly, for not mentioning that GCC does have a huge contributor list, and they do publish it: []( My frustration is not in the lack of collection of names, but in the face slap of “There are too many of you too mention.” If you get 100 wedding presents, you don’t say “That’s too many thank you notes to write, so I’m just going to handwave them.” I optimize my projects for making sure that everyone’s contribution is mentioned at the very least in the Changelog so that people can see their contributions acknowledged in a visible time at the time of release.

Perl coming to Android phones

August 24, 2009 Perl 5 No comments

*By François Charette*
[Android is an operating system for mobile phones]( that runs a modified Linux kernel and
the Java environment. The Android Scripting Environment (ASE) allows you
to edit and execute scripts directly on the Android device. Until now
only Python, Lua and BeanShell were supported, but a [request was filed
to add Perl as well](
Recently, [support for Perl was added to the development tree](, and
today that feature request was closed, and is part of OSE 0.11 alpha.
This means we can
expect that Perl will be officially supported on Android with the next
stable release of the ASE. It will then be possible to write neat Perl
programs on an Android phone, like this [“hello world” example](
*François Charette is an independent scholar in the humanities with a passion for Perl.
He is the initiator and co-developer of [Biber](, a BibTeX replacement written in

Perlbuzz news roundup for 2009-08-19

August 19, 2009 Community, CPAN, Perl 5, Perl 6 No comments

These links are collected from the
Perlbuzz Twitter feed.
If you have suggestions for news bits, please mail me at

  • 2009 WebGUI Users Conference Sep 10-11 (
  •’s source is now at I welcome contributions.
  • The PAUSE security updates re: Perlmonks security breach are complete. Thanks Adam+Andreas. (
  • How to boost your career by contributing to open source projects (
  • Help become a great tool for Perl newcomers (
  • Help Tim Bunce update his Perl Myths talk (
  • What a tangled web Kwalitee culting has accidentally woven (
  • On today’s episode of Dreadful APIs of Doom, PHP’s print_r() function: (
  • Jacinta Richardson: A Perl-only conference, and the most awesome community (
  • source code on github (
  • Yuval Kogman: Delimited Continuations for Perl (
  • Alias: We must promote the First Time Experience before we promote Six (
  • Community contributions for those who don’t feel rockstarry enough yet (
  • Typography and perception of Perl (
  • This is why you use Perl’s b zero-width assertion when replacing words. (
  • Why company-based PAUSE accounts are a bad idea. (

Community contributions for those who don’t feel rockstarry enough yet

August 15, 2009 Community, CPAN 2 comments

Mark Stosberg kicks ass. Note only is he a driving force in CGI::Application, he’s also working on some scutwork in He got privileges to the bug queue and has [closed 100 of the 150 bugs in the queue]( (He’s also done this for me with the WWW::Mechanize queue, too)
Note that I didn’t say he *fixed* 100 tickets, but that he *closed* 100 tickets. As he notes:
> Many had already been addressed by Lincoln some time ago. Those were simply closed. Still, I found about 20 fairly ready-to-go patches, and those have now been processed and released today as 3.45. Whenever code changes were made, I also strived to make sure new automated tests were added that covered those cases. You may be surprised how many methods in have no automated tests for them at all.
Although Mark Stosberg is a fine programmer in his own right, what he’s been doing here requires no special skills, no megabrain rockstar code chops. He’s doing project management and cleanup. It’s so simple, even *you* can do it.
Yes, I’m talking to you out there, thinking “I’ve always wanted to get into open source projects,” whether it’s to [improve your career]( or just to help out. There are always ways you can pitch in that don’t involve writing new code. I hope you’ll find some and join us.

Help become a great tool for Perl newcomers

August 13, 2009 Perl 5 No comments

A few years ago I started “”: My tag line was “What every Perl programmer should know,” and the site would cover a wide range of basic topics.
The goal is not to cover the topics in depth, but give just enough of a taste to give the reader an idea of how to do something, and enough to go off of to investigate further. It’s an FAQ of sorts, but of techniques.
The idea came from having the same questions asked over and over again in IRC.
* How do I remove elements from the middle of an array?
* How do write something to fetch web pages?
* How do I write a regex that doesn’t match something?
I also want to show examples of the Right Way to do things, like using @chomp@ instead of @s/n$//@. I wanted to tell people about tools like @perldoc@ that I know many programmers don’t even know exist.
h2. Here’s where you come in
I haven’t done much with perl101 for a while, but I’d like to get it going again, fully awesome. I’ve put the “code on github”: and I’m asking for contributions. Please pull a fork, add content to it, and let me know when your fork is ready to merge back to the master and I can republish. I’m specifically *not* making it a wiki, because I want to maintain editorial control to help keep it focused.
The site is also pretty ugly, and if you have better ideas for getting the content out there in an attractive way, I’d love to hear it.
There’s also “a perl101-talk mailing list”: and I welcome your participation there as well.
Let’s put our collective heads together to help out newcomers to Perl!

Super-sized Perlbuzz news roundup 2009-08-11

August 11, 2009 Conferences, CPAN, Perl 5, Perl 6, Perl Foundation, Rakudo No comments

These links are collected from the
Perlbuzz Twitter feed.
If you have suggestions for news bits, please mail me at

Hide your unnecessary details from the user

August 11, 2009 Code craft 1 comment

Too often I see user-facing text that includes far more detail than is necessary. My current example is this web app where I can upload files for my expense reports. The help screen tells me:

You can attach the following types of files:

  • Portable Document Format (.pdf)
  • Joint Photographic Experts Group (.jpg or .jpeg)
  • Graphic Interchange Format (.gif)
  • Tagged Image Format (.tif)
  • Windows OS/2 Bitmap Graphics (.bmp)

Why why why do they bother giving those unnecessary explanations of what the file extensions mean? What they really mean is:

You can attach .pdf, .jpg or .jpeg, .gif, .tif and .bmp files.

Has anyone ever said “Hey, Bob, can you send me that Joint Photographic Experts Group file?” No? Then why do you think that people want to read it?

Perl 6 is my MMORPG

August 11, 2009 Community, Perl 6 4 comments

Carl Masak looks at Perl 6 development from a unique angle.

On the way to lunch today, I queried two collegues about Eve Online, their favourite way to spend
evenings and weekends:

<masak> So, are people confused by all the detail when they first
<jonalv> Of course.
<masak> And how do you... handle that? How do you make it easy and fun
for people to get up to speed?
<jonalv> Well, people tend to find the fun in it themselves. As to
getting up to speed, they simply have to start in one end and unwind the whole
<Gpox> It is complicated. There are occasional jokes about the
learning curve
<jonalv> Nowadays people have the wiki to help them get started as
well. There wasn't one when I joined.

I think the parallels to the Perl 6 community are so clear that I don’t even
need to point them out.

I’m sure there are many differences between multiplayer online games, but the
social dynamics seem very similar to what we have over at
#perl6. Which brings me to today’s thesis:

The Perl 6 community has the structure of a MMORPG.

We have just as much fun, and — what’s perhaps more important —
the bits we’re putting together won’t end up being owned by Blizzard
Entertainment or CCP Games. Instead, we’re building something that we
ourselves and others will find directly useful during a large part of our
lifetimes. I’m not out to devalue online multiplayer roleplaying games, just
pointing out that there’s perhaps an extra dimension to the acheivement we get
to feel in the Perl 6 community.

Just for the heck of it, let’s take the analogy one step further.


So, you want to join the Perl 6 community? If so, congratulations! You’re
about to embark on a quest that will seriously impact your day life, your
habits and your sleep patterns. You will be building things, fighting unknown
dangers, and communicating with your peers in order to make sure people are
maximizing the benefit to the team and to the quest.

Here are the different classes you might want to occupy:


One who actually fights the creatures out there, who braves new, possibly
lethal dangers every day. In short: a Perl 6 application writer.

Being a warrior requires strength (you will have to hit the keyboard a
lot when writing all the code, and the code will mercilessly hit you
back… often), some dexterity (because working around known bugs
requires adaptability) and perhaps a bit of charisma (should you want
to collaborate with people, it’s good to be pleasant).

We’re currently on the lookout for warriors, so if you think you have it in
you, be sure to stop by #perl6 and help us equip you for the perilous quest
you have before you.


The priest is important for the group, but doesn’t put himself in the way of
direct danger like the warrior. Instead, they perform vital tasks with their
hands at a safe distance. In the Perl 6 world, priests submit bug tickets,
write tests and answer newbie questions on the #perl6 channel.

Being a priest requires intelligence (because their job is mainly to
increase the collective knowledge of the group), constitution (because
it’s a lot of work) and perhaps a bit of charisma (so we don’t bite the

I must say that I admire the priests. The impressing thing isn’t in the
incantations themselves, which are individually quite basic. The impressing
thing is that their favour from the gods doesn’t seem to run out. moritz++ and
KyleHa++ especially come to mind. I’m sure there are slots for a few more
priests too.


In the flurry of activity during a quest, the mages are the ones who wield
forceful spells in the form of new features in our implementations. The mages
know some pretty hefty incantations, but they speak in codes (like “Haskell”,
“Parrot” or “Lisp”) so that us mere non-initiates can only stand by in
admiration when they get going.

Being a mage requires wisdom (because, hey, you’re implementing a
compiler), intelligence (in figuring out how to fix the bugs and still
pass the test suite), and constitution (because it’s a lot of work).

Learning to be a mage looks nigh-impossible, but our mages assure us that
there’s actually not that much to it. And the rewards are of course enormous:
you get to have an incantation of yours immortalized in millions of
installations around the world.


Some people are in the group to make sure the group is doing well, and that
no-one is critically low on hit-points. Discussions can sometimes get heated
or sharp, by which point we’re very glad to have the people around who are
specially trained to see beyond the ego and help us focus on the important
parts of the picture. We simply need to be reminded at times, that we’re (as
S01 expresses it) “a bunch of ants all cooperating (sort of) to haul food
toward the nest (on average)”. We don’t need to agree always on everything,
but keeping the group coherent is important, and healers do their magic in the
background to help us with that.

Being a healer requires wisdom (to know where and when to intervene),
intelligence (to know to pick the right soothing words), and plenty of
charisma (to get it across that -Ofun is what we’re
optimizing for).

I think many people jump in as healers now and then during our quest, but we
also have one permanently employed high-level healer among us. TimToady++.


As for long-distance influence, and reaching outside of our own circles, the
archer fills the important role of blogging, tweeting, iron-manning and
generally making a positive noise about Perl 6, which can reach people far

Being an archer requires strength (again, typing is hard, and
commenters/other bloggers might shoot back at you), and dexterity (you
need to be fluid in expressing yourself). Having intelligence,
wisdom and charisma — something I as a simple warrior
often find myself wanting more of in my blogging — is not a necessity,
but sure helps in getting your point across.

In conclusion: LFA, n00bs?

The Perl 6 community is on a pretty awesome quest. If you’d like to enter as
one of the above classes, you’re sure to find your place as a productively
contributing members. Filling several roles is perfectly fine too, but
people tend to find their specialties and favourites.

As to when we’ll be “done”, who knows? When is an MMORPG “done”? All we know
is the quest we’re on until April is our most ambitious yet, and that it’s
guaranteed to be an interesting set of months on #perl6 until then.

(Careful postscript: I know that Eve Online might not be a role-playing game in any strict sense, so if you plan to write a comment that amounts to that, consider writing “Your post made me go download Rakudo” instead. The Eve Online bit was mostly how I got to thinking along these lines in the first place.)

Carl Masak has been programming Perl since 2001. He found Perl 6 somewhere around 2004, and fell in love. Now developing November (a Perl 6 wiki), Druid (a Perl 6 board game), and proto (a Perl 6 package installer), Carl is a heavy user of and irregular committer to Rakudo.

Perl 6 has not missed the boat

August 11, 2009 Perl 6 No comments

A thread on Ubuntu Forums included the absurd assertion that Perl 6 has “missed the boat”:
This cannot be true, simply because *there is no boat*.
Perl 6 is not, and never has been, about capturing market share, or fitting a given niche, or becoming the pre-eminent tool of choice for a given problem area.
Larry says “Perl 6 isn’t about missing boats, but about inventing airplanes.”
I’m finally working on my “handy responses for Perl 6 sniping” cheat sheet. I’ll post it soon!