Flamebait

2shortplanks on 2002-07-24T17:33:13

So, I've just been taking on #london.pm about Perl 6, and I made a few points (and some were made to me) that I thought I should write them down somewhere. Of course, by posting them here, I'm opening up myself to much complaint, but hey ho.

First up, I'd like to point out that I've got nothing to do with Perl 6. Sure, I've got a vested interest in the language, but I've put no effort in. I've poked around with parrot but never coded anything. I've not talked about the grammar. No one owes me anything. This is important as I don't want people to think that I'm whining; I'm just throwing my two pence in, but I don't expect anyone to actually listen to me.

Many people - myself included - are worrying about their long term employability, and the chance that they'll be programming in a language that they love or not in five years time. The question is, if it's not to be Perl, then what should it be?

You see, a lot of people have been claiming that Perl 6 isn't Perl. I've actually had that very argument with pudge on his journal before. In that case I tried to convince him that Perl 6 was Perl because Perl isn't about any one language, but it's about about a community. Whatever we do will be whatever we do - and it'll be what we want it to be because we wrote it.

I stand by this point.

However, I'm starting to come round to his point that Perl 6 isn't perl (note the lower case here.) It's not the same VM. It's not the same grammar. It's not the same anything - apart from it's written by the same community. Maybe it just isn't the same language.

So now onto my big point, the one that'll get me flamed and spat upon by the Perl community: Perl 6 should have never been called Perl.

I've argued this before from a marketing point of view. The 'Perl' brand has become devalued. For a while it basked in the glory of the website, but as the dot com industry crashed, rightly or wrongly, it got dragged down with it. It's seen in the world at large as the quick fix language where many mistakes are made and the land of slap dash programming. Exactly the kind of thing davorg has been ranting about for months.

But that's not the reason I think that Perl 6 shouldn't be called Perl. It's about the community.

You see, people who already use Perl are threatened by Perl 6. They see it as something new and big and scary, that's going to force them to relearn and have to re-deploy everything that they've ever known - if they even get the chance, if it ever makes it. Suddenly their core skills will not be what they once were. But it's worse than that. They see it as the be all and end all of the development of Perl (even though we've recently had a release of the 5.X branch.)

Many Perl coders I've talked to, good ones who spend every day working on Perl, and every evening learning new skills, speak badly of Perl 6. They point out that they can do what they want with the current version of perl. They point out that they'll never have the resources port all their legacy code to Perl 6. They point out that Perl 6 development is going slowly and that it'll miss the market. Essentially they point out anything to point out that they really don't want to change. When it comes down to it, people are afraid of change, plain and simple, for with change comes risk.

Now imagine for a moment if you will if Perl 6 had been called something else. Imagine if it'd been called something like 'ParrotP' - an implementation of Perl like language for Parrot. It'd basically been treated as a project - like any other project - that had the support of the community. People aren't threatened by mod_perl. If mod_perl fails those people that relied on it get burnt, but it needn't drag the language down as a whole. It needn't kill their entire ability as a developer.

Would Perl 6 have got more support if it was seen as another cool project, and wasn't perceived as such a make or break situation? Maybe. More importantly, would it have got a larger buy in from the developers at large? A more interesting question given that these people are the very people that are going to have to be the core advocates for an Open Source language.

Of course, that was then and this is now. One of the things that I'm always saying is that you have to consider what you can do now, not what could have been done then. Should we now rename Perl 6? It's not for me to say - it's not my baby, I haven't been carrying it for nine months, and even though I care about it dearly I don't get to name the child. But maybe Perl 6 has to earn it's right to become Perl 6, and people have to choose that it of their own accord, and calling it that will not make it so.

So back to the original question. What language will I end up programming in five years time? As far as I'm concerned all bets are off...it could be anything. One thing I know is that I won't have to make that decision...when I find it I'll know, and I'll just suddenly find myself using it all the time. Will that language be Perl 6, whatever it's called? Only time will tell.

I was very nearly tempted to turn comments off for this journal entry, but that'd kind of defeat the point now, wouldn't it. I wonder what Larry said during his keynote.


Fear and Risk

pudge on 2002-07-24T18:41:34

When it comes down to it, people are afraid of change, plain and simple, for with change comes risk.

I am not afraid of Perl 6, though I basically agree with your points. But I very much agree that I do not want to change, because with change comes risk. Why should I risk anything? Perl 5 is good. Perl 5 suits me well. I have no reason to change to Perl 6, with all its incredible uncertainty.

In addition, it is not just risk, but time. Since I don't have any need for Perl 6, to switch to Perl 6 is a waste of my time, unless it's something I want to do, and it isn't.

You make an excellent point about it being another project, and how it is less threatening if it is another project. I am told by the Perl 6 team that if I don't use Perl 6, and stick with Perl 5, that I am behind the times, that I am sticking with old stuff that isn't very good, that the future is Perl 6 and Perl 5 is a dead end. How is that not threatening?

