$perl6 = 'Duke Nukem Forever';

For those of you who get the reference, great. For those of you who don’t, I recommend reading the development section over on Wikipedia.

I write this with some hesitation, because I know it’s a touchy subject that has been going the rounds recently and that people have some very strong opinions about it. Mostly I’ve been lurking: nodding here, shaking my head in disdain there. There are good points all around, but I can’t help wanting to say something, and so, I’ve decided to try to gather my thoughts and lay them out.

First, a little about me: I consider myself a run-of-the-mill perl developer. I’m neither a noob nor what I would consider an expert. Give me the CPAN and an idea/codebase and I’m good to go. I don’t delve into the depths of the internals if I can avoid it (and I’ve pretty much avoided it entirely). I still, to this day, struggle with wrapping my head around map(). Some may argue that means I’m more a noob than not, and that’s fine; TIMTOWDI, right?

There seem to be, at least to me, two distinct view points on this matter:

  1. We need to dissociate any connection between Perl5 and Perl6. They are more dissimilar than they are similar, and people assuming the reverse is at the root of why people think Perl5 is dead. That people don’t think Perl6 is dead confounds me; we’ll get to that later, though.

  2. Renaming it won’t change . It’s Larry’s baby and he has final say, so deal with it.

Those certainly aren’t the only opinions, but they seem to be the ones that come up the most, and they are the ones I wish to address.

So, back to that title. That’s what Perl6 is to me. It is vaporware, something that has things I’d love to see, but will likely never use. Even IF it ever sees the light of day in a meaningful way, I’ll never use it; the liklihood of me having a job that will want to move from 5 to 6 is almost null, and I’m not likely gong to find a job where they want to start a project in Perl6. They’ll likely want Ruby, or Phython, or .NET, or php.

But it does have an effect on any Perl5 jobs I may have. The last few jobs I’ve had people have frequently commented how insanely hard it was for them to find ANY Perl developers, never mind one who could actually code themselves out of a wet paper bag. This sometimes makes me sit back and think “Did they settle on me just because they were desperate and I was “good enough”? Or was it because I really did meet their requirements for the most part?” (Let’s be honest here, you’re almost never going to meet every single requirement someone has of you).

Here’s the thing that people, to me, seem to be missing. And if they aren’t but just aren’t bringing it up because it is so obvious, or something that has been deemed insignificant, then feel free to ignore the rest of this post.

Let’s say I have Software1. It rocks. You love it. You can do all sorts of things with it if you want. A couple years later I release Software2. It’s the new and improved version of Software1. Software1 is now obsolete. People move to Software2. Then I release Software3. It’s even better than 2, and in an ideal world people would move to 3 and I wouldn’t support 1 or 2 anymore, unless I had agreements to support a version for a specific period of time. But let’s just say it’s a perfect world and I didn’t do that and people would always upgrade to the next version and leave the older versions behind.

Then I announce that I’m going to be releasing Software4. It’ll be awesome! All the bad things you hate from 1,2 and 3 won’t be in 4.

Now, at least to me, it seems reasonable that people would think “Oh, Software4 is coming out. That means Software3 won’t be supported anymore. Software3 is [soon to be] dead.

A year goes by. No Software4. People shrug, because they know that Software4 is a complete overhaul and is drastically different from 1-3, so of course it woudn’t come out in a year. Then two years go by. Then three. And four, and five… Fast forward 10+ years and there STILL is no Software4. It runs on anything that supports a specific doodad, but no one’s got a complete, final version of something that supports that specific doodad that is considered production-ready. I’ve been teling people for years that Software4 is under development and that it’ll be coming out SOON, but here I am ten years later and what have I to show for it? Can you run Software4? Sure, in certain circumstances. Can you do everything you could do with 1-3? No, not yet. Is it production ready? No.

Why would you use Software4? You wouldn’t. Why would you stick with Software3? Software4 is the thing of the future. Whenever Software4 comes out, 3 will be obsolete. It is, for all intents and purposes, dead. We just don’t know the time of death, yet.

7 Comments

Suppose perl.org and perl.com both said prominently "Perl 5 and Perl 6 are separate languages which coexist happily. The existence of one by no means obsoletes the other."

That won't make everyone happy, but it's true and easy for the average programmer to understand.

A few thoughts:

* The Duke Nukem analogy is cute, but misses the mark for me. Perl is a developer tool created by volunteers. Its primary goal is not to make money selling copies to the masses.

* My memory may be fuzzy, but I don't remember ever thinking Perl 6 would be ready SOON. Maybe some people felt that way in the beginning, but at this point I hope nobody's still holding their breath. The project has been fun to watch and continues a slow steady progress, but I still don't get the feeling anybody is expecting anything SOON.

* My personal projects are in Perl and see no reason to change that any time soon. The community is thriving and I'm as productive as ever. But I don't identify myself solely with any one programming environment, so I'm not out looking for Perl jobs and feeling betrayed if I don't find any. It makes a lot of this hand wringing seem pretty strange to me.

It is sadly true that it is easier to focus on perceptions of what is wrong, than what is right. Yes, 10 years is a long time to wait. However, like you, I have personally done very little to usher in the future.


A lot has gone on in the last 10 years. Audrey Tang's pugs implementation of Perl6 hit both personal and technical walls when implementing Perl6 in Haskell. Perl6 has the audacity to have as requirements much which was not yet invented or supported by any language, vm, or run-time.


The Rakudo (on Parrot VM) and Niecza (on .Net CLR) implementations of Perl6 are in active development with daily commits and active discussions on irc.freenode.net #perl6 -Now-a-days, Both implementations are focusing more on performance, optimization, and speed. Get it right. Make it fast.


Perl5 is in the midst of its own Renaissance of Modern and Enlightened programming styles and best practices. Perl5 and Perl6 are very much so alive and kicking. But the real question you're asking is whether or not anyone outside the Perl community has noticed.


If we're worried about the long term viability of Perl, then it isn't about whether Perl "the language" will continue to exist and grow. It will. The real question is whether Perl "the community" will it find a way to gain mind-share. I.e. the popularity contest...


Perl is almost 24 years old. It isn't the shiny hot new language on the block. The Perl community is perceived as being insular. And for a while now, there hasn't been any cool "next big thing" trend setting projects implemented in Perl.


Perl will never get any younger, but there are benefits to getting older. Much wisdom comes with age. However, we can and should strive to be a less introverted community. Gabor Szabo and others have been working to improve the marketing of Perl. Their work needs to be supported and encouraged.


For me, Perl's "next big thing" has always been the way it shamelessly steals and incorporates the best ideas from other languages into the Perl ecosystem. Perl is still very much a Swiss army knife. And its absence of philosophical ax grinding (TIMTOWTDI) is more virtue than vice.

If you don’t want an article to be published yet, set the Status dropdown at the top right of the posting screen to “Unpublished (Draft)”.

@Leanan


I think your point with the Software 1-4 was clear and that's one of the issues that make me worry sometimes. However, in the end I always come to the conclusion that this is not the main problem.


Even if this was the problem, the solution would be - for me - to help the Perl 6 developers more.


I think the main problem is that people outside of the Perl echo-chamber hardly hear about good Perl based solutions to their problems.


That includes even most of the people using Perl in corporations.


IMHO the language is far less important than to help people get their job done and/or to let them have fun.

The comparison of Perl 6 to Duke Nukem Forever is even more poignant when you consider the fact that that software, when it finally came out, was widely considered a letdown.

Leave a comment

About Leanan

user-pic I lurk, mostly. It should go without saying, but the views and opinions expressed here are $mine && $mine alone.