Six, Pick Two

Larry Wall:

Right at the beginning we said, “There is never time to do it right, but there is always time to do it over”. So we’re just gonna take the time to do it right. You’ve heard this saying “Good, Fast, Cheap. Pick two.”. Well, this is Open Source. We have to do it cheap. Therefore, it reduces to a problem of “Good or Fast. Pick one.” We chose Good. We did not choose Fast. You may have noticed this.

Perl 6, to me, is good not because it becomes more like Ruby. (I’ve said that Ruby is my Perl 6 until Perl 6 becomes Perl 6. I meant that Ruby is sufficiently close to Perl and sufficiently modern to be an improvement over Perl 5, and sufficiently different from Python to keep me from running away as fast as I can from it.) Perl 6 is good because it’s really something uniquely Perl. Many features of contemporary Perl were pioneered in Perl. Many features in Perl 6 will be pioneered in Perl 6 (junctions, language-integrated regexes, roles).

A lot of people run away from Perl because it’s just so different from everything else. Some people will point to Python 3000 or Ruby 2 and say “this is a diligent, responsible upgrade that doesn’t waste seven years of everyone’s time”. These people have points, and as someone who occasionally meets deadlines (hi, Jeff!) I’m sometimes inclined to agree. But an upgrade won’t do it for Perl. Perl 6 is a complete reworking on the language.

Perl 5 was different, but freaky enough that if you just patched it to work like people who had discovered closures and object orientation would have liked, existing Perl 5 users would be skittish and uncomfortable (”okay, I can adjust to this, but what about the next minor upgrade?”) and the rest wouldn’t have used it anyway because it’s still Perl 5, just with closures and object orientation.

I am inclined to believe that Perl 6 is the right step to take. Tear it down, build it up, almost the same but rethinking every step of the way. It’s still Perl, but it’s not Perl 5, and it is reasonably modern.

No comments yet.

Leave a comment

Your e-mail address is never shown. If you type a line break in the comment, it will show up as a line break (naturally). The following HTML is allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)


Please note: Your comment will not show up at once. Unless you're spamming or being abusive, you have nothing to worry about. (Read the full policy.)