The annual Perl State of the Onion Address was delivered as always by Larry Wall, this one ( 2008 ) the 12th state of the onion Larry has done.
This is actually my second attempt to write about this, the first attempt was done as it was being given, but due to WordPress being a web application and networks being so reliable, while trying to save an update I lost all my text, wether this is a WordPress bug, or a PHP bug ( forget the language, the guts of the system is horrible, ) or it’s just the pain of people believing web applications work like applications, but whatever happened I deleted the post out of disgust. I am very tempted to write my own blog software again, but I have just increased my code workload considerably so we shall see.
Tim Bunce was saying in the Perl Myths talk that civilisations come and go, and languages are very like that, we still have FORTRAN in wide use in the scientific community, but on the whole languages come and go. Tim says that Larry is trying to draw out the lifespan of Perl 6, and from what I can see the way Larry knows best, by creating a language that can twist itself into weird positions that are more perverse than the karma sutra ( a great piece of bed time reading BTW. )
At the start of the address, Mr.Wall says when people ask him what he would change he says he has two answers …
Nothing
… and then he says …
Everything
Maybe the jeopardy question to the first answer is “what do you regret ?”
The second answer is most revealing, previous onion addresses I have read the transcripts from, I get the impression that Larry has come to dislike many of the things about Perl I dislike. What Perl 6 has that it doesn’t have in previous incarnations is maturity, Perl normally reads like the mad ramblings of a paranoid psychopath, Perl 6 has a spec and by all accounts, in it’s raw state, is a lot cleaner.
Perl 6 code looks a lot like a Yacc / Flex hybrid with this cleaner Perl syntax embedded in. Larry has obviously spent too many years using them all and thinking “why not ?”, however I don’t think he has managed to unify all these different aspects together as he had expected to in previous addresses, but maybe he has come to understand how these tools were designed in a way he hadn’t before. He has taken it in a new direction adding in sub-languages and polymorphism.
“Son, you use that regex prettier than a thirty dollar whore.”
I don’t know where that came from, but now I’ve typed it I don’t want to delete it.
Not just yet anyway, maybe it will take on some profound meaning later on.
The raw state of Perl 6 is … Perl 6, and apparently it is written in Perl 6, but these new features give you enough control to make the syntax you want easily and efficiently. This will mean, lots of local little languages, domain specific if you like, with Perl 6 being the stuff from which it’s made. In this scenario I think people will quite possibly stop discussing the pros and cons of Perl and instead go on about the pros and cons of what they are doing with Perl.
Like making the jump from newtonian physics to quantum physics, I think Perl hackers are going to find the leap to Perl 6 the hardest. Tim Bunce quoted Larry Wall as saying that Perl 6 saved Perl 5, because everyone who had opinions and objections to Perl 5 stopped complaining to the Perl 5 developers and went and complained to the Perl 6 developers instead, leaving the Perl 5 developers to get on with working on Perl 5. It was at this point I started to wonder if Perl 6 is not just a clever ruse, and that Perl 6 may never see the light of day, just to keep naysayers away from Perl 5.
Which brings us to the big question, “I want my MTV !” which does not seem to be the classic form of a question, but it makes a refreshing change from the chortles that occur when we ask where the fuck is Perl 6 and where can I get my greasy mitts on a release date ?
Christmas, or so the murmur from the corner was, which was paraphrased through the microphone onstage. Santa may be committing the branch, with the Easter Bunny riding shotgun and providing the 6.1 patch. I don’t know, but as I don’t think anyone actually heard what Larry said, he can deny everything, and we all know the rules …
Rule 2. Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.
.. and in this instance I believe we have a special case of rule one, what is rule one ?
Rule 1. Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
… or in this case, Larry is always correct about the release date of Perl 6, he has final veto power and commit bits, and to be quite honest we have been waiting for Perl 6 almost as long as I have been exposed to Perl, so we can wait until our children have graduated from collage with Ruby and Python skills before we can truly claim he was yanking out chain with vapourware.
I think thats about it, if I remember anything else I’ll add it here, I still have … four Perl talks to type up from my notes, so I’m not done yet.
I am looking forward to Perl 6, it is a markedly different beast, but I don’t think I’ll be riding the Perl 5 camel with pleasure any time soon.