been there, done that

jmm on 2002-07-24T19:39:50

I am told by the Perl 6 team that if I don't use Perl 6, and stick with Perl 5, that I am behind the times, that I am sticking with old stuff that isn't very good, that the future is Perl 6 and Perl 5 is a dead end. How is that not threatening?

I stayed with perl 4, instead of moving to perl 5, for over 5 years. I "knew" that there were a large number of subtly incompatible changes with perl 5 and didn't want to track down the myriad subtle bugs that would start causing wierd problems.

When I actually tried it out, it took half a day to fix the obvious problems (using @ in double quoted strings). Then the 30,000 line system was left running in parallel for 2 months - and no problems showed up that were actually the fault of perl 5. (The pointy-eyed boss saw lots of things to fix, but they were mostly all there in the original code too; and he found a number of items that were simply artifacts of running in parallel, in fact, sort of those artifacts he fould every week for the entire two months.)

Perl 6, will certainly be a bigger change to update code, but not a huge amount bigger. (Doing a full rewrite to take proper use of new perl 6 idiom would be a big job - but that 30,000 line system still has lots of early perl 3 idiomtic code in it - it still works as it is even though I would never write it that way if I was coding it in perl 5. I did finally remove the eval around the "dbmopen" that had been there from the time that the code was running on some older versions of perl 3 that predated dbmopen - by then, dbmopen was deprecated!)

I was quite impressed with Damian's "Perl 6 - The Sky Isn't Falling" talk when he gave it here in Toronto. There'll be a few things that require getting used to doing differently, but there will be enough things that are simply better to make it worthwhile.

Re:been there, done that

pudge on 2002-07-24T19:58:26

Perl 6, will certainly be a bigger change to update code [than was Perl 5], but not a huge amount bigger.

I disagree. I would have a ton of code to change to actually be using Perl 6. Thousands upon thousands of $ signs, if nothing else. Of course, there may be a Perl 5 compatibility mode of some sort, but if I am using Perl 5 anyway, what's the point?

But again, with Perl 5, there was a reason to upgrade: to take advantage of the large number of modules, to fix longstanding bugs, to use OOP, etc. The very small number of changes needed for Perl 4 were worth it for most people. What I am saying is that I have no need for Perl 6, nor a desire for it. As a whole, I don't think the syntax is an improvement, I don't find all of the new language features to be useful or interesting, and I just don't want or need what it has to offer. It's not worth my time, especially considering all of the recoding and relearning I'd have to do.

I thought Damian's TPJ article that his Sky Isn't Falling talk is based on was better than his talk, in that I was more "scared" of the sky after the talk than I had been after the article.

The Leap

gizmo_mathboy on 2002-07-24T22:48:33

First off, I'm rather neutral about Perl6 maybe a shade positive.

Now, I started using Perl back in 1996/1997 so I missed the transition from Perl4 to Perl5. However, I did have to deal with some code written in Perl4.

My impression is that most people took several years to switch between the two and that most had switched (say a sigma or two of the population for the statistics folks out there) to Perl5 after 5 years. That's just a WAG on my part.

I'm think that it will take almost 10 years for folks (a large chunk of the population) to switch to Perl6. While Perl5 had a lot of features that made the switch more worthwhile I'm not sure that Perl6 has the gotta have features (like references and OO that Perl5 had over Perl4). I think there are some interesting features (regex engine seems tempting and the higher order functions as well) but maybe not as compelling as what Perl5 offered.

So, I'll sit here on the fence and watch things unfold.

Re:Fear and Risk

Elian on 2002-07-29T17:17:47

I have no reason to change to Perl 6, with all its incredible uncertainty.
This is a perfectly valid reason to not change over to perl 6. In fact, it's a damned good reason that's far too often overlooked in general. Change for the sake of change is often unwise, in perl and anything else. Yes, you need change to make progress, but swapping something brand new into production 'just because' is foolish.

I am told by the Perl 6 team that if I don't use Perl 6, and stick with Perl 5, that I am behind the times, that I am sticking with old stuff that isn't very good, that the future is Perl 6 and Perl 5 is a dead end.
Who told you that?

reason to switch

wickline on 2002-07-25T00:00:50

I love perl because it lets me think about interesting things.
When I have a problem, it's a problem that's interesting to
think about. Perl does the un-interesting things for me.

Without perl, this is at the level of "interesting problem":
    http://www.techinterview.org/Puzzles/fog0000000080.html

With perl, it's trivial. You don't even think about it. You
get to spend your brain cycles on harder problems, your notion
of interesting is elevated.

When you upgrade from perl4 to perl5, you find that whole
classes of "details" you had to worry about previously just
go away. You have new tools which let you simply gloss over
things. A %HoHoA "just works" instead of being a delicate
dance of split() and join() and/or a fragile body of code
without stricture.

I'm expecting the same from perl6.

Some things that are hard problems in perl5 will be simple.
hyperoperators, continuations, better exception handling,
curried functions, built-in grammar support... all of these
will make hard things easier and will elevate my notion of
interesting.

Sure, you could try to add all that to perl5, and in fact
it looks as though various folks are doing just that. I'm
not in a position to say which is better. However, given
that these things are being designed into perl6 and are
added into perl5 with shoehorns and elbow greese, I think
the perl6 implementation will probably "feel better" to me.

I'd rather learn a new language to get all these toys than
stick with an old language and wait for the lesser ported
version of the toys. It doesn't hurt that I don't feel like
the syntax changes are all that dramatic. I don't feel like
I'm learning a new language, which makes the switch to six
even more worth while.

FWIW,

-matt

Nobody is forcing you to use Perl 6

TeeJay on 2002-07-25T08:24:10

Nobody is even forcing you to use the official Perl 5.

I am sure everybody is aware that Alan Cox still maintains the 2.0 and 2.2 Linux kernel series despite the Linux stable kernel now being a mature 2.4.19 .

The same goes for Perl - if not to the same extreme. There is sufficient vested interest for new modules to work with perl 5 and for perl 5 to continue improving even if it means sacrificing some innovation for the sake of legacy code. Perl 6 however need not be hampered in innovation by such concerns - even tho most perl 5 will work most of the time.

Because Perl is open source it means nobody is going to force you to use Perl 6 or parrot. Nobody is going to say your certificates are invalid, that you can no longer buy it, that you aren't allowed to distribute it, that you must upgrade in order to get support - unlike .Net and its proprietary brethen.

I am not concerned about perl 6 yet for several reasons :
  - The stuff I need I already have
  - By the time I need more it will be ready
  - The perl that is likely to be upgraded is organised enough to make that relatively simple and the stuff thats unlikely to be upgraded can be left as it is.

Re:Nobody is forcing you to use Perl 6

tmtm on 2002-07-25T09:29:12

Other than employers, that is ...

Some people code Perl for money, not just pleasure.

Re:Nobody is forcing you to use Perl 6

TeeJay on 2002-07-25T09:53:40

Employers aren't going to force you to upgrade perl.

Although this is the case with Java and VisualBroken that has not been a problem with perl or linux.

Most of the perl I code is for money. Most of the time employers dictate that we have to use out of date systems rather than cutting edge systems.

I mean where I work now I have to install old linux distros or download the newest ISO and burn it to disk. My employer doesn't care whether I use perl 5.00054 or 5.8 - I currently use a mix of perl 5.5 and 5.6 and 5.8 deployed on windows and linux.

The java I have deployed so far is only as up to date as required for the third party components we use.

The only software I am obliged to ensure is up to date is the Microsoft stuff because you can't afford to have mixed version of MS software because of serious compatibility problems. Even then we still run on vanilla ASP rather than .NET.

Most employers haven't even deployed practice and technologies from the 80's yet like Version Control, Object Oriented Design, System Analysis or Documentation they are hardly going to demand you use Perl 6 when most of the time they don't even know what perl you are using.

Nobody is forcing us to use Perl 6...but ourselves

2shortplanks on 2002-07-25T11:02:24

I think you're reading this wrongly. The point I was trying to make was that by calling Perl 6 "Perl 6" the developers are making the implicit assertion that it'll be the successor to Perl 5, and the implicit assertion the language a Perl programmer is going to be programming in five years time.

Sure, no-one's going to come into my office and put a gun to my head and demand that I upgrade from Perl 5 to Perl 6. However you might look at it though, choosing to stick to a previous version number for a language is choosing to stick with the past. Now, I don't want to live and program in the past.

By naming the effort to produce this new language "Perl 6" that assertion - that you'll need to upgrade at some point - is made to you. And this is what I think most people object to. It's not that they have anything against the language, but the simple assertion - the diminishing (even in a very minor way) of their ability to choose - gets their heckles up.

Now I'm not saying that Perl 6 is not a worthy successor to Perl 5. But this decision I think deserves to be made by each and every member of the Perl community. If it was another project named anything else then I have every confidence that people would like it, love it, and see it as the successor to Perl. But they have to be given the choice of making that decision on their own, not being told it.

I guess what I'm saying is that the mood in the community is that it has to earn the right of succession, rather than being handed it.

Re:Nobody is forcing us to use Perl 6...but oursel

2shortplanks on 2002-07-25T11:06:46

It it was another project named anything else

Of course, that statement is bound to be misconstrued. By this I mean "Just another project, just like any other, without super special status" not "another project instead of Perl 6, I don't like Perl 6 it's nasty winge winge winge"