$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:
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.
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.