Telephone +44(0)1524 64544

F-ck Perl 6

Yes, This Is A Rant. You were warned.

Tue Nov 17 22:26:00 2009

Digg! submit to reddit Delicious RSS Feed Readers

Alright, so, with a bit of luck and a following wind the title of this post is going to have segregated my audience into a number of sub-sets:

(1) The people who're seriously into their Perl 5 and want to hear about me having a good rant about the useless science project that's screwed over our marketing for years and still can't manage to produce a release that anybody can use for anything sensible and smile safe in the knowledge that Perl 6 people just Don't Fucking Get It.

(2) The people who're seriously into their Perl 6 and want to see what the hell this delusional arrogant fucktard is on about so they can check off all the stupid mistakes I make and the inconsistencies and the unfair jibes when Rakudo Star is turning up soon and nobody ever said this was ready yet so why are you being such a bitch about the fact it isn't and smile safe in the knowledge that Perl 5 people just Don't Fucking Get It.

(3) The people who're seriously into either and just went "oh for fuck's sake, look, even MORE stupid infighting" and clicked somewhere else in disgust.

So, given those distributions, there's a reasonable chance that you're in group (1) or group (2) - the group (3) people have already gone. And that's fine. I wasn't talking to them.

Because what this article is about is telling groups (1) and (2) that you're completely, utterly, irretrievably fucking wrong and to get the fuck over yourself. And it's about reminding me that if I don't pay enough attention it's way too easy for me to fall into group (1) myself and that's just arse because not only am I irretrievably fucking wrong but I know enough to know better.

Ok, so, honestly this is "why we're all fucking idiots for being in group 1, or even within shouting distance of it, or on the same content as it". The wonderfully eloquent masak has a nice long post about this for the group 2 people, and in keeping with the hugtastic nature of Perl 6 culture his is clear, friendly, and nice. Mine isn't going to be. If you want nice, go over there, read his.

Actually, if you're type one, go over there, read his too. Because it's going to come as a shock. Because hey, the Perl 6 people KNOW what they have isn't "ready" for a lot of people's values of "ready" and they know that Perl 5 isn't dead and they're not trying to kill it either. Fucking amazing, right? And even better, now masak and I tried this whole actually fucking talking to each other thing they're going over their shit and going "hey, look, this makes us look like we're saying something we weren't trying to" and fixing it. And with Rakudo Star, they're looking to provide something that (a) might count as "ready" for a bunch of people (b) will have very clear warning labels about what sort of ready and for who, so they don't end up with stupid perception problems (hopefully).

And what have we been doing in the meantime? Well, all sorts of awesome things. There's been a new website. Moose goes from strength to strength, and Perl 5 Version 12 is on the horizon.

So why is it that when people come onto Freenode's #perl channel and ask about Perl 6 we sound like such whiny bastards? I mean, come on, people. We spend ages going on about this, arguing because people think it's another version, and basically sounding really fucking defensive - when the Perl 6 community ISN'T ATTACKING US.

Here's what we need to say, and it's really fucking simple.

Perl 5 and Perl 6 are two different languages.

Perl 5 and Perl 6 are both part of the Perl family.

Perl 5 has a website at because it was once the only one.

Perl 6 has a website at because it started out with Perl 5 already existing.

Then, assuming you're like me, you say:

And I use, and love, and intend to continue using Perl 5.

That's it. Here, I turned it into a rant-free link for you.

That's fucking it. Now move on. You're a Perl 5 guy, right? So fuck Perl 6. Fuck python. Fuck ruby. Fuck PHP in the eye with a rusty nail.

Let's actually move the fuck on and talk about why we love Perl 5, why we keep using it even if people seem to declare it dead every so often (just like C, and UNIX, and everything else I care about in production, but anyway), why we're excited about it and all the awesome new things that are happening.

And let's celebrate the things we stole from Perl 6, like half the syntax for MooseX::Declare. And let's celebrate the things we stole from python, like the C3 method resolution order. And let's celebrate the things we're experimenting with stealing from ruby, like PerlX::MethodCallWithBlock. And let's celebrate not stealing anything from PHP ... except that I wish we could steal their ease of deployment, but I'll wax lyrical (or scatalogical) on that one another time.

Some people may remember an article by Steve Yegge where he said -

'As I've done for a great many other programming languages, I've bashed on Perl's technical weaknesses at length in the past. To my continued amazement, the Perl folks are the only ones who never get upset. They just say "Haha, yeah, boy, you're right, it sure is ugly. Heh. Yeah, so, um, anyway, I'm going to get back to work now..." It's awesome. I've gained so much respect for them. It's almost enough to make me go back to programming in Perl.'

And I definitely remember reading that and being proud of us. Proud of us loving our language, warts and all, and not being fucking defensive about it, and getting on with using it, and improving it, and having fun, and then being done and down the pub.

So why the FUCK is it that one mention of Perl 6 turns us into whiny ass little children? It's the closest language to ours that exists, even if we don't necessarily agree with all the differences, even if it's still "not ready" for our values of ready. Why can't we fucking celebrate the fact that now there are TWO languages in the Perl family, and that say "well if you like either of them you should probably try both but we like ours better and we think if we explain why, maybe you will too" ?

Well, obviously, there's no reason we can't. We're just being fucking retarded about it. So let's stop.

Perl 6 is not the fucking bogeyman. Let's keep stealing shit from it. Let's keep showing the world how awesome Perl 5 is (and show the Perl 6 guys as well so maybe they can steal shit from us). Let's stop having a fucking fight and start saying "hey, these guys are working on a really similar language, we must have more in common with them than we have different".

And let's get on with making Perl 5 fucking awesome, so in ten years' time there are no type 1 and 2 people, there's just a bunch of people saying "we fucking love Perl 5" and "we fucking love Perl 6" and "if you like one language in the Perl family look at the other one as well because you'll quite possibly like that too".

Because this stupid fucking argument is not only making bad blood, it's making us waste time talking about Perl 6 that we should have spent talking about Perl 5, and it's making the Perl 6 guys do the converse, and didn't we all get into this to write fucking cool code that we can go home proud of?

So, shit, let's quit this waste of fucking time and let's all go get on with that. And then christmas can come TWICE a year, every fucking year.

And wouldn't that be grand?

-- mst, out